From c0efde2ef628ec3d940025d9ca645183a80680cc Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 5 Oct 2026 13:47:56 +0100 Subject: [PATCH 1/2] chore: update API specs and SDK examples --- .../account/create-email-password-session.md | 1 + .../java/account/create-id-token-session.md | 2 +- .../client-android/java/account/create-jwt.md | 2 +- .../java/account/delete-sessions.md | 18 +- .../java/account/list-sessions.md | 18 +- .../java/analytics/create-event.md | 38 + .../java/apps/create-installation-token.md | 27 + .../client-android/java/apps/create-key.md | 26 + .../client-android/java/apps/create-secret.md | 26 + .../2.3.x/client-android/java/apps/create.md | 44 + .../java/apps/delete-installation.md | 27 + .../client-android/java/apps/delete-key.md | 27 + .../client-android/java/apps/delete-secret.md | 27 + .../client-android/java/apps/delete-tokens.md | 26 + .../2.3.x/client-android/java/apps/delete.md | 26 + .../java/apps/get-installation.md | 27 + .../2.3.x/client-android/java/apps/get-key.md | 27 + .../client-android/java/apps/get-secret.md | 27 + .../2.3.x/client-android/java/apps/get.md | 26 + .../java/apps/list-installation-scopes.md | 22 + .../java/apps/list-installations.md | 28 + .../client-android/java/apps/list-keys.md | 28 + .../java/apps/list-o-auth-2-scopes.md | 22 + .../client-android/java/apps/list-secrets.md | 28 + .../2.3.x/client-android/java/apps/list.md | 27 + .../client-android/java/apps/update-team.md | 27 + .../2.3.x/client-android/java/apps/update.md | 45 + .../java/avatars/delete-photo.md | 22 + .../java/avatars/get-browser.md | 6 +- .../java/avatars/get-credit-card.md | 6 +- .../client-android/java/avatars/get-flag.md | 6 +- .../client-android/java/avatars/get-image.md | 4 +- .../java/avatars/get-initials.md | 4 +- .../client-android/java/avatars/get-photo.md | 6 +- .../client-android/java/avatars/get-qr.md | 4 +- .../java/avatars/get-screenshot.md | 19 +- .../java/avatars/update-photo.md | 27 + .../java/databases/create-transaction.md | 2 +- .../databases/decrement-document-attribute.md | 4 +- .../databases/increment-document-attribute.md | 4 +- .../java/databases/list-documents.md | 2 +- .../java/databases/list-transactions.md | 1 + .../java/documentsdb/create-documents.md | 9 +- .../java/documentsdb/create-transaction.md | 2 +- .../decrement-document-attribute.md | 4 +- .../increment-document-attribute.md | 4 +- .../java/documentsdb/list-documents.md | 2 +- .../java/documentsdb/list-transactions.md | 1 + .../client-android/java/graphql/mutation.md | 4 +- .../client-android/java/graphql/query.md | 4 +- .../client-android/java/locale/list-codes.md | 18 +- .../java/locale/list-continents.md | 18 +- .../java/locale/list-countries-eu.md | 18 +- .../java/locale/list-countries-phones.md | 18 +- .../java/locale/list-countries.md | 18 +- .../java/locale/list-currencies.md | 18 +- .../java/locale/list-languages.md | 18 +- .../client-android/java/oauth2/approve.md | 28 + .../java/oauth2/authorize-post.md | 39 + .../client-android/java/oauth2/authorize.md | 39 + .../oauth2/create-device-authorization.md | 30 + .../java/oauth2/create-grant.md | 26 + .../client-android/java/oauth2/create-par.md | 38 + .../java/oauth2/create-token.md | 35 + .../client-android/java/oauth2/get-grant.md | 26 + .../java/oauth2/list-organizations.md | 28 + .../java/oauth2/list-projects.md | 28 + .../client-android/java/oauth2/logout-post.md | 31 + .../client-android/java/oauth2/logout.md | 31 + .../client-android/java/oauth2/reject.md | 26 + .../client-android/java/oauth2/revoke.md | 29 + .../client-android/java/presences/list.md | 2 +- .../java/storage/get-file-preview.md | 14 +- .../java/tablesdb/create-transaction.md | 2 +- .../java/tablesdb/decrement-row-column.md | 4 +- .../java/tablesdb/increment-row-column.md | 4 +- .../client-android/java/tablesdb/list-rows.md | 2 +- .../java/tablesdb/list-transactions.md | 1 + .../java/teams/create-membership.md | 2 +- .../java/teams/update-membership.md | 2 +- .../java/vectorsdb/create-operations.md | 5 +- .../java/vectorsdb/create-query.md | 2 +- .../java/vectorsdb/create-transaction.md | 2 +- .../java/vectorsdb/list-documents.md | 2 +- .../java/vectorsdb/list-transactions.md | 1 + .../account/create-email-password-session.md | 1 + .../kotlin/account/delete-sessions.md | 4 +- .../kotlin/account/list-sessions.md | 4 +- .../kotlin/analytics/create-event.md | 27 + .../kotlin/apps/create-installation-token.md | 16 + .../client-android/kotlin/apps/create-key.md | 15 + .../kotlin/apps/create-secret.md | 15 + .../client-android/kotlin/apps/create.md | 33 + .../kotlin/apps/delete-installation.md | 16 + .../client-android/kotlin/apps/delete-key.md | 16 + .../kotlin/apps/delete-secret.md | 16 + .../kotlin/apps/delete-tokens.md | 15 + .../client-android/kotlin/apps/delete.md | 15 + .../kotlin/apps/get-installation.md | 16 + .../client-android/kotlin/apps/get-key.md | 16 + .../client-android/kotlin/apps/get-secret.md | 16 + .../2.3.x/client-android/kotlin/apps/get.md | 15 + .../kotlin/apps/list-installation-scopes.md | 13 + .../kotlin/apps/list-installations.md | 17 + .../client-android/kotlin/apps/list-keys.md | 17 + .../kotlin/apps/list-o-auth-2-scopes.md | 13 + .../kotlin/apps/list-secrets.md | 17 + .../2.3.x/client-android/kotlin/apps/list.md | 16 + .../client-android/kotlin/apps/update-team.md | 16 + .../client-android/kotlin/apps/update.md | 34 + .../kotlin/avatars/delete-photo.md | 13 + .../kotlin/avatars/get-screenshot.md | 7 +- .../kotlin/avatars/update-photo.md | 16 + .../databases/decrement-document-attribute.md | 4 +- .../databases/increment-document-attribute.md | 4 +- .../kotlin/databases/list-transactions.md | 1 + .../kotlin/documentsdb/create-documents.md | 9 +- .../decrement-document-attribute.md | 4 +- .../increment-document-attribute.md | 4 +- .../kotlin/documentsdb/list-transactions.md | 1 + .../client-android/kotlin/graphql/mutation.md | 4 +- .../client-android/kotlin/graphql/query.md | 4 +- .../kotlin/locale/list-codes.md | 4 +- .../kotlin/locale/list-continents.md | 4 +- .../kotlin/locale/list-countries-eu.md | 4 +- .../kotlin/locale/list-countries-phones.md | 4 +- .../kotlin/locale/list-countries.md | 4 +- .../kotlin/locale/list-currencies.md | 4 +- .../kotlin/locale/list-languages.md | 4 +- .../client-android/kotlin/oauth2/approve.md | 17 + .../kotlin/oauth2/authorize-post.md | 28 + .../client-android/kotlin/oauth2/authorize.md | 28 + .../oauth2/create-device-authorization.md | 19 + .../kotlin/oauth2/create-grant.md | 15 + .../kotlin/oauth2/create-par.md | 27 + .../kotlin/oauth2/create-token.md | 24 + .../client-android/kotlin/oauth2/get-grant.md | 15 + .../kotlin/oauth2/list-organizations.md | 17 + .../kotlin/oauth2/list-projects.md | 17 + .../kotlin/oauth2/logout-post.md | 20 + .../client-android/kotlin/oauth2/logout.md | 20 + .../client-android/kotlin/oauth2/reject.md | 15 + .../client-android/kotlin/oauth2/revoke.md | 18 + .../kotlin/storage/get-file-preview.md | 2 +- .../kotlin/tablesdb/decrement-row-column.md | 4 +- .../kotlin/tablesdb/increment-row-column.md | 4 +- .../kotlin/tablesdb/list-transactions.md | 1 + .../kotlin/teams/create-membership.md | 2 +- .../kotlin/teams/update-membership.md | 2 +- .../kotlin/vectorsdb/create-operations.md | 5 +- .../kotlin/vectorsdb/list-transactions.md | 1 + .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 26 + .../apps/create-installation-token.md | 15 + .../client-apple/examples/apps/create-key.md | 14 + .../examples/apps/create-secret.md | 14 + .../client-apple/examples/apps/create.md | 32 + .../examples/apps/delete-installation.md | 15 + .../client-apple/examples/apps/delete-key.md | 15 + .../examples/apps/delete-secret.md | 15 + .../examples/apps/delete-tokens.md | 14 + .../client-apple/examples/apps/delete.md | 14 + .../examples/apps/get-installation.md | 15 + .../client-apple/examples/apps/get-key.md | 15 + .../client-apple/examples/apps/get-secret.md | 15 + .../2.3.x/client-apple/examples/apps/get.md | 14 + .../examples/apps/list-installation-scopes.md | 12 + .../examples/apps/list-installations.md | 16 + .../client-apple/examples/apps/list-keys.md | 16 + .../examples/apps/list-o-auth-2-scopes.md | 12 + .../examples/apps/list-secrets.md | 16 + .../2.3.x/client-apple/examples/apps/list.md | 15 + .../client-apple/examples/apps/update-team.md | 15 + .../client-apple/examples/apps/update.md | 33 + .../examples/avatars/delete-photo.md | 12 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 14 + .../examples/databases/list-transactions.md | 3 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/list-transactions.md | 3 +- .../client-apple/examples/graphql/mutation.md | 4 +- .../client-apple/examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../client-apple/examples/oauth2/approve.md | 16 + .../examples/oauth2/authorize-post.md | 27 + .../client-apple/examples/oauth2/authorize.md | 27 + .../oauth2/create-device-authorization.md | 18 + .../examples/oauth2/create-grant.md | 14 + .../examples/oauth2/create-par.md | 26 + .../examples/oauth2/create-token.md | 23 + .../client-apple/examples/oauth2/get-grant.md | 14 + .../examples/oauth2/list-organizations.md | 16 + .../examples/oauth2/list-projects.md | 16 + .../examples/oauth2/logout-post.md | 19 + .../client-apple/examples/oauth2/logout.md | 19 + .../client-apple/examples/oauth2/reject.md | 14 + .../client-apple/examples/oauth2/revoke.md | 17 + .../examples/tablesdb/list-transactions.md | 3 +- .../examples/teams/create-membership.md | 4 +- .../examples/teams/update-membership.md | 4 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 25 + .../apps/create-installation-token.md | 14 + .../examples/apps/create-key.md | 13 + .../examples/apps/create-secret.md | 13 + .../client-flutter/examples/apps/create.md | 31 + .../examples/apps/delete-installation.md | 14 + .../examples/apps/delete-key.md | 14 + .../examples/apps/delete-secret.md | 14 + .../examples/apps/delete-tokens.md | 13 + .../client-flutter/examples/apps/delete.md | 13 + .../examples/apps/get-installation.md | 14 + .../client-flutter/examples/apps/get-key.md | 14 + .../examples/apps/get-secret.md | 14 + .../2.3.x/client-flutter/examples/apps/get.md | 13 + .../examples/apps/list-installation-scopes.md | 11 + .../examples/apps/list-installations.md | 15 + .../client-flutter/examples/apps/list-keys.md | 15 + .../examples/apps/list-o-auth-2-scopes.md | 11 + .../examples/apps/list-secrets.md | 15 + .../client-flutter/examples/apps/list.md | 14 + .../examples/apps/update-team.md | 14 + .../client-flutter/examples/apps/update.md | 32 + .../examples/avatars/delete-photo.md | 11 + .../examples/avatars/get-screenshot.md | 6 +- .../examples/avatars/update-photo.md | 14 + .../examples/databases/list-transactions.md | 1 + .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/graphql/mutation.md | 4 +- .../client-flutter/examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../client-flutter/examples/oauth2/approve.md | 15 + .../examples/oauth2/authorize-post.md | 26 + .../examples/oauth2/authorize.md | 26 + .../oauth2/create-device-authorization.md | 17 + .../examples/oauth2/create-grant.md | 13 + .../examples/oauth2/create-par.md | 25 + .../examples/oauth2/create-token.md | 22 + .../examples/oauth2/get-grant.md | 13 + .../examples/oauth2/list-organizations.md | 15 + .../examples/oauth2/list-projects.md | 15 + .../examples/oauth2/logout-post.md | 18 + .../client-flutter/examples/oauth2/logout.md | 18 + .../client-flutter/examples/oauth2/reject.md | 13 + .../client-flutter/examples/oauth2/revoke.md | 16 + .../examples/tablesdb/list-transactions.md | 1 + .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/list-transactions.md | 1 + .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 21 + .../apps/create-installation-token.md | 16 + .../examples/apps/create-key.md | 17 + .../examples/apps/create-secret.md | 17 + .../client-graphql/examples/apps/create.md | 62 + .../examples/apps/delete-installation.md | 10 + .../examples/apps/delete-key.md | 10 + .../examples/apps/delete-secret.md | 10 + .../examples/apps/delete-tokens.md | 9 + .../client-graphql/examples/apps/delete.md | 9 + .../examples/apps/get-installation.md | 19 + .../client-graphql/examples/apps/get-key.md | 18 + .../examples/apps/get-secret.md | 18 + .../2.3.x/client-graphql/examples/apps/get.md | 44 + .../examples/apps/list-installation-scopes.md | 14 + .../examples/apps/list-installations.md | 23 + .../client-graphql/examples/apps/list-keys.md | 22 + .../examples/apps/list-o-auth-2-scopes.md | 14 + .../examples/apps/list-secrets.md | 22 + .../client-graphql/examples/apps/list.md | 48 + .../examples/apps/update-team.md | 45 + .../client-graphql/examples/apps/update.md | 63 + .../examples/avatars/delete-photo.md | 7 + .../examples/avatars/get-screenshot.md | 2 +- .../examples/avatars/update-photo.md | 26 + .../examples/databases/list-transactions.md | 3 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../client-graphql/examples/oauth2/approve.md | 11 + .../examples/oauth2/authorize-post.md | 23 + .../examples/oauth2/authorize.md | 23 + .../oauth2/create-device-authorization.md | 18 + .../examples/oauth2/create-grant.md | 20 + .../examples/oauth2/create-par.md | 22 + .../examples/oauth2/create-token.md | 24 + .../examples/oauth2/get-grant.md | 20 + .../examples/oauth2/list-organizations.md | 14 + .../examples/oauth2/list-projects.md | 16 + .../examples/oauth2/logout-post.md | 14 + .../client-graphql/examples/oauth2/logout.md | 14 + .../client-graphql/examples/oauth2/reject.md | 9 + .../client-graphql/examples/oauth2/revoke.md | 12 + .../examples/tablesdb/list-transactions.md | 3 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 27 + .../apps/create-installation-token.md | 16 + .../examples/apps/create-key.md | 15 + .../examples/apps/create-secret.md | 15 + .../examples/apps/create.md | 33 + .../examples/apps/delete-installation.md | 16 + .../examples/apps/delete-key.md | 16 + .../examples/apps/delete-secret.md | 16 + .../examples/apps/delete-tokens.md | 15 + .../examples/apps/delete.md | 15 + .../examples/apps/get-installation.md | 16 + .../examples/apps/get-key.md | 16 + .../examples/apps/get-secret.md | 16 + .../client-react-native/examples/apps/get.md | 15 + .../examples/apps/list-installation-scopes.md | 13 + .../examples/apps/list-installations.md | 17 + .../examples/apps/list-keys.md | 17 + .../examples/apps/list-o-auth-2-scopes.md | 13 + .../examples/apps/list-secrets.md | 17 + .../client-react-native/examples/apps/list.md | 16 + .../examples/apps/update-team.md | 16 + .../examples/apps/update.md | 34 + .../examples/avatars/delete-photo.md | 13 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 20 + .../examples/databases/list-transactions.md | 1 + .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/graphql/mutation.md | 4 +- .../examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/oauth2/approve.md | 17 + .../examples/oauth2/authorize-post.md | 28 + .../examples/oauth2/authorize.md | 28 + .../oauth2/create-device-authorization.md | 19 + .../examples/oauth2/create-grant.md | 15 + .../examples/oauth2/create-par.md | 27 + .../examples/oauth2/create-token.md | 24 + .../examples/oauth2/get-grant.md | 15 + .../examples/oauth2/list-organizations.md | 17 + .../examples/oauth2/list-projects.md | 17 + .../examples/oauth2/logout-post.md | 20 + .../examples/oauth2/logout.md | 20 + .../examples/oauth2/reject.md | 15 + .../examples/oauth2/revoke.md | 18 + .../examples/tablesdb/list-transactions.md | 1 + .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/vectorsdb/create-operations.md | 5 +- .../examples/vectorsdb/list-transactions.md | 1 + .../account/create-email-password-session.md | 3 +- .../examples/analytics/create-event.md | 23 + .../apps/create-installation-token.md | 9 + .../client-rest/examples/apps/create-key.md | 9 + .../examples/apps/create-secret.md | 9 + .../2.3.x/client-rest/examples/apps/create.md | 30 + .../examples/apps/delete-installation.md | 9 + .../client-rest/examples/apps/delete-key.md | 9 + .../examples/apps/delete-secret.md | 9 + .../examples/apps/delete-tokens.md | 9 + .../2.3.x/client-rest/examples/apps/delete.md | 9 + .../examples/apps/get-installation.md | 7 + .../client-rest/examples/apps/get-key.md | 7 + .../client-rest/examples/apps/get-secret.md | 7 + .../2.3.x/client-rest/examples/apps/get.md | 7 + .../examples/apps/list-installation-scopes.md | 7 + .../examples/apps/list-installations.md | 7 + .../client-rest/examples/apps/list-keys.md | 7 + .../examples/apps/list-o-auth-2-scopes.md | 7 + .../client-rest/examples/apps/list-secrets.md | 7 + .../2.3.x/client-rest/examples/apps/list.md | 7 + .../client-rest/examples/apps/update-team.md | 12 + .../2.3.x/client-rest/examples/apps/update.md | 30 + .../examples/avatars/delete-photo.md | 9 + .../examples/avatars/update-photo.md | 16 + .../examples/documentsdb/create-documents.md | 11 +- .../client-rest/examples/graphql/mutation.md | 4 +- .../client-rest/examples/graphql/query.md | 4 +- .../client-rest/examples/oauth2/approve.md | 13 + .../examples/oauth2/authorize-post.md | 24 + .../client-rest/examples/oauth2/authorize.md | 6 + .../oauth2/create-device-authorization.md | 15 + .../examples/oauth2/create-grant.md | 11 + .../client-rest/examples/oauth2/create-par.md | 23 + .../examples/oauth2/create-token.md | 20 + .../client-rest/examples/oauth2/get-grant.md | 6 + .../examples/oauth2/list-organizations.md | 6 + .../examples/oauth2/list-projects.md | 6 + .../examples/oauth2/logout-post.md | 16 + .../client-rest/examples/oauth2/logout.md | 6 + .../client-rest/examples/oauth2/reject.md | 11 + .../client-rest/examples/oauth2/revoke.md | 14 + .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 27 + .../apps/create-installation-token.md | 16 + .../client-web/examples/apps/create-key.md | 15 + .../client-web/examples/apps/create-secret.md | 15 + .../2.3.x/client-web/examples/apps/create.md | 33 + .../examples/apps/delete-installation.md | 16 + .../client-web/examples/apps/delete-key.md | 16 + .../client-web/examples/apps/delete-secret.md | 16 + .../client-web/examples/apps/delete-tokens.md | 15 + .../2.3.x/client-web/examples/apps/delete.md | 15 + .../examples/apps/get-installation.md | 16 + .../2.3.x/client-web/examples/apps/get-key.md | 16 + .../client-web/examples/apps/get-secret.md | 16 + .../2.3.x/client-web/examples/apps/get.md | 15 + .../examples/apps/list-installation-scopes.md | 13 + .../examples/apps/list-installations.md | 17 + .../client-web/examples/apps/list-keys.md | 17 + .../examples/apps/list-o-auth-2-scopes.md | 13 + .../client-web/examples/apps/list-secrets.md | 17 + .../2.3.x/client-web/examples/apps/list.md | 16 + .../client-web/examples/apps/update-team.md | 16 + .../2.3.x/client-web/examples/apps/update.md | 34 + .../examples/avatars/delete-photo.md | 13 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 15 + .../examples/databases/list-transactions.md | 1 + .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/list-transactions.md | 1 + .../client-web/examples/graphql/mutation.md | 4 +- .../client-web/examples/graphql/query.md | 4 +- .../client-web/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../client-web/examples/oauth2/approve.md | 17 + .../examples/oauth2/authorize-post.md | 28 + .../client-web/examples/oauth2/authorize.md | 28 + .../oauth2/create-device-authorization.md | 19 + .../examples/oauth2/create-grant.md | 15 + .../client-web/examples/oauth2/create-par.md | 27 + .../examples/oauth2/create-token.md | 24 + .../client-web/examples/oauth2/get-grant.md | 15 + .../examples/oauth2/list-organizations.md | 17 + .../examples/oauth2/list-projects.md | 17 + .../client-web/examples/oauth2/logout-post.md | 20 + .../client-web/examples/oauth2/logout.md | 20 + .../client-web/examples/oauth2/reject.md | 15 + .../client-web/examples/oauth2/revoke.md | 18 + .../examples/tablesdb/list-transactions.md | 1 + .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/vectorsdb/create-operations.md | 5 +- .../examples/vectorsdb/list-transactions.md | 1 + .../examples/account/update-mfa.md | 2 +- .../examples/account/update-prefs.md | 2 +- .../examples/analytics/create-event.md | 6 + .../examples/analytics/create-property.md | 5 + .../examples/analytics/delete-property.md | 4 + .../examples/analytics/get-property.md | 4 + .../examples/analytics/list-metrics.md | 4 + .../examples/analytics/list-properties.md | 4 + .../examples/analytics/update-property.md | 4 + .../2.3.x/console-cli/examples/apps/create.md | 2 +- .../examples/apps/update-labels.md | 2 +- .../examples/backups/create-archive.md | 2 +- .../examples/backups/create-policy.md | 4 +- .../examples/backups/create-restoration.md | 2 +- .../databases/create-big-int-attribute.md | 2 +- .../databases/create-boolean-attribute.md | 2 +- .../databases/create-datetime-attribute.md | 2 +- .../examples/databases/create-document.md | 2 +- .../examples/databases/create-documents.md | 2 +- .../databases/create-email-attribute.md | 2 +- .../databases/create-enum-attribute.md | 5 +- .../databases/create-float-attribute.md | 2 +- .../examples/databases/create-index.md | 2 +- .../databases/create-integer-attribute.md | 2 +- .../examples/databases/create-ip-attribute.md | 2 +- .../databases/create-line-attribute.md | 2 +- .../databases/create-longtext-attribute.md | 2 +- .../databases/create-mediumtext-attribute.md | 2 +- .../databases/create-point-attribute.md | 2 +- .../databases/create-polygon-attribute.md | 2 +- .../databases/create-string-attribute.md | 2 +- .../databases/create-text-attribute.md | 2 +- .../databases/create-url-attribute.md | 2 +- .../databases/create-varchar-attribute.md | 2 +- .../databases/update-big-int-attribute.md | 4 +- .../databases/update-boolean-attribute.md | 4 +- .../databases/update-datetime-attribute.md | 4 +- .../databases/update-email-attribute.md | 4 +- .../databases/update-enum-attribute.md | 7 +- .../databases/update-float-attribute.md | 4 +- .../databases/update-integer-attribute.md | 4 +- .../examples/databases/update-ip-attribute.md | 4 +- .../databases/update-line-attribute.md | 2 +- .../databases/update-longtext-attribute.md | 4 +- .../databases/update-mediumtext-attribute.md | 4 +- .../databases/update-point-attribute.md | 2 +- .../databases/update-polygon-attribute.md | 2 +- .../databases/update-string-attribute.md | 4 +- .../databases/update-text-attribute.md | 4 +- .../databases/update-url-attribute.md | 4 +- .../databases/update-varchar-attribute.md | 4 +- .../examples/databases/upsert-documents.md | 2 +- .../examples/documentsdb/create-document.md | 2 +- .../examples/documentsdb/create-documents.md | 2 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/create-operations.md | 4 + .../examples/documentsdb/upsert-documents.md | 2 +- .../examples/domains/create-record-a.md | 4 +- .../examples/domains/create-record-aaaa.md | 4 +- .../examples/domains/create-record-alias.md | 2 +- .../examples/domains/create-record-caa.md | 4 +- .../examples/domains/create-record-cname.md | 2 +- .../examples/domains/create-record-https.md | 2 +- .../examples/domains/create-record-mx.md | 2 +- .../examples/domains/create-record-ns.md | 2 +- .../examples/domains/create-record-srv.md | 2 +- .../examples/domains/create-record-txt.md | 2 +- .../examples/domains/list-prices.md | 2 +- .../examples/domains/update-record-a.md | 4 +- .../examples/domains/update-record-aaaa.md | 4 +- .../examples/domains/update-record-alias.md | 2 +- .../examples/domains/update-record-caa.md | 4 +- .../examples/domains/update-record-cname.md | 2 +- .../examples/domains/update-record-https.md | 2 +- .../examples/domains/update-record-mx.md | 2 +- .../examples/domains/update-record-ns.md | 2 +- .../examples/domains/update-record-srv.md | 2 +- .../examples/domains/update-record-txt.md | 2 +- .../embeddings/create-text-embeddings.md | 3 +- .../examples/functions/create-deployment.md | 4 +- .../functions/get-deployment-download.md | 3 +- .../console-cli/examples/graphql/mutation.md | 2 +- .../console-cli/examples/graphql/query.md | 2 +- .../console-cli/examples/oauth2/introspect.md | 4 + .../create-ephemeral-project-key.md | 2 +- .../organization/create-membership.md | 2 +- .../organization/update-membership.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-auth-method.md | 2 +- .../update-deny-aliased-email-policy.md | 2 +- .../update-deny-corporate-email-policy.md | 2 +- .../update-deny-disposable-email-policy.md | 2 +- .../project/update-deny-free-email-policy.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-server.md | 2 +- .../project/update-o-auth-2-webflow.md | 3 + .../update-password-dictionary-policy.md | 2 +- .../update-password-personal-data-policy.md | 2 +- .../examples/project/update-protocol.md | 2 +- .../examples/project/update-service.md | 2 +- .../project/update-session-alert-policy.md | 2 +- .../update-session-invalidation-policy.md | 2 +- .../examples/sites/create-deployment.md | 2 +- .../examples/sites/get-deployment-download.md | 3 +- .../examples/storage/create-file.md | 2 +- .../examples/storage/get-file-download.md | 3 +- .../examples/storage/get-file-preview.md | 3 +- .../examples/storage/get-file-view.md | 3 +- .../tablesdb/create-big-int-column.md | 2 +- .../tablesdb/create-boolean-column.md | 2 +- .../tablesdb/create-datetime-column.md | 2 +- .../examples/tablesdb/create-email-column.md | 2 +- .../examples/tablesdb/create-enum-column.md | 5 +- .../examples/tablesdb/create-float-column.md | 2 +- .../examples/tablesdb/create-index.md | 2 +- .../tablesdb/create-integer-column.md | 2 +- .../examples/tablesdb/create-ip-column.md | 2 +- .../examples/tablesdb/create-line-column.md | 2 +- .../tablesdb/create-longtext-column.md | 2 +- .../tablesdb/create-mediumtext-column.md | 2 +- .../examples/tablesdb/create-point-column.md | 2 +- .../tablesdb/create-polygon-column.md | 2 +- .../examples/tablesdb/create-row.md | 2 +- .../examples/tablesdb/create-rows.md | 2 +- .../examples/tablesdb/create-string-column.md | 2 +- .../examples/tablesdb/create-text-column.md | 2 +- .../examples/tablesdb/create-url-column.md | 2 +- .../tablesdb/create-varchar-column.md | 2 +- .../tablesdb/update-big-int-column.md | 4 +- .../tablesdb/update-boolean-column.md | 4 +- .../tablesdb/update-datetime-column.md | 4 +- .../examples/tablesdb/update-email-column.md | 4 +- .../examples/tablesdb/update-enum-column.md | 7 +- .../examples/tablesdb/update-float-column.md | 4 +- .../tablesdb/update-integer-column.md | 4 +- .../examples/tablesdb/update-ip-column.md | 4 +- .../examples/tablesdb/update-line-column.md | 2 +- .../tablesdb/update-longtext-column.md | 4 +- .../tablesdb/update-mediumtext-column.md | 4 +- .../examples/tablesdb/update-point-column.md | 2 +- .../tablesdb/update-polygon-column.md | 2 +- .../examples/tablesdb/update-string-column.md | 4 +- .../examples/tablesdb/update-text-column.md | 4 +- .../examples/tablesdb/update-url-column.md | 4 +- .../tablesdb/update-varchar-column.md | 4 +- .../examples/tablesdb/upsert-rows.md | 2 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/teams/update-prefs.md | 2 +- .../users/update-email-verification.md | 2 +- .../examples/users/update-impersonator.md | 2 +- .../examples/users/update-labels.md | 2 +- .../console-cli/examples/users/update-mfa.md | 2 +- .../users/update-phone-verification.md | 2 +- .../examples/users/update-prefs.md | 2 +- .../examples/users/update-status.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-document.md | 2 +- .../examples/vectorsdb/create-documents.md | 2 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 2 +- .../console-cli/examples/webhooks/create.md | 2 +- .../console-cli/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 26 + .../examples/analytics/create-property.md | 23 + .../examples/analytics/delete-property.md | 14 + .../examples/analytics/get-property.md | 17 + .../examples/analytics/list-metrics.md | 26 + .../examples/analytics/list-properties.md | 19 + .../examples/analytics/update-property.md | 23 + .../examples/avatars/delete-photo.md | 12 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 18 + .../console/list-o-auth-2-providers.md | 4 +- .../console/list-organization-scopes.md | 4 +- .../examples/console/list-project-scopes.md | 4 +- .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/get-attribute.md | 10 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../examples/graphql/mutation.md | 4 +- .../console-python/examples/graphql/query.md | 4 +- .../examples/growth/create-conversation.md | 27 + .../examples/growth/create-installation.md | 24 + .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../examples/notifications/list.md | 3 +- .../create-ephemeral-project-key.md | 2 +- .../organization/create-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/get-o-auth-2-provider.md | 3 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 19 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/sites/list-templates.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/get-column.md | 10 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/usage/list-events.md | 2 +- .../examples/usage/list-gauges.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vcs/list-namespaces.md | 3 +- .../examples/vcs/list-repositories.md | 3 +- .../examples/vcs/list-repository-branches.md | 3 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../examples/webhooks/create.md | 2 +- .../examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 27 + .../examples/analytics/create-property.md | 21 + .../examples/analytics/delete-property.md | 15 + .../examples/analytics/get-property.md | 15 + .../examples/analytics/list-metrics.md | 27 + .../examples/analytics/list-properties.md | 17 + .../examples/analytics/update-property.md | 21 + .../examples/avatars/delete-photo.md | 13 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 15 + .../console/list-o-auth-2-providers.md | 4 +- .../console/list-organization-scopes.md | 4 +- .../examples/console/list-project-scopes.md | 4 +- .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 4 +- .../examples/databases/list-transactions.md | 1 + .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 4 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 5 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 1 + .../console-web/examples/graphql/mutation.md | 4 +- .../console-web/examples/graphql/query.md | 4 +- .../examples/growth/create-conversation.md | 23 + .../examples/growth/create-installation.md | 25 + .../console-web/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../manager/update-organization-status.md | 17 + .../examples/messaging/create-push.md | 1 + .../examples/messaging/update-email.md | 10 +- .../examples/messaging/update-push.md | 5 +- .../examples/messaging/update-sms.md | 2 +- .../examples/notifications/list.md | 1 + .../create-ephemeral-project-key.md | 2 +- .../organization/create-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 7 +- .../project/update-o-auth-2-discord.md | 7 +- .../project/update-o-auth-2-git-hub.md | 7 +- .../examples/project/update-o-auth-2-kakao.md | 7 +- .../project/update-o-auth-2-microsoft.md | 7 +- .../examples/project/update-o-auth-2-okta.md | 3 +- .../project/update-o-auth-2-salesforce.md | 7 +- .../project/update-o-auth-2-webflow.md | 17 + .../examples/project/update-o-auth-2-zoho.md | 3 +- .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 1 + .../examples/sites/list-templates.md | 1 + .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 1 + .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../console-web/examples/usage/list-events.md | 2 +- .../console-web/examples/usage/list-gauges.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vcs/list-namespaces.md | 1 + .../examples/vcs/list-repositories.md | 1 + .../examples/vcs/list-repository-branches.md | 1 + .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 10 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 5 +- .../examples/vectorsdb/delete-documents.md | 4 +- .../examples/vectorsdb/list-transactions.md | 1 + .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 10 +- .../console-web/examples/webhooks/create.md | 2 +- .../console-web/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 26 + .../examples/analytics/create-property.md | 20 + .../examples/analytics/delete-property.md | 14 + .../examples/analytics/get-property.md | 14 + .../examples/analytics/list-metrics.md | 22 + .../examples/analytics/list-properties.md | 16 + .../examples/analytics/update-property.md | 20 + .../examples/avatars/delete-photo.md | 12 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 15 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 1 + .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 1 + .../server-dart/examples/graphql/mutation.md | 4 +- .../server-dart/examples/graphql/query.md | 4 +- .../server-dart/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 1 + .../examples/messaging/update-email.md | 10 +- .../examples/messaging/update-push.md | 5 +- .../examples/messaging/update-sms.md | 2 +- .../server-dart/examples/oauth2/introspect.md | 17 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 16 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 1 + .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 1 + .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 1 + .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-dart/examples/webhooks/create.md | 2 +- .../server-dart/examples/webhooks/update.md | 2 +- .../account/create-anonymous-session.md | 2 +- .../account/create-email-password-session.md | 5 +- .../examples/account/create-email-token.md | 2 +- .../account/create-email-verification-otp.md | 2 +- .../account/create-email-verification.md | 2 +- .../account/create-id-token-session.md | 2 +- .../account/create-magic-url-token.md | 2 +- .../account/create-mfa-authenticator.md | 2 +- .../examples/account/create-mfa-challenge.md | 2 +- .../account/create-mfa-recovery-codes.md | 2 +- .../examples/account/create-phone-token.md | 2 +- .../account/create-phone-verification.md | 2 +- .../examples/account/create-recovery-otp.md | 2 +- .../examples/account/create-recovery.md | 2 +- .../examples/account/create-session.md | 2 +- .../examples/account/create-verification.md | 2 +- .../server-dotnet/examples/account/create.md | 2 +- .../examples/account/delete-sessions.md | 5 +- .../examples/account/get-consent-token.md | 2 +- .../examples/account/get-consent.md | 2 +- .../account/get-mfa-recovery-codes.md | 2 +- .../examples/account/get-prefs.md | 2 +- .../examples/account/get-session.md | 2 +- .../server-dotnet/examples/account/get.md | 2 +- .../examples/account/list-consent-tokens.md | 2 +- .../examples/account/list-consents.md | 2 +- .../examples/account/list-identities.md | 2 +- .../examples/account/list-mfa-factors.md | 2 +- .../examples/account/list-sessions.md | 5 +- .../account/update-email-verification-otp.md | 2 +- .../account/update-email-verification.md | 2 +- .../examples/account/update-email.md | 2 +- .../account/update-magic-url-session.md | 2 +- .../account/update-mfa-authenticator.md | 2 +- .../examples/account/update-mfa-challenge.md | 2 +- .../account/update-mfa-recovery-codes.md | 2 +- .../examples/account/update-mfa.md | 2 +- .../examples/account/update-name.md | 2 +- .../examples/account/update-password.md | 2 +- .../examples/account/update-phone-session.md | 2 +- .../account/update-phone-verification.md | 2 +- .../examples/account/update-phone.md | 2 +- .../examples/account/update-prefs.md | 2 +- .../examples/account/update-recovery-otp.md | 2 +- .../examples/account/update-recovery.md | 2 +- .../examples/account/update-session.md | 2 +- .../examples/account/update-status.md | 2 +- .../examples/account/update-verification.md | 2 +- .../examples/activities/get-event.md | 2 +- .../examples/activities/list-events.md | 2 +- .../examples/advisor/get-insight.md | 2 +- .../examples/advisor/get-report.md | 2 +- .../examples/advisor/list-insights.md | 2 +- .../examples/advisor/list-reports.md | 2 +- .../examples/analytics/create-event.md | 29 + .../examples/analytics/create-property.md | 23 + .../examples/analytics/delete-property.md | 17 + .../examples/analytics/get-property.md | 17 + .../examples/analytics/list-metrics.md | 25 + .../examples/analytics/list-properties.md | 19 + .../examples/analytics/update-property.md | 23 + .../apps/create-installation-token.md | 2 +- .../server-dotnet/examples/apps/create-key.md | 2 +- .../examples/apps/create-secret.md | 2 +- .../server-dotnet/examples/apps/create.md | 2 +- .../examples/apps/get-installation.md | 2 +- .../server-dotnet/examples/apps/get-key.md | 2 +- .../server-dotnet/examples/apps/get-secret.md | 2 +- .../2.3.x/server-dotnet/examples/apps/get.md | 2 +- .../examples/apps/list-installation-scopes.md | 2 +- .../examples/apps/list-installations.md | 2 +- .../server-dotnet/examples/apps/list-keys.md | 2 +- .../examples/apps/list-o-auth-2-scopes.md | 2 +- .../examples/apps/list-secrets.md | 2 +- .../2.3.x/server-dotnet/examples/apps/list.md | 2 +- .../examples/apps/update-labels.md | 2 +- .../examples/apps/update-team.md | 2 +- .../server-dotnet/examples/apps/update.md | 2 +- .../examples/avatars/delete-photo.md | 16 + .../examples/avatars/get-screenshot.md | 5 +- .../examples/avatars/update-photo.md | 17 + .../examples/backups/create-archive.md | 2 +- .../examples/backups/create-policy.md | 2 +- .../examples/backups/create-restoration.md | 2 +- .../examples/backups/get-archive.md | 2 +- .../examples/backups/get-policy.md | 2 +- .../examples/backups/get-restoration.md | 2 +- .../examples/backups/list-archives.md | 2 +- .../examples/backups/list-policies.md | 2 +- .../examples/backups/list-restorations.md | 2 +- .../examples/backups/update-policy.md | 2 +- .../databases/create-big-int-attribute.md | 2 +- .../databases/create-boolean-attribute.md | 2 +- .../examples/databases/create-collection.md | 2 +- .../databases/create-datetime-attribute.md | 2 +- .../examples/databases/create-document.md | 2 +- .../examples/databases/create-documents.md | 13 +- .../databases/create-email-attribute.md | 2 +- .../databases/create-enum-attribute.md | 2 +- .../databases/create-float-attribute.md | 2 +- .../examples/databases/create-index.md | 4 +- .../databases/create-integer-attribute.md | 2 +- .../examples/databases/create-ip-attribute.md | 2 +- .../databases/create-line-attribute.md | 2 +- .../databases/create-longtext-attribute.md | 2 +- .../databases/create-mediumtext-attribute.md | 2 +- .../examples/databases/create-operations.md | 2 +- .../databases/create-point-attribute.md | 2 +- .../databases/create-polygon-attribute.md | 2 +- .../create-relationship-attribute.md | 2 +- .../databases/create-string-attribute.md | 2 +- .../databases/create-text-attribute.md | 2 +- .../examples/databases/create-transaction.md | 2 +- .../databases/create-url-attribute.md | 2 +- .../databases/create-varchar-attribute.md | 2 +- .../examples/databases/create.md | 2 +- .../databases/decrement-document-attribute.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/get-collection.md | 2 +- .../examples/databases/get-document.md | 2 +- .../examples/databases/get-index.md | 2 +- .../examples/databases/get-transaction.md | 2 +- .../server-dotnet/examples/databases/get.md | 2 +- .../databases/increment-document-attribute.md | 2 +- .../examples/databases/list-attributes.md | 2 +- .../examples/databases/list-collections.md | 2 +- .../examples/databases/list-documents.md | 2 +- .../examples/databases/list-indexes.md | 2 +- .../examples/databases/list-transactions.md | 5 +- .../server-dotnet/examples/databases/list.md | 2 +- .../databases/update-big-int-attribute.md | 2 +- .../databases/update-boolean-attribute.md | 2 +- .../examples/databases/update-collection.md | 2 +- .../databases/update-datetime-attribute.md | 2 +- .../examples/databases/update-document.md | 2 +- .../examples/databases/update-documents.md | 2 +- .../databases/update-email-attribute.md | 2 +- .../databases/update-enum-attribute.md | 2 +- .../databases/update-float-attribute.md | 2 +- .../databases/update-integer-attribute.md | 2 +- .../examples/databases/update-ip-attribute.md | 2 +- .../databases/update-line-attribute.md | 2 +- .../databases/update-longtext-attribute.md | 2 +- .../databases/update-mediumtext-attribute.md | 2 +- .../databases/update-point-attribute.md | 2 +- .../databases/update-polygon-attribute.md | 2 +- .../update-relationship-attribute.md | 2 +- .../databases/update-string-attribute.md | 2 +- .../databases/update-text-attribute.md | 2 +- .../examples/databases/update-transaction.md | 2 +- .../databases/update-url-attribute.md | 2 +- .../databases/update-varchar-attribute.md | 2 +- .../examples/databases/update.md | 2 +- .../examples/databases/upsert-document.md | 2 +- .../examples/databases/upsert-documents.md | 13 +- .../examples/documentsdb/create-collection.md | 2 +- .../examples/documentsdb/create-document.md | 2 +- .../examples/documentsdb/create-documents.md | 13 +- .../examples/documentsdb/create-failover.md | 2 +- .../examples/documentsdb/create-index.md | 4 +- .../examples/documentsdb/create-operations.md | 2 +- .../documentsdb/create-transaction.md | 2 +- .../examples/documentsdb/create.md | 2 +- .../decrement-document-attribute.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/get-collection.md | 2 +- .../examples/documentsdb/get-document.md | 2 +- .../examples/documentsdb/get-index.md | 2 +- .../examples/documentsdb/get-replicas.md | 2 +- .../examples/documentsdb/get-status.md | 2 +- .../examples/documentsdb/get-transaction.md | 2 +- .../server-dotnet/examples/documentsdb/get.md | 2 +- .../increment-document-attribute.md | 2 +- .../examples/documentsdb/list-collections.md | 2 +- .../examples/documentsdb/list-documents.md | 2 +- .../examples/documentsdb/list-indexes.md | 2 +- .../examples/documentsdb/list-operations.md | 2 +- .../documentsdb/list-specifications.md | 2 +- .../examples/documentsdb/list-transactions.md | 5 +- .../examples/documentsdb/list.md | 2 +- .../examples/documentsdb/update-collection.md | 2 +- .../examples/documentsdb/update-document.md | 2 +- .../examples/documentsdb/update-documents.md | 2 +- .../documentsdb/update-transaction.md | 2 +- .../examples/documentsdb/update.md | 2 +- .../examples/documentsdb/upsert-document.md | 2 +- .../examples/documentsdb/upsert-documents.md | 13 +- .../domains/create-preset-google-workspace.md | 2 +- .../examples/domains/create-preset-i-cloud.md | 2 +- .../examples/domains/create-preset-mailgun.md | 2 +- .../examples/domains/create-preset-outlook.md | 2 +- .../domains/create-preset-proton-mail.md | 2 +- .../examples/domains/create-preset-zoho.md | 2 +- .../examples/domains/create-record-a.md | 2 +- .../examples/domains/create-record-aaaa.md | 2 +- .../examples/domains/create-record-alias.md | 2 +- .../examples/domains/create-record-caa.md | 2 +- .../examples/domains/create-record-cname.md | 2 +- .../examples/domains/create-record-https.md | 2 +- .../examples/domains/create-record-mx.md | 2 +- .../examples/domains/create-record-ns.md | 2 +- .../examples/domains/create-record-srv.md | 2 +- .../examples/domains/create-record-txt.md | 2 +- .../server-dotnet/examples/domains/create.md | 2 +- .../domains/get-preset-google-workspace.md | 2 +- .../examples/domains/get-preset-i-cloud.md | 2 +- .../examples/domains/get-preset-mailgun.md | 2 +- .../examples/domains/get-preset-outlook.md | 2 +- .../domains/get-preset-proton-mail.md | 2 +- .../examples/domains/get-preset-zoho.md | 2 +- .../examples/domains/get-price.md | 2 +- .../examples/domains/get-record.md | 2 +- .../examples/domains/get-transfer-status.md | 2 +- .../examples/domains/get-zone.md | 2 +- .../server-dotnet/examples/domains/get.md | 2 +- .../examples/domains/list-prices.md | 2 +- .../examples/domains/list-records.md | 2 +- .../server-dotnet/examples/domains/list.md | 2 +- .../examples/domains/update-nameservers.md | 2 +- .../examples/domains/update-record-a.md | 2 +- .../examples/domains/update-record-aaaa.md | 2 +- .../examples/domains/update-record-alias.md | 2 +- .../examples/domains/update-record-caa.md | 2 +- .../examples/domains/update-record-cname.md | 2 +- .../examples/domains/update-record-https.md | 2 +- .../examples/domains/update-record-mx.md | 2 +- .../examples/domains/update-record-ns.md | 2 +- .../examples/domains/update-record-srv.md | 2 +- .../examples/domains/update-record-txt.md | 2 +- .../examples/domains/update-team.md | 2 +- .../examples/domains/update-zone.md | 2 +- .../examples/domains/verify-nameservers.md | 2 +- .../embeddings/create-text-embeddings.md | 4 +- .../examples/functions/create-deployment.md | 2 +- .../functions/create-duplicate-deployment.md | 2 +- .../examples/functions/create-execution.md | 2 +- .../functions/create-template-deployment.md | 2 +- .../examples/functions/create-variable.md | 2 +- .../functions/create-vcs-deployment.md | 2 +- .../examples/functions/create.md | 2 +- .../examples/functions/get-deployment.md | 2 +- .../examples/functions/get-execution.md | 2 +- .../examples/functions/get-variable.md | 2 +- .../server-dotnet/examples/functions/get.md | 2 +- .../examples/functions/list-deployments.md | 2 +- .../examples/functions/list-executions.md | 2 +- .../examples/functions/list-runtimes.md | 5 +- .../examples/functions/list-specifications.md | 5 +- .../examples/functions/list-variables.md | 2 +- .../server-dotnet/examples/functions/list.md | 2 +- .../functions/update-deployment-status.md | 2 +- .../functions/update-function-deployment.md | 2 +- .../examples/functions/update-variable.md | 2 +- .../examples/functions/update.md | 2 +- .../examples/graphql/mutation.md | 4 +- .../server-dotnet/examples/graphql/query.md | 4 +- .../server-dotnet/examples/locale/get.md | 2 +- .../examples/locale/list-codes.md | 5 +- .../examples/locale/list-continents.md | 5 +- .../examples/locale/list-countries-eu.md | 5 +- .../examples/locale/list-countries-phones.md | 5 +- .../examples/locale/list-countries.md | 5 +- .../examples/locale/list-currencies.md | 5 +- .../examples/locale/list-languages.md | 5 +- .../messaging/create-apns-provider.md | 2 +- .../messaging/create-appwrite-provider.md | 2 +- .../examples/messaging/create-email.md | 2 +- .../examples/messaging/create-fcm-provider.md | 2 +- .../messaging/create-mailgun-provider.md | 2 +- .../messaging/create-msg-91-provider.md | 2 +- .../examples/messaging/create-push.md | 5 +- .../messaging/create-resend-provider.md | 2 +- .../messaging/create-sendgrid-provider.md | 2 +- .../examples/messaging/create-ses-provider.md | 2 +- .../examples/messaging/create-sms.md | 2 +- .../messaging/create-smtp-provider.md | 2 +- .../examples/messaging/create-subscriber.md | 2 +- .../messaging/create-telesign-provider.md | 2 +- .../messaging/create-textmagic-provider.md | 2 +- .../examples/messaging/create-topic.md | 2 +- .../messaging/create-twilio-provider.md | 2 +- .../messaging/create-vonage-provider.md | 2 +- .../examples/messaging/get-message.md | 2 +- .../examples/messaging/get-provider.md | 2 +- .../examples/messaging/get-subscriber.md | 2 +- .../examples/messaging/get-topic.md | 2 +- .../examples/messaging/list-messages.md | 2 +- .../examples/messaging/list-providers.md | 2 +- .../examples/messaging/list-subscribers.md | 2 +- .../examples/messaging/list-targets.md | 2 +- .../examples/messaging/list-topics.md | 2 +- .../messaging/update-apns-provider.md | 2 +- .../messaging/update-appwrite-provider.md | 2 +- .../examples/messaging/update-email.md | 14 +- .../examples/messaging/update-fcm-provider.md | 2 +- .../messaging/update-mailgun-provider.md | 2 +- .../messaging/update-msg-91-provider.md | 2 +- .../examples/messaging/update-push.md | 9 +- .../messaging/update-resend-provider.md | 2 +- .../messaging/update-sendgrid-provider.md | 2 +- .../examples/messaging/update-ses-provider.md | 2 +- .../examples/messaging/update-sms.md | 4 +- .../messaging/update-smtp-provider.md | 2 +- .../messaging/update-telesign-provider.md | 2 +- .../messaging/update-textmagic-provider.md | 2 +- .../examples/messaging/update-topic.md | 2 +- .../messaging/update-twilio-provider.md | 2 +- .../messaging/update-vonage-provider.md | 2 +- .../examples/mongo/create-backup-policy.md | 2 +- .../examples/mongo/create-backup.md | 2 +- .../examples/mongo/create-branch.md | 2 +- .../examples/mongo/create-failover.md | 2 +- .../examples/mongo/create-migration.md | 2 +- .../examples/mongo/create-restoration.md | 2 +- .../examples/mongo/create-upgrade.md | 2 +- .../server-dotnet/examples/mongo/create.md | 2 +- .../examples/mongo/get-backup-policy.md | 2 +- .../examples/mongo/get-backup.md | 2 +- .../server-dotnet/examples/mongo/get-pitr.md | 2 +- .../examples/mongo/get-replicas.md | 2 +- .../examples/mongo/get-restoration.md | 2 +- .../examples/mongo/get-status.md | 2 +- .../2.3.x/server-dotnet/examples/mongo/get.md | 2 +- .../examples/mongo/list-backup-policies.md | 2 +- .../examples/mongo/list-backups.md | 2 +- .../examples/mongo/list-branches.md | 2 +- .../examples/mongo/list-operations.md | 2 +- .../examples/mongo/list-restorations.md | 2 +- .../examples/mongo/list-specifications.md | 2 +- .../server-dotnet/examples/mongo/list.md | 2 +- .../examples/mongo/update-backup-policy.md | 2 +- .../examples/mongo/update-backup-storage.md | 2 +- .../examples/mongo/update-credentials.md | 2 +- .../examples/mongo/update-maintenance.md | 2 +- .../server-dotnet/examples/mongo/update.md | 2 +- .../examples/mysql/create-backup-policy.md | 2 +- .../examples/mysql/create-backup.md | 2 +- .../examples/mysql/create-branch.md | 2 +- .../examples/mysql/create-execution.md | 2 +- .../examples/mysql/create-failover.md | 2 +- .../examples/mysql/create-migration.md | 2 +- .../examples/mysql/create-restoration.md | 2 +- .../examples/mysql/create-upgrade.md | 2 +- .../server-dotnet/examples/mysql/create.md | 2 +- .../examples/mysql/get-backup-policy.md | 2 +- .../examples/mysql/get-backup.md | 2 +- .../server-dotnet/examples/mysql/get-pitr.md | 2 +- .../examples/mysql/get-pooler.md | 2 +- .../examples/mysql/get-replicas.md | 2 +- .../examples/mysql/get-restoration.md | 2 +- .../examples/mysql/get-status.md | 2 +- .../2.3.x/server-dotnet/examples/mysql/get.md | 2 +- .../examples/mysql/list-backup-policies.md | 2 +- .../examples/mysql/list-backups.md | 2 +- .../examples/mysql/list-branches.md | 2 +- .../examples/mysql/list-operations.md | 2 +- .../examples/mysql/list-restorations.md | 2 +- .../examples/mysql/list-specifications.md | 2 +- .../server-dotnet/examples/mysql/list.md | 2 +- .../examples/mysql/update-backup-policy.md | 2 +- .../examples/mysql/update-backup-storage.md | 2 +- .../examples/mysql/update-credentials.md | 2 +- .../examples/mysql/update-maintenance.md | 2 +- .../examples/mysql/update-pooler.md | 2 +- .../server-dotnet/examples/mysql/update.md | 2 +- .../server-dotnet/examples/oauth2/approve.md | 2 +- .../examples/oauth2/authorize-post.md | 2 +- .../examples/oauth2/authorize.md | 2 +- .../oauth2/create-device-authorization.md | 2 +- .../examples/oauth2/create-grant.md | 2 +- .../examples/oauth2/create-par.md | 2 +- .../examples/oauth2/create-token.md | 2 +- .../examples/oauth2/get-grant.md | 2 +- .../examples/oauth2/introspect.md | 20 + .../examples/oauth2/list-organizations.md | 2 +- .../examples/oauth2/list-projects.md | 2 +- .../server-dotnet/examples/oauth2/reject.md | 2 +- .../server-dotnet/examples/oauth2/revoke.md | 2 +- .../create-ephemeral-project-key.md | 4 +- .../organization/create-installation.md | 2 +- .../organization/create-membership.md | 2 +- .../examples/organization/create-project.md | 2 +- .../examples/organization/get-installation.md | 2 +- .../examples/organization/get-membership.md | 2 +- .../examples/organization/get-project-key.md | 2 +- .../examples/organization/get-project.md | 2 +- .../examples/organization/get.md | 2 +- .../organization/list-installations.md | 2 +- .../examples/organization/list-memberships.md | 2 +- .../organization/list-project-keys.md | 2 +- .../examples/organization/list-projects.md | 2 +- .../organization/update-installation.md | 2 +- .../organization/update-membership.md | 2 +- .../organization/update-project-key.md | 4 +- .../examples/organization/update-project.md | 2 +- .../examples/organization/update.md | 2 +- .../postgresql/create-backup-policy.md | 2 +- .../examples/postgresql/create-backup.md | 2 +- .../examples/postgresql/create-branch.md | 2 +- .../examples/postgresql/create-execution.md | 2 +- .../examples/postgresql/create-extension.md | 2 +- .../examples/postgresql/create-failover.md | 2 +- .../examples/postgresql/create-migration.md | 2 +- .../examples/postgresql/create-restoration.md | 2 +- .../examples/postgresql/create-upgrade.md | 2 +- .../examples/postgresql/create.md | 2 +- .../examples/postgresql/get-backup-policy.md | 2 +- .../examples/postgresql/get-backup.md | 2 +- .../examples/postgresql/get-pitr.md | 2 +- .../examples/postgresql/get-pooler.md | 2 +- .../examples/postgresql/get-replicas.md | 2 +- .../examples/postgresql/get-restoration.md | 2 +- .../examples/postgresql/get-status.md | 2 +- .../server-dotnet/examples/postgresql/get.md | 2 +- .../postgresql/list-backup-policies.md | 2 +- .../examples/postgresql/list-backups.md | 2 +- .../examples/postgresql/list-branches.md | 2 +- .../examples/postgresql/list-extensions.md | 2 +- .../examples/postgresql/list-operations.md | 2 +- .../examples/postgresql/list-restorations.md | 2 +- .../postgresql/list-specifications.md | 2 +- .../server-dotnet/examples/postgresql/list.md | 2 +- .../postgresql/update-backup-policy.md | 2 +- .../postgresql/update-backup-storage.md | 2 +- .../examples/postgresql/update-credentials.md | 2 +- .../examples/postgresql/update-maintenance.md | 2 +- .../examples/postgresql/update-pooler.md | 2 +- .../examples/postgresql/update.md | 2 +- .../server-dotnet/examples/presences/get.md | 2 +- .../server-dotnet/examples/presences/list.md | 2 +- .../examples/presences/update.md | 2 +- .../examples/presences/upsert.md | 2 +- .../project/create-android-platform.md | 2 +- .../examples/project/create-apple-platform.md | 2 +- .../examples/project/create-ephemeral-key.md | 4 +- .../examples/project/create-linux-platform.md | 2 +- .../examples/project/create-mock-phone.md | 2 +- .../examples/project/create-smtp-test.md | 4 +- .../examples/project/create-variable.md | 2 +- .../examples/project/create-web-platform.md | 2 +- .../project/create-windows-platform.md | 2 +- .../examples/project/get-email-template.md | 2 +- .../server-dotnet/examples/project/get-key.md | 2 +- .../examples/project/get-mock-phone.md | 2 +- .../examples/project/get-variable.md | 2 +- .../server-dotnet/examples/project/get.md | 2 +- .../examples/project/list-email-templates.md | 2 +- .../examples/project/list-keys.md | 2 +- .../examples/project/list-mock-phones.md | 2 +- .../project/list-o-auth-2-providers.md | 2 +- .../examples/project/list-platforms.md | 2 +- .../examples/project/list-policies.md | 2 +- .../examples/project/list-variables.md | 2 +- .../project/update-android-platform.md | 2 +- .../examples/project/update-apple-platform.md | 2 +- .../examples/project/update-auth-method.md | 2 +- .../update-deny-aliased-email-policy.md | 2 +- .../update-deny-corporate-email-policy.md | 2 +- .../update-deny-disposable-email-policy.md | 2 +- .../project/update-deny-free-email-policy.md | 2 +- .../examples/project/update-email-template.md | 2 +- .../examples/project/update-key.md | 4 +- .../examples/project/update-labels.md | 4 +- .../examples/project/update-linux-platform.md | 2 +- .../update-membership-privacy-policy.md | 2 +- .../project/update-mfa-factors-policy.md | 2 +- .../examples/project/update-mock-phone.md | 2 +- .../project/update-o-auth-2-amazon.md | 2 +- .../examples/project/update-o-auth-2-apple.md | 2 +- .../project/update-o-auth-2-appwrite.md | 2 +- .../project/update-o-auth-2-auth-0.md | 4 +- .../project/update-o-auth-2-authentik.md | 2 +- .../project/update-o-auth-2-autodesk.md | 2 +- .../project/update-o-auth-2-bitbucket.md | 2 +- .../examples/project/update-o-auth-2-bitly.md | 2 +- .../examples/project/update-o-auth-2-box.md | 2 +- .../project/update-o-auth-2-cloudflare.md | 2 +- .../project/update-o-auth-2-dailymotion.md | 2 +- .../project/update-o-auth-2-discord.md | 4 +- .../project/update-o-auth-2-disqus.md | 2 +- .../project/update-o-auth-2-dropbox.md | 2 +- .../examples/project/update-o-auth-2-etsy.md | 2 +- .../project/update-o-auth-2-facebook.md | 2 +- .../examples/project/update-o-auth-2-figma.md | 2 +- .../project/update-o-auth-2-fusion-auth.md | 2 +- .../project/update-o-auth-2-git-hub.md | 4 +- .../project/update-o-auth-2-gitlab.md | 2 +- .../project/update-o-auth-2-google.md | 2 +- .../project/update-o-auth-2-hugging-face.md | 2 +- .../examples/project/update-o-auth-2-kakao.md | 4 +- .../project/update-o-auth-2-keycloak.md | 2 +- .../examples/project/update-o-auth-2-kick.md | 2 +- .../project/update-o-auth-2-linkedin.md | 2 +- .../project/update-o-auth-2-microsoft.md | 4 +- .../project/update-o-auth-2-notion.md | 2 +- .../examples/project/update-o-auth-2-oidc.md | 2 +- .../examples/project/update-o-auth-2-okta.md | 4 +- .../project/update-o-auth-2-paypal-sandbox.md | 2 +- .../project/update-o-auth-2-paypal.md | 2 +- .../examples/project/update-o-auth-2-podio.md | 2 +- .../project/update-o-auth-2-resend.md | 2 +- .../project/update-o-auth-2-salesforce.md | 4 +- .../project/update-o-auth-2-server.md | 2 +- .../examples/project/update-o-auth-2-slack.md | 2 +- .../project/update-o-auth-2-spotify.md | 2 +- .../project/update-o-auth-2-stripe.md | 2 +- .../project/update-o-auth-2-tik-tok.md | 2 +- .../update-o-auth-2-tradeshift-sandbox.md | 2 +- .../project/update-o-auth-2-tradeshift.md | 2 +- .../project/update-o-auth-2-twitch.md | 2 +- .../project/update-o-auth-2-webflow.md | 19 + .../project/update-o-auth-2-word-press.md | 2 +- .../examples/project/update-o-auth-2-yahoo.md | 2 +- .../project/update-o-auth-2-yandex.md | 2 +- .../examples/project/update-o-auth-2-zoho.md | 4 +- .../examples/project/update-o-auth-2-zoom.md | 2 +- .../examples/project/update-o-auth-2x.md | 2 +- .../update-password-dictionary-policy.md | 2 +- .../project/update-password-history-policy.md | 2 +- .../update-password-personal-data-policy.md | 2 +- .../project/update-password-pwned-policy.md | 2 +- .../update-password-strength-policy.md | 2 +- .../examples/project/update-protocol.md | 2 +- .../examples/project/update-service.md | 2 +- .../project/update-session-alert-policy.md | 2 +- .../project/update-session-duration-policy.md | 2 +- .../update-session-invalidation-policy.md | 2 +- .../project/update-session-limit-policy.md | 2 +- .../examples/project/update-smtp.md | 2 +- .../project/update-user-limit-policy.md | 2 +- .../examples/project/update-variable.md | 2 +- .../examples/project/update-web-platform.md | 2 +- .../project/update-windows-platform.md | 2 +- .../examples/proxy/create-api-rule.md | 2 +- .../examples/proxy/create-function-rule.md | 2 +- .../examples/proxy/create-invalidation.md | 2 +- .../examples/proxy/create-redirect-rule.md | 2 +- .../examples/proxy/create-site-rule.md | 2 +- .../server-dotnet/examples/proxy/get-rule.md | 2 +- .../examples/proxy/list-rules.md | 2 +- .../examples/proxy/update-rule-status.md | 2 +- .../examples/sites/create-deployment.md | 2 +- .../sites/create-duplicate-deployment.md | 2 +- .../sites/create-template-deployment.md | 2 +- .../examples/sites/create-variable.md | 2 +- .../examples/sites/create-vcs-deployment.md | 2 +- .../server-dotnet/examples/sites/create.md | 2 +- .../examples/sites/get-deployment.md | 2 +- .../server-dotnet/examples/sites/get-log.md | 2 +- .../examples/sites/get-variable.md | 2 +- .../2.3.x/server-dotnet/examples/sites/get.md | 2 +- .../examples/sites/list-deployments.md | 2 +- .../examples/sites/list-frameworks.md | 5 +- .../server-dotnet/examples/sites/list-logs.md | 2 +- .../examples/sites/list-specifications.md | 5 +- .../examples/sites/list-variables.md | 2 +- .../server-dotnet/examples/sites/list.md | 2 +- .../sites/update-deployment-status.md | 2 +- .../examples/sites/update-site-deployment.md | 2 +- .../examples/sites/update-variable.md | 2 +- .../server-dotnet/examples/sites/update.md | 2 +- .../examples/storage/create-bucket.md | 2 +- .../examples/storage/create-file.md | 2 +- .../examples/storage/get-bucket.md | 2 +- .../examples/storage/get-file.md | 2 +- .../examples/storage/list-buckets.md | 2 +- .../examples/storage/list-files.md | 2 +- .../examples/storage/update-bucket.md | 2 +- .../examples/storage/update-file.md | 2 +- .../tablesdb/create-big-int-column.md | 2 +- .../tablesdb/create-boolean-column.md | 2 +- .../examples/tablesdb/create-cutover.md | 2 +- .../tablesdb/create-datetime-column.md | 2 +- .../examples/tablesdb/create-email-column.md | 2 +- .../examples/tablesdb/create-enum-column.md | 2 +- .../examples/tablesdb/create-failover.md | 2 +- .../examples/tablesdb/create-float-column.md | 2 +- .../examples/tablesdb/create-index.md | 4 +- .../tablesdb/create-integer-column.md | 2 +- .../examples/tablesdb/create-ip-column.md | 2 +- .../examples/tablesdb/create-line-column.md | 2 +- .../tablesdb/create-longtext-column.md | 2 +- .../tablesdb/create-mediumtext-column.md | 2 +- .../examples/tablesdb/create-migration.md | 2 +- .../examples/tablesdb/create-operations.md | 2 +- .../examples/tablesdb/create-point-column.md | 2 +- .../tablesdb/create-polygon-column.md | 2 +- .../tablesdb/create-relationship-column.md | 2 +- .../examples/tablesdb/create-row.md | 2 +- .../examples/tablesdb/create-rows.md | 13 +- .../examples/tablesdb/create-string-column.md | 2 +- .../examples/tablesdb/create-table.md | 2 +- .../examples/tablesdb/create-text-column.md | 2 +- .../examples/tablesdb/create-transaction.md | 2 +- .../examples/tablesdb/create-url-column.md | 2 +- .../tablesdb/create-varchar-column.md | 2 +- .../server-dotnet/examples/tablesdb/create.md | 2 +- .../examples/tablesdb/decrement-row-column.md | 2 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/get-index.md | 2 +- .../examples/tablesdb/get-migration.md | 2 +- .../examples/tablesdb/get-replicas.md | 2 +- .../examples/tablesdb/get-row.md | 2 +- .../examples/tablesdb/get-status.md | 2 +- .../examples/tablesdb/get-table.md | 2 +- .../examples/tablesdb/get-transaction.md | 2 +- .../server-dotnet/examples/tablesdb/get.md | 2 +- .../examples/tablesdb/increment-row-column.md | 2 +- .../examples/tablesdb/list-columns.md | 2 +- .../examples/tablesdb/list-indexes.md | 2 +- .../examples/tablesdb/list-migrations.md | 2 +- .../examples/tablesdb/list-operations.md | 2 +- .../examples/tablesdb/list-rows.md | 2 +- .../examples/tablesdb/list-specifications.md | 2 +- .../examples/tablesdb/list-tables.md | 2 +- .../examples/tablesdb/list-transactions.md | 5 +- .../server-dotnet/examples/tablesdb/list.md | 2 +- .../tablesdb/update-big-int-column.md | 2 +- .../tablesdb/update-boolean-column.md | 2 +- .../tablesdb/update-datetime-column.md | 2 +- .../examples/tablesdb/update-email-column.md | 2 +- .../examples/tablesdb/update-enum-column.md | 2 +- .../examples/tablesdb/update-float-column.md | 2 +- .../tablesdb/update-integer-column.md | 2 +- .../examples/tablesdb/update-ip-column.md | 2 +- .../examples/tablesdb/update-line-column.md | 2 +- .../tablesdb/update-longtext-column.md | 2 +- .../tablesdb/update-mediumtext-column.md | 2 +- .../examples/tablesdb/update-point-column.md | 2 +- .../tablesdb/update-polygon-column.md | 2 +- .../tablesdb/update-relationship-column.md | 2 +- .../examples/tablesdb/update-row.md | 2 +- .../examples/tablesdb/update-rows.md | 2 +- .../examples/tablesdb/update-string-column.md | 2 +- .../examples/tablesdb/update-table.md | 2 +- .../examples/tablesdb/update-text-column.md | 2 +- .../examples/tablesdb/update-transaction.md | 2 +- .../examples/tablesdb/update-url-column.md | 2 +- .../tablesdb/update-varchar-column.md | 2 +- .../server-dotnet/examples/tablesdb/update.md | 2 +- .../examples/tablesdb/upsert-row.md | 2 +- .../examples/tablesdb/upsert-rows.md | 13 +- .../examples/teams/create-installation.md | 2 +- .../examples/teams/create-membership.md | 4 +- .../server-dotnet/examples/teams/create.md | 2 +- .../examples/teams/get-installation.md | 2 +- .../examples/teams/get-membership.md | 2 +- .../server-dotnet/examples/teams/get-prefs.md | 2 +- .../2.3.x/server-dotnet/examples/teams/get.md | 2 +- .../examples/teams/list-installations.md | 2 +- .../examples/teams/list-memberships.md | 2 +- .../server-dotnet/examples/teams/list.md | 2 +- .../examples/teams/update-installation.md | 2 +- .../teams/update-membership-status.md | 2 +- .../examples/teams/update-membership.md | 4 +- .../examples/teams/update-name.md | 2 +- .../examples/teams/update-prefs.md | 2 +- .../examples/tokens/create-file-token.md | 2 +- .../server-dotnet/examples/tokens/get.md | 2 +- .../server-dotnet/examples/tokens/list.md | 2 +- .../server-dotnet/examples/tokens/update.md | 2 +- .../examples/users/create-argon-2-user.md | 2 +- .../examples/users/create-bcrypt-user.md | 2 +- .../examples/users/create-jwt.md | 2 +- .../examples/users/create-md-5-user.md | 2 +- .../users/create-mfa-recovery-codes.md | 2 +- .../examples/users/create-ph-pass-user.md | 2 +- .../users/create-scrypt-modified-user.md | 2 +- .../examples/users/create-scrypt-user.md | 2 +- .../examples/users/create-session.md | 2 +- .../examples/users/create-sha-user.md | 2 +- .../examples/users/create-target.md | 2 +- .../examples/users/create-token.md | 2 +- .../server-dotnet/examples/users/create.md | 2 +- .../examples/users/get-mfa-challenge.md | 2 +- .../examples/users/get-mfa-recovery-codes.md | 2 +- .../server-dotnet/examples/users/get-prefs.md | 2 +- .../examples/users/get-target.md | 2 +- .../2.3.x/server-dotnet/examples/users/get.md | 2 +- .../examples/users/list-identities.md | 2 +- .../examples/users/list-memberships.md | 2 +- .../examples/users/list-mfa-factors.md | 2 +- .../examples/users/list-sessions.md | 2 +- .../examples/users/list-targets.md | 2 +- .../server-dotnet/examples/users/list.md | 2 +- .../users/update-email-verification.md | 2 +- .../examples/users/update-email.md | 2 +- .../examples/users/update-impersonator.md | 2 +- .../examples/users/update-labels.md | 4 +- .../users/update-mfa-recovery-codes.md | 2 +- .../examples/users/update-mfa.md | 2 +- .../examples/users/update-name.md | 2 +- .../examples/users/update-password.md | 2 +- .../users/update-phone-verification.md | 2 +- .../examples/users/update-phone.md | 2 +- .../examples/users/update-prefs.md | 2 +- .../examples/users/update-status.md | 2 +- .../examples/users/update-target.md | 2 +- .../examples/vectorsdb/create-collection.md | 4 +- .../examples/vectorsdb/create-document.md | 2 +- .../examples/vectorsdb/create-documents.md | 17 +- .../examples/vectorsdb/create-failover.md | 2 +- .../examples/vectorsdb/create-index.md | 4 +- .../examples/vectorsdb/create-operations.md | 12 +- .../examples/vectorsdb/create-query.md | 2 +- .../examples/vectorsdb/create-transaction.md | 2 +- .../examples/vectorsdb/create.md | 2 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/get-collection.md | 2 +- .../examples/vectorsdb/get-document.md | 2 +- .../examples/vectorsdb/get-index.md | 2 +- .../examples/vectorsdb/get-replicas.md | 2 +- .../examples/vectorsdb/get-status.md | 2 +- .../examples/vectorsdb/get-transaction.md | 2 +- .../server-dotnet/examples/vectorsdb/get.md | 2 +- .../examples/vectorsdb/list-collections.md | 2 +- .../examples/vectorsdb/list-documents.md | 2 +- .../examples/vectorsdb/list-indexes.md | 2 +- .../examples/vectorsdb/list-operations.md | 2 +- .../examples/vectorsdb/list-specifications.md | 2 +- .../examples/vectorsdb/list-transactions.md | 5 +- .../server-dotnet/examples/vectorsdb/list.md | 2 +- .../examples/vectorsdb/update-collection.md | 4 +- .../examples/vectorsdb/update-document.md | 2 +- .../examples/vectorsdb/update-documents.md | 2 +- .../examples/vectorsdb/update-transaction.md | 2 +- .../examples/vectorsdb/update.md | 2 +- .../examples/vectorsdb/upsert-document.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 17 +- .../server-dotnet/examples/webhooks/create.md | 4 +- .../server-dotnet/examples/webhooks/get.md | 2 +- .../server-dotnet/examples/webhooks/list.md | 2 +- .../examples/webhooks/update-secret.md | 2 +- .../server-dotnet/examples/webhooks/update.md | 4 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 37 + .../examples/analytics/create-property.md | 31 + .../examples/analytics/delete-property.md | 25 + .../examples/analytics/get-property.md | 25 + .../examples/analytics/list-metrics.md | 32 + .../examples/analytics/list-properties.md | 27 + .../examples/analytics/update-property.md | 31 + .../examples/avatars/delete-photo.md | 23 + .../examples/avatars/get-screenshot.md | 2 +- .../examples/avatars/update-photo.md | 26 + .../examples/databases/create-documents.md | 2 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 1 + .../examples/databases/upsert-documents.md | 2 +- .../examples/documentsdb/create-documents.md | 2 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/documentsdb/upsert-documents.md | 2 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 1 + .../server-go/examples/graphql/mutation.md | 2 +- .../2.3.x/server-go/examples/graphql/query.md | 2 +- .../server-go/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 1 + .../examples/messaging/update-email.md | 10 +- .../examples/messaging/update-push.md | 5 +- .../examples/messaging/update-sms.md | 2 +- .../server-go/examples/oauth2/introspect.md | 28 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../server-go/examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 1 + .../project/update-o-auth-2-discord.md | 1 + .../project/update-o-auth-2-git-hub.md | 1 + .../examples/project/update-o-auth-2-kakao.md | 1 + .../project/update-o-auth-2-microsoft.md | 1 + .../examples/project/update-o-auth-2-okta.md | 1 + .../project/update-o-auth-2-salesforce.md | 1 + .../project/update-o-auth-2-webflow.md | 27 + .../examples/project/update-o-auth-2-zoho.md | 1 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 1 + .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 2 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 1 + .../examples/tablesdb/upsert-rows.md | 2 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../server-go/examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 2 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 2 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 1 + .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 2 +- .../server-go/examples/webhooks/create.md | 2 +- .../server-go/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 21 + .../examples/analytics/create-property.md | 24 + .../examples/analytics/delete-property.md | 9 + .../examples/analytics/get-property.md | 18 + .../examples/analytics/list-metrics.md | 30 + .../examples/analytics/list-properties.md | 23 + .../examples/analytics/update-property.md | 24 + .../examples/avatars/delete-photo.md | 7 + .../examples/avatars/get-screenshot.md | 2 +- .../examples/avatars/update-photo.md | 26 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../examples/oauth2/introspect.md | 23 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/get-o-auth-2-provider.md | 1 + .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-oidc.md | 2 +- .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 14 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../examples/webhooks/create.md | 2 +- .../examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 1 + .../java/account/create-id-token-session.md | 2 +- .../java/account/delete-sessions.md | 18 +- .../java/account/list-sessions.md | 18 +- .../java/analytics/create-event.md | 37 + .../java/analytics/create-property.md | 31 + .../java/analytics/delete-property.md | 25 + .../java/analytics/get-property.md | 25 + .../java/analytics/list-metrics.md | 34 + .../java/analytics/list-properties.md | 27 + .../java/analytics/update-property.md | 31 + .../java/avatars/delete-photo.md | 21 + .../server-kotlin/java/avatars/get-browser.md | 6 +- .../java/avatars/get-credit-card.md | 6 +- .../server-kotlin/java/avatars/get-flag.md | 6 +- .../server-kotlin/java/avatars/get-image.md | 4 +- .../java/avatars/get-initials.md | 4 +- .../server-kotlin/java/avatars/get-photo.md | 6 +- .../server-kotlin/java/avatars/get-qr.md | 4 +- .../java/avatars/get-screenshot.md | 19 +- .../java/avatars/update-photo.md | 26 + .../java/backups/create-policy.md | 2 +- .../java/backups/update-policy.md | 2 +- .../databases/create-big-int-attribute.md | 6 +- .../java/databases/create-documents.md | 9 +- .../java/databases/create-float-attribute.md | 4 +- .../java/databases/create-index.md | 2 +- .../databases/create-integer-attribute.md | 6 +- .../java/databases/create-string-attribute.md | 2 +- .../java/databases/create-transaction.md | 2 +- .../databases/create-varchar-attribute.md | 2 +- .../databases/decrement-document-attribute.md | 4 +- .../java/databases/delete-documents.md | 2 +- .../databases/increment-document-attribute.md | 4 +- .../java/databases/list-documents.md | 2 +- .../java/databases/list-transactions.md | 1 + .../databases/update-big-int-attribute.md | 6 +- .../java/databases/update-float-attribute.md | 4 +- .../databases/update-integer-attribute.md | 6 +- .../java/databases/update-string-attribute.md | 2 +- .../databases/update-varchar-attribute.md | 2 +- .../java/databases/upsert-documents.md | 9 +- .../java/documentsdb/create-documents.md | 9 +- .../java/documentsdb/create-index.md | 2 +- .../java/documentsdb/create-transaction.md | 2 +- .../server-kotlin/java/documentsdb/create.md | 2 +- .../decrement-document-attribute.md | 4 +- .../java/documentsdb/delete-documents.md | 2 +- .../increment-document-attribute.md | 4 +- .../java/documentsdb/list-documents.md | 2 +- .../java/documentsdb/list-operations.md | 4 +- .../java/documentsdb/list-transactions.md | 1 + .../server-kotlin/java/documentsdb/update.md | 2 +- .../java/documentsdb/upsert-documents.md | 9 +- .../java/domains/create-record-a.md | 2 +- .../java/domains/create-record-aaaa.md | 2 +- .../java/domains/create-record-alias.md | 2 +- .../java/domains/create-record-caa.md | 2 +- .../java/domains/create-record-cname.md | 2 +- .../java/domains/create-record-https.md | 2 +- .../java/domains/create-record-mx.md | 4 +- .../java/domains/create-record-ns.md | 2 +- .../java/domains/create-record-srv.md | 8 +- .../java/domains/create-record-txt.md | 2 +- .../server-kotlin/java/domains/get-price.md | 2 +- .../server-kotlin/java/domains/list-prices.md | 2 +- .../java/domains/update-record-a.md | 2 +- .../java/domains/update-record-aaaa.md | 2 +- .../java/domains/update-record-alias.md | 2 +- .../java/domains/update-record-caa.md | 2 +- .../java/domains/update-record-cname.md | 2 +- .../java/domains/update-record-https.md | 2 +- .../java/domains/update-record-mx.md | 4 +- .../java/domains/update-record-ns.md | 2 +- .../java/domains/update-record-srv.md | 8 +- .../java/domains/update-record-txt.md | 2 +- .../java/embeddings/create-text-embeddings.md | 2 +- .../server-kotlin/java/functions/create.md | 4 +- .../java/functions/list-runtimes.md | 18 +- .../java/functions/list-specifications.md | 1 + .../server-kotlin/java/functions/update.md | 4 +- .../server-kotlin/java/graphql/mutation.md | 4 +- .../2.3.x/server-kotlin/java/graphql/query.md | 4 +- .../server-kotlin/java/locale/list-codes.md | 18 +- .../java/locale/list-continents.md | 18 +- .../java/locale/list-countries-eu.md | 18 +- .../java/locale/list-countries-phones.md | 18 +- .../java/locale/list-countries.md | 18 +- .../java/locale/list-currencies.md | 18 +- .../java/locale/list-languages.md | 18 +- .../messaging/create-appwrite-provider.md | 4 +- .../java/messaging/create-push.md | 3 +- .../java/messaging/create-smtp-provider.md | 2 +- .../java/messaging/create-topic.md | 4 +- .../messaging/update-appwrite-provider.md | 4 +- .../java/messaging/update-email.md | 10 +- .../java/messaging/update-push.md | 7 +- .../java/messaging/update-sms.md | 2 +- .../java/messaging/update-smtp-provider.md | 2 +- .../java/messaging/update-topic.md | 4 +- .../java/mongo/create-backup-policy.md | 2 +- .../server-kotlin/java/mongo/create-branch.md | 2 +- .../2.3.x/server-kotlin/java/mongo/create.md | 12 +- .../java/mongo/list-operations.md | 4 +- .../java/mongo/list-restorations.md | 4 +- .../java/mongo/update-backup-policy.md | 2 +- .../java/mongo/update-maintenance.md | 2 +- .../2.3.x/server-kotlin/java/mongo/update.md | 22 +- .../java/mysql/create-backup-policy.md | 2 +- .../server-kotlin/java/mysql/create-branch.md | 2 +- .../java/mysql/create-execution.md | 2 +- .../2.3.x/server-kotlin/java/mysql/create.md | 12 +- .../java/mysql/list-operations.md | 4 +- .../java/mysql/list-restorations.md | 4 +- .../java/mysql/update-backup-policy.md | 2 +- .../java/mysql/update-maintenance.md | 2 +- .../server-kotlin/java/mysql/update-pooler.md | 4 +- .../2.3.x/server-kotlin/java/mysql/update.md | 22 +- .../java/oauth2/authorize-post.md | 2 +- .../server-kotlin/java/oauth2/authorize.md | 2 +- .../server-kotlin/java/oauth2/create-par.md | 2 +- .../server-kotlin/java/oauth2/introspect.md | 28 + .../java/oauth2/list-organizations.md | 4 +- .../java/oauth2/list-projects.md | 4 +- .../create-ephemeral-project-key.md | 4 +- .../java/organization/update-project-key.md | 2 +- .../java/postgresql/create-backup-policy.md | 2 +- .../java/postgresql/create-branch.md | 2 +- .../java/postgresql/create-execution.md | 2 +- .../server-kotlin/java/postgresql/create.md | 12 +- .../java/postgresql/list-operations.md | 4 +- .../java/postgresql/list-restorations.md | 4 +- .../java/postgresql/update-backup-policy.md | 2 +- .../java/postgresql/update-maintenance.md | 2 +- .../java/postgresql/update-pooler.md | 4 +- .../server-kotlin/java/postgresql/update.md | 22 +- .../server-kotlin/java/presences/list.md | 2 +- .../java/project/create-ephemeral-key.md | 4 +- .../java/project/create-smtp-test.md | 2 +- .../server-kotlin/java/project/update-key.md | 2 +- .../java/project/update-labels.md | 2 +- .../java/project/update-o-auth-2-auth-0.md | 2 + .../java/project/update-o-auth-2-discord.md | 2 + .../java/project/update-o-auth-2-git-hub.md | 2 + .../java/project/update-o-auth-2-kakao.md | 2 + .../java/project/update-o-auth-2-microsoft.md | 2 + .../java/project/update-o-auth-2-oidc.md | 2 +- .../java/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../java/project/update-o-auth-2-server.md | 14 +- .../java/project/update-o-auth-2-webflow.md | 27 + .../java/project/update-o-auth-2-zoho.md | 2 + .../project/update-password-history-policy.md | 2 +- .../update-password-strength-policy.md | 2 +- .../project/update-session-duration-policy.md | 2 +- .../project/update-session-limit-policy.md | 2 +- .../server-kotlin/java/project/update-smtp.md | 2 +- .../java/project/update-user-limit-policy.md | 2 +- .../2.3.x/server-kotlin/java/sites/create.md | 4 +- .../java/sites/list-frameworks.md | 18 +- .../java/sites/list-specifications.md | 1 + .../2.3.x/server-kotlin/java/sites/update.md | 4 +- .../java/storage/create-bucket.md | 2 +- .../java/storage/get-file-preview.md | 14 +- .../java/storage/update-bucket.md | 2 +- .../java/tablesdb/create-big-int-column.md | 6 +- .../java/tablesdb/create-float-column.md | 4 +- .../java/tablesdb/create-index.md | 2 +- .../java/tablesdb/create-integer-column.md | 6 +- .../java/tablesdb/create-rows.md | 9 +- .../java/tablesdb/create-string-column.md | 2 +- .../java/tablesdb/create-transaction.md | 2 +- .../java/tablesdb/create-varchar-column.md | 2 +- .../server-kotlin/java/tablesdb/create.md | 2 +- .../java/tablesdb/decrement-row-column.md | 4 +- .../java/tablesdb/delete-rows.md | 2 +- .../java/tablesdb/increment-row-column.md | 4 +- .../java/tablesdb/list-operations.md | 4 +- .../server-kotlin/java/tablesdb/list-rows.md | 2 +- .../java/tablesdb/list-transactions.md | 1 + .../java/tablesdb/update-big-int-column.md | 6 +- .../java/tablesdb/update-float-column.md | 4 +- .../java/tablesdb/update-integer-column.md | 6 +- .../java/tablesdb/update-string-column.md | 2 +- .../java/tablesdb/update-varchar-column.md | 2 +- .../server-kotlin/java/tablesdb/update.md | 2 +- .../java/tablesdb/upsert-rows.md | 9 +- .../java/teams/create-membership.md | 2 +- .../java/teams/update-membership.md | 2 +- .../server-kotlin/java/users/create-jwt.md | 2 +- .../java/users/create-scrypt-user.md | 8 +- .../server-kotlin/java/users/create-token.md | 4 +- .../server-kotlin/java/users/update-labels.md | 2 +- .../java/vectorsdb/create-collection.md | 2 +- .../java/vectorsdb/create-documents.md | 8 +- .../java/vectorsdb/create-index.md | 2 +- .../java/vectorsdb/create-operations.md | 5 +- .../java/vectorsdb/create-query.md | 2 +- .../java/vectorsdb/create-transaction.md | 2 +- .../server-kotlin/java/vectorsdb/create.md | 2 +- .../java/vectorsdb/delete-documents.md | 2 +- .../java/vectorsdb/list-documents.md | 2 +- .../java/vectorsdb/list-operations.md | 4 +- .../java/vectorsdb/list-transactions.md | 1 + .../java/vectorsdb/update-collection.md | 2 +- .../server-kotlin/java/vectorsdb/update.md | 2 +- .../java/vectorsdb/upsert-documents.md | 8 +- .../server-kotlin/java/webhooks/create.md | 2 +- .../server-kotlin/java/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../kotlin/account/delete-sessions.md | 4 +- .../kotlin/account/list-sessions.md | 4 +- .../kotlin/analytics/create-event.md | 28 + .../kotlin/analytics/create-property.md | 22 + .../kotlin/analytics/delete-property.md | 16 + .../kotlin/analytics/get-property.md | 16 + .../kotlin/analytics/list-metrics.md | 25 + .../kotlin/analytics/list-properties.md | 18 + .../kotlin/analytics/update-property.md | 22 + .../kotlin/avatars/delete-photo.md | 14 + .../kotlin/avatars/get-screenshot.md | 7 +- .../kotlin/avatars/update-photo.md | 17 + .../kotlin/databases/create-documents.md | 9 +- .../databases/create-float-attribute.md | 4 +- .../kotlin/databases/create-index.md | 2 +- .../databases/decrement-document-attribute.md | 4 +- .../kotlin/databases/delete-documents.md | 2 +- .../databases/increment-document-attribute.md | 4 +- .../kotlin/databases/list-transactions.md | 3 +- .../databases/update-float-attribute.md | 4 +- .../kotlin/databases/upsert-documents.md | 9 +- .../kotlin/documentsdb/create-documents.md | 9 +- .../kotlin/documentsdb/create-index.md | 2 +- .../decrement-document-attribute.md | 4 +- .../kotlin/documentsdb/delete-documents.md | 2 +- .../increment-document-attribute.md | 4 +- .../kotlin/documentsdb/list-transactions.md | 3 +- .../kotlin/documentsdb/upsert-documents.md | 9 +- .../embeddings/create-text-embeddings.md | 2 +- .../kotlin/functions/list-runtimes.md | 4 +- .../kotlin/functions/list-specifications.md | 3 +- .../server-kotlin/kotlin/graphql/mutation.md | 4 +- .../server-kotlin/kotlin/graphql/query.md | 4 +- .../server-kotlin/kotlin/locale/list-codes.md | 4 +- .../kotlin/locale/list-continents.md | 4 +- .../kotlin/locale/list-countries-eu.md | 4 +- .../kotlin/locale/list-countries-phones.md | 4 +- .../kotlin/locale/list-countries.md | 4 +- .../kotlin/locale/list-currencies.md | 4 +- .../kotlin/locale/list-languages.md | 4 +- .../kotlin/messaging/create-push.md | 3 +- .../kotlin/messaging/update-email.md | 12 +- .../kotlin/messaging/update-push.md | 7 +- .../kotlin/messaging/update-sms.md | 2 +- .../server-kotlin/kotlin/mongo/update.md | 2 +- .../server-kotlin/kotlin/mysql/update.md | 2 +- .../server-kotlin/kotlin/oauth2/approve.md | 4 +- .../kotlin/oauth2/authorize-post.md | 16 +- .../server-kotlin/kotlin/oauth2/authorize.md | 16 +- .../oauth2/create-device-authorization.md | 4 +- .../kotlin/oauth2/create-grant.md | 2 +- .../server-kotlin/kotlin/oauth2/create-par.md | 14 +- .../kotlin/oauth2/create-token.md | 14 +- .../server-kotlin/kotlin/oauth2/get-grant.md | 2 +- .../server-kotlin/kotlin/oauth2/introspect.md | 19 + .../server-kotlin/kotlin/oauth2/reject.md | 2 +- .../server-kotlin/kotlin/oauth2/revoke.md | 6 +- .../create-ephemeral-project-key.md | 2 +- .../kotlin/organization/update-project-key.md | 2 +- .../server-kotlin/kotlin/postgresql/update.md | 2 +- .../kotlin/project/create-ephemeral-key.md | 2 +- .../kotlin/project/create-smtp-test.md | 2 +- .../kotlin/project/update-key.md | 2 +- .../kotlin/project/update-labels.md | 2 +- .../kotlin/project/update-o-auth-2-auth-0.md | 2 + .../kotlin/project/update-o-auth-2-discord.md | 2 + .../kotlin/project/update-o-auth-2-git-hub.md | 2 + .../kotlin/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../kotlin/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../kotlin/project/update-o-auth-2-webflow.md | 18 + .../kotlin/project/update-o-auth-2-zoho.md | 2 + .../kotlin/sites/list-frameworks.md | 4 +- .../kotlin/sites/list-specifications.md | 3 +- .../kotlin/storage/get-file-preview.md | 2 +- .../kotlin/tablesdb/create-float-column.md | 4 +- .../kotlin/tablesdb/create-index.md | 2 +- .../kotlin/tablesdb/create-rows.md | 9 +- .../kotlin/tablesdb/decrement-row-column.md | 4 +- .../kotlin/tablesdb/delete-rows.md | 2 +- .../kotlin/tablesdb/increment-row-column.md | 4 +- .../kotlin/tablesdb/list-transactions.md | 3 +- .../kotlin/tablesdb/update-float-column.md | 4 +- .../kotlin/tablesdb/upsert-rows.md | 9 +- .../kotlin/teams/create-membership.md | 2 +- .../kotlin/teams/update-membership.md | 2 +- .../kotlin/users/update-labels.md | 2 +- .../kotlin/vectorsdb/create-collection.md | 2 +- .../kotlin/vectorsdb/create-documents.md | 8 +- .../kotlin/vectorsdb/create-index.md | 2 +- .../kotlin/vectorsdb/create-operations.md | 5 +- .../kotlin/vectorsdb/delete-documents.md | 2 +- .../kotlin/vectorsdb/list-transactions.md | 3 +- .../kotlin/vectorsdb/update-collection.md | 2 +- .../kotlin/vectorsdb/upsert-documents.md | 8 +- .../server-kotlin/kotlin/webhooks/create.md | 2 +- .../server-kotlin/kotlin/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 1 + .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 26 + .../examples/analytics/create-property.md | 20 + .../examples/analytics/delete-property.md | 14 + .../examples/analytics/get-property.md | 14 + .../examples/analytics/list-metrics.md | 21 + .../examples/analytics/list-properties.md | 16 + .../examples/analytics/update-property.md | 20 + .../examples/avatars/delete-photo.md | 12 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 15 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 4 +- .../examples/databases/list-transactions.md | 1 + .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 4 +- .../examples/documentsdb/list-transactions.md | 1 + .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 5 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 1 + .../examples/graphql/mutation.md | 4 +- .../server-nodejs/examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 1 + .../examples/messaging/update-email.md | 10 +- .../examples/messaging/update-push.md | 5 +- .../examples/messaging/update-sms.md | 2 +- .../examples/oauth2/introspect.md | 17 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 1 + .../project/update-o-auth-2-discord.md | 1 + .../project/update-o-auth-2-git-hub.md | 1 + .../examples/project/update-o-auth-2-kakao.md | 1 + .../project/update-o-auth-2-microsoft.md | 1 + .../examples/project/update-o-auth-2-okta.md | 1 + .../project/update-o-auth-2-salesforce.md | 1 + .../project/update-o-auth-2-webflow.md | 16 + .../examples/project/update-o-auth-2-zoho.md | 1 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 1 + .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 1 + .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 10 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 5 +- .../examples/vectorsdb/delete-documents.md | 4 +- .../examples/vectorsdb/list-transactions.md | 1 + .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 10 +- .../server-nodejs/examples/webhooks/create.md | 2 +- .../server-nodejs/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 29 + .../examples/analytics/create-property.md | 23 + .../examples/analytics/delete-property.md | 17 + .../examples/analytics/get-property.md | 17 + .../examples/analytics/list-metrics.md | 26 + .../examples/analytics/list-properties.md | 19 + .../examples/analytics/update-property.md | 23 + .../examples/avatars/delete-photo.md | 15 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 18 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../server-php/examples/graphql/mutation.md | 4 +- .../server-php/examples/graphql/query.md | 4 +- .../server-php/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../server-php/examples/oauth2/introspect.md | 20 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../server-php/examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 19 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-php/examples/webhooks/create.md | 2 +- .../server-php/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 27 + .../examples/analytics/create-property.md | 24 + .../examples/analytics/delete-property.md | 15 + .../examples/analytics/get-property.md | 18 + .../examples/analytics/list-metrics.md | 27 + .../examples/analytics/list-properties.md | 20 + .../examples/analytics/update-property.md | 24 + .../examples/avatars/delete-photo.md | 13 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 19 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/get-attribute.md | 10 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../examples/graphql/mutation.md | 4 +- .../server-python/examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../examples/oauth2/introspect.md | 21 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/get-o-auth-2-provider.md | 3 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 20 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/get-column.md | 10 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-python/examples/webhooks/create.md | 2 +- .../server-python/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/analytics/create-event.md | 23 + .../examples/analytics/create-property.md | 18 + .../examples/analytics/delete-property.md | 9 + .../examples/analytics/get-property.md | 7 + .../examples/analytics/list-metrics.md | 7 + .../examples/analytics/list-properties.md | 7 + .../examples/analytics/update-property.md | 17 + .../examples/avatars/delete-photo.md | 9 + .../examples/avatars/update-photo.md | 16 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../server-rest/examples/graphql/mutation.md | 4 +- .../server-rest/examples/graphql/query.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../server-rest/examples/oauth2/introspect.md | 14 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 1 + .../project/update-o-auth-2-discord.md | 1 + .../project/update-o-auth-2-git-hub.md | 1 + .../examples/project/update-o-auth-2-kakao.md | 1 + .../project/update-o-auth-2-microsoft.md | 1 + .../examples/project/update-o-auth-2-okta.md | 1 + .../project/update-o-auth-2-salesforce.md | 1 + .../project/update-o-auth-2-webflow.md | 14 + .../examples/project/update-o-auth-2-zoho.md | 1 + .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-rest/examples/webhooks/create.md | 2 +- .../server-rest/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 28 + .../examples/analytics/create-property.md | 22 + .../examples/analytics/delete-property.md | 16 + .../examples/analytics/get-property.md | 16 + .../examples/analytics/list-metrics.md | 24 + .../examples/analytics/list-properties.md | 18 + .../examples/analytics/update-property.md | 22 + .../examples/avatars/delete-photo.md | 14 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 16 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../server-ruby/examples/graphql/mutation.md | 4 +- .../server-ruby/examples/graphql/query.md | 4 +- .../server-ruby/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../server-ruby/examples/oauth2/introspect.md | 19 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 18 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-ruby/examples/webhooks/create.md | 2 +- .../server-ruby/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 34 + .../examples/analytics/create-property.md | 28 + .../examples/analytics/delete-property.md | 20 + .../examples/analytics/get-property.md | 22 + .../examples/analytics/list-metrics.md | 29 + .../examples/analytics/list-properties.md | 24 + .../examples/analytics/update-property.md | 28 + .../examples/avatars/delete-photo.md | 18 + .../examples/avatars/update-photo.md | 25 + .../examples/databases/create-documents.md | 2 +- .../examples/databases/create-index.md | 2 +- .../examples/databases/delete-documents.md | 2 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 2 +- .../examples/documentsdb/create-documents.md | 2 +- .../examples/documentsdb/create-index.md | 2 +- .../examples/documentsdb/delete-documents.md | 2 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 2 +- .../embeddings/create-text-embeddings.md | 2 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../server-rust/examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../server-rust/examples/oauth2/introspect.md | 25 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 2 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 2 +- .../project/update-o-auth-2-auth-0.md | 1 + .../project/update-o-auth-2-discord.md | 1 + .../project/update-o-auth-2-git-hub.md | 1 + .../examples/project/update-o-auth-2-kakao.md | 1 + .../project/update-o-auth-2-microsoft.md | 1 + .../examples/project/update-o-auth-2-okta.md | 1 + .../project/update-o-auth-2-salesforce.md | 1 + .../project/update-o-auth-2-webflow.md | 24 + .../examples/project/update-o-auth-2-zoho.md | 1 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 2 +- .../examples/tablesdb/create-rows.md | 2 +- .../examples/tablesdb/delete-rows.md | 2 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 2 +- .../examples/teams/create-membership.md | 2 +- .../examples/teams/update-membership.md | 2 +- .../examples/users/update-labels.md | 2 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 2 +- .../examples/vectorsdb/create-index.md | 2 +- .../examples/vectorsdb/create-operations.md | 2 +- .../examples/vectorsdb/delete-documents.md | 2 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 2 +- .../server-rust/examples/webhooks/create.md | 2 +- .../server-rust/examples/webhooks/update.md | 2 +- .../account/create-email-password-session.md | 3 +- .../examples/account/delete-sessions.md | 4 +- .../examples/account/list-sessions.md | 4 +- .../examples/analytics/create-event.md | 27 + .../examples/analytics/create-property.md | 21 + .../examples/analytics/delete-property.md | 15 + .../examples/analytics/get-property.md | 15 + .../examples/analytics/list-metrics.md | 23 + .../examples/analytics/list-properties.md | 17 + .../examples/analytics/update-property.md | 21 + .../examples/avatars/delete-photo.md | 13 + .../examples/avatars/get-screenshot.md | 3 +- .../examples/avatars/update-photo.md | 15 + .../examples/databases/create-documents.md | 11 +- .../examples/databases/create-index.md | 4 +- .../examples/databases/delete-documents.md | 4 +- .../examples/databases/list-transactions.md | 3 +- .../examples/databases/upsert-documents.md | 11 +- .../examples/documentsdb/create-documents.md | 11 +- .../examples/documentsdb/create-index.md | 4 +- .../examples/documentsdb/delete-documents.md | 4 +- .../examples/documentsdb/list-transactions.md | 3 +- .../examples/documentsdb/upsert-documents.md | 11 +- .../embeddings/create-text-embeddings.md | 5 +- .../examples/functions/list-runtimes.md | 4 +- .../examples/functions/list-specifications.md | 3 +- .../server-swift/examples/graphql/mutation.md | 4 +- .../server-swift/examples/graphql/query.md | 4 +- .../examples/locale/list-codes.md | 4 +- .../examples/locale/list-continents.md | 4 +- .../examples/locale/list-countries-eu.md | 4 +- .../examples/locale/list-countries-phones.md | 4 +- .../examples/locale/list-countries.md | 4 +- .../examples/locale/list-currencies.md | 4 +- .../examples/locale/list-languages.md | 4 +- .../examples/messaging/create-push.md | 3 +- .../examples/messaging/update-email.md | 12 +- .../examples/messaging/update-push.md | 7 +- .../examples/messaging/update-sms.md | 2 +- .../examples/oauth2/introspect.md | 18 + .../create-ephemeral-project-key.md | 2 +- .../organization/update-project-key.md | 2 +- .../examples/project/create-ephemeral-key.md | 2 +- .../examples/project/create-smtp-test.md | 4 +- .../examples/project/update-key.md | 2 +- .../examples/project/update-labels.md | 4 +- .../project/update-o-auth-2-auth-0.md | 2 + .../project/update-o-auth-2-discord.md | 2 + .../project/update-o-auth-2-git-hub.md | 2 + .../examples/project/update-o-auth-2-kakao.md | 2 + .../project/update-o-auth-2-microsoft.md | 2 + .../examples/project/update-o-auth-2-okta.md | 2 + .../project/update-o-auth-2-salesforce.md | 2 + .../project/update-o-auth-2-webflow.md | 17 + .../examples/project/update-o-auth-2-zoho.md | 2 + .../examples/sites/list-frameworks.md | 4 +- .../examples/sites/list-specifications.md | 3 +- .../examples/tablesdb/create-index.md | 4 +- .../examples/tablesdb/create-rows.md | 11 +- .../examples/tablesdb/delete-rows.md | 4 +- .../examples/tablesdb/list-transactions.md | 3 +- .../examples/tablesdb/upsert-rows.md | 11 +- .../examples/teams/create-membership.md | 4 +- .../examples/teams/update-membership.md | 4 +- .../examples/users/update-labels.md | 4 +- .../examples/vectorsdb/create-collection.md | 2 +- .../examples/vectorsdb/create-documents.md | 15 +- .../examples/vectorsdb/create-index.md | 4 +- .../examples/vectorsdb/create-operations.md | 10 +- .../examples/vectorsdb/delete-documents.md | 4 +- .../examples/vectorsdb/list-transactions.md | 3 +- .../examples/vectorsdb/update-collection.md | 2 +- .../examples/vectorsdb/upsert-documents.md | 15 +- .../server-swift/examples/webhooks/create.md | 4 +- .../server-swift/examples/webhooks/update.md | 4 +- specs/2.3.x/open-api3-2.3.x-client.json | 29547 +++ specs/2.3.x/open-api3-2.3.x-console.json | 149070 +++++++++++++++ specs/2.3.x/open-api3-2.3.x-server.json | 123325 ++++++++++++ specs/2.3.x/open-api3-2.3.x.json | 4930 +- 2609 files changed, 320381 insertions(+), 2904 deletions(-) create mode 100644 examples/2.3.x/client-android/java/analytics/create-event.md create mode 100644 examples/2.3.x/client-android/java/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-android/java/apps/create-key.md create mode 100644 examples/2.3.x/client-android/java/apps/create-secret.md create mode 100644 examples/2.3.x/client-android/java/apps/create.md create mode 100644 examples/2.3.x/client-android/java/apps/delete-installation.md create mode 100644 examples/2.3.x/client-android/java/apps/delete-key.md create mode 100644 examples/2.3.x/client-android/java/apps/delete-secret.md create mode 100644 examples/2.3.x/client-android/java/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-android/java/apps/delete.md create mode 100644 examples/2.3.x/client-android/java/apps/get-installation.md create mode 100644 examples/2.3.x/client-android/java/apps/get-key.md create mode 100644 examples/2.3.x/client-android/java/apps/get-secret.md create mode 100644 examples/2.3.x/client-android/java/apps/get.md create mode 100644 examples/2.3.x/client-android/java/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-android/java/apps/list-installations.md create mode 100644 examples/2.3.x/client-android/java/apps/list-keys.md create mode 100644 examples/2.3.x/client-android/java/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-android/java/apps/list-secrets.md create mode 100644 examples/2.3.x/client-android/java/apps/list.md create mode 100644 examples/2.3.x/client-android/java/apps/update-team.md create mode 100644 examples/2.3.x/client-android/java/apps/update.md create mode 100644 examples/2.3.x/client-android/java/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-android/java/avatars/update-photo.md create mode 100644 examples/2.3.x/client-android/java/oauth2/approve.md create mode 100644 examples/2.3.x/client-android/java/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-android/java/oauth2/authorize.md create mode 100644 examples/2.3.x/client-android/java/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-android/java/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-android/java/oauth2/create-par.md create mode 100644 examples/2.3.x/client-android/java/oauth2/create-token.md create mode 100644 examples/2.3.x/client-android/java/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-android/java/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-android/java/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-android/java/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-android/java/oauth2/logout.md create mode 100644 examples/2.3.x/client-android/java/oauth2/reject.md create mode 100644 examples/2.3.x/client-android/java/oauth2/revoke.md create mode 100644 examples/2.3.x/client-android/kotlin/analytics/create-event.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/create-key.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/create-secret.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/create.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/delete-installation.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/delete-key.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/delete-secret.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/delete.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/get-installation.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/get-key.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/get-secret.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/get.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list-installations.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list-keys.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list-secrets.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/list.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/update-team.md create mode 100644 examples/2.3.x/client-android/kotlin/apps/update.md create mode 100644 examples/2.3.x/client-android/kotlin/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-android/kotlin/avatars/update-photo.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/approve.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/authorize.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/create-par.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/create-token.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/logout.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/reject.md create mode 100644 examples/2.3.x/client-android/kotlin/oauth2/revoke.md create mode 100644 examples/2.3.x/client-apple/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-apple/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-apple/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-apple/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-apple/examples/apps/create.md create mode 100644 examples/2.3.x/client-apple/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-apple/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-apple/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-apple/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-apple/examples/apps/delete.md create mode 100644 examples/2.3.x/client-apple/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-apple/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-apple/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-apple/examples/apps/get.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-apple/examples/apps/list.md create mode 100644 examples/2.3.x/client-apple/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-apple/examples/apps/update.md create mode 100644 examples/2.3.x/client-apple/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-apple/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-apple/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/client-flutter/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/create.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/delete.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/get.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/list.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-flutter/examples/apps/update.md create mode 100644 examples/2.3.x/client-flutter/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-flutter/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-flutter/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/client-graphql/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/create.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/delete.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/get.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/list.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-graphql/examples/apps/update.md create mode 100644 examples/2.3.x/client-graphql/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-graphql/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-graphql/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/client-react-native/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/create.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/delete.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/get.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/list.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-react-native/examples/apps/update.md create mode 100644 examples/2.3.x/client-react-native/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-react-native/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-react-native/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/client-rest/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-rest/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-rest/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-rest/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-rest/examples/apps/create.md create mode 100644 examples/2.3.x/client-rest/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-rest/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-rest/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-rest/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-rest/examples/apps/delete.md create mode 100644 examples/2.3.x/client-rest/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-rest/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-rest/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-rest/examples/apps/get.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-rest/examples/apps/list.md create mode 100644 examples/2.3.x/client-rest/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-rest/examples/apps/update.md create mode 100644 examples/2.3.x/client-rest/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-rest/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-rest/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/client-web/examples/analytics/create-event.md create mode 100644 examples/2.3.x/client-web/examples/apps/create-installation-token.md create mode 100644 examples/2.3.x/client-web/examples/apps/create-key.md create mode 100644 examples/2.3.x/client-web/examples/apps/create-secret.md create mode 100644 examples/2.3.x/client-web/examples/apps/create.md create mode 100644 examples/2.3.x/client-web/examples/apps/delete-installation.md create mode 100644 examples/2.3.x/client-web/examples/apps/delete-key.md create mode 100644 examples/2.3.x/client-web/examples/apps/delete-secret.md create mode 100644 examples/2.3.x/client-web/examples/apps/delete-tokens.md create mode 100644 examples/2.3.x/client-web/examples/apps/delete.md create mode 100644 examples/2.3.x/client-web/examples/apps/get-installation.md create mode 100644 examples/2.3.x/client-web/examples/apps/get-key.md create mode 100644 examples/2.3.x/client-web/examples/apps/get-secret.md create mode 100644 examples/2.3.x/client-web/examples/apps/get.md create mode 100644 examples/2.3.x/client-web/examples/apps/list-installation-scopes.md create mode 100644 examples/2.3.x/client-web/examples/apps/list-installations.md create mode 100644 examples/2.3.x/client-web/examples/apps/list-keys.md create mode 100644 examples/2.3.x/client-web/examples/apps/list-o-auth-2-scopes.md create mode 100644 examples/2.3.x/client-web/examples/apps/list-secrets.md create mode 100644 examples/2.3.x/client-web/examples/apps/list.md create mode 100644 examples/2.3.x/client-web/examples/apps/update-team.md create mode 100644 examples/2.3.x/client-web/examples/apps/update.md create mode 100644 examples/2.3.x/client-web/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/client-web/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/approve.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/authorize-post.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/authorize.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/create-device-authorization.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/create-grant.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/create-par.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/create-token.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/get-grant.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/list-organizations.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/list-projects.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/logout-post.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/logout.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/reject.md create mode 100644 examples/2.3.x/client-web/examples/oauth2/revoke.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/create-event.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/create-property.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/get-property.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/console-cli/examples/analytics/update-property.md create mode 100644 examples/2.3.x/console-cli/examples/documentsdb/create-operations.md create mode 100644 examples/2.3.x/console-cli/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/console-cli/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/console-python/examples/analytics/create-event.md create mode 100644 examples/2.3.x/console-python/examples/analytics/create-property.md create mode 100644 examples/2.3.x/console-python/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/console-python/examples/analytics/get-property.md create mode 100644 examples/2.3.x/console-python/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/console-python/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/console-python/examples/analytics/update-property.md create mode 100644 examples/2.3.x/console-python/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/console-python/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/console-python/examples/growth/create-conversation.md create mode 100644 examples/2.3.x/console-python/examples/growth/create-installation.md create mode 100644 examples/2.3.x/console-python/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/console-web/examples/analytics/create-event.md create mode 100644 examples/2.3.x/console-web/examples/analytics/create-property.md create mode 100644 examples/2.3.x/console-web/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/console-web/examples/analytics/get-property.md create mode 100644 examples/2.3.x/console-web/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/console-web/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/console-web/examples/analytics/update-property.md create mode 100644 examples/2.3.x/console-web/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/console-web/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/console-web/examples/growth/create-conversation.md create mode 100644 examples/2.3.x/console-web/examples/growth/create-installation.md create mode 100644 examples/2.3.x/console-web/examples/manager/update-organization-status.md create mode 100644 examples/2.3.x/console-web/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-dart/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-dart/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-dart/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-dart/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-dart/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-dotnet/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-dotnet/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-dotnet/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-dotnet/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-go/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-go/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-go/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-go/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-go/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-go/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-go/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-go/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-go/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-go/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-go/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-graphql/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-graphql/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-graphql/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-graphql/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-graphql/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/create-event.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/create-property.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/delete-property.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/get-property.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/list-properties.md create mode 100644 examples/2.3.x/server-kotlin/java/analytics/update-property.md create mode 100644 examples/2.3.x/server-kotlin/java/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-kotlin/java/avatars/update-photo.md create mode 100644 examples/2.3.x/server-kotlin/java/oauth2/introspect.md create mode 100644 examples/2.3.x/server-kotlin/java/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/create-event.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/create-property.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/delete-property.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/get-property.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/list-properties.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/analytics/update-property.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/avatars/update-photo.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/oauth2/introspect.md create mode 100644 examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-nodejs/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-nodejs/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-nodejs/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-nodejs/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-php/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-php/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-php/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-php/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-php/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-php/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-php/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-php/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-php/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-php/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-php/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-python/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-python/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-python/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-python/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-python/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-python/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-python/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-python/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-python/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-python/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-python/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-rest/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-rest/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-rest/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-rest/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-rest/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-ruby/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-ruby/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-ruby/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-ruby/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-ruby/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-rust/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-rust/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-rust/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-rust/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-rust/examples/project/update-o-auth-2-webflow.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/create-event.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/create-property.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/delete-property.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/get-property.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/list-metrics.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/list-properties.md create mode 100644 examples/2.3.x/server-swift/examples/analytics/update-property.md create mode 100644 examples/2.3.x/server-swift/examples/avatars/delete-photo.md create mode 100644 examples/2.3.x/server-swift/examples/avatars/update-photo.md create mode 100644 examples/2.3.x/server-swift/examples/oauth2/introspect.md create mode 100644 examples/2.3.x/server-swift/examples/project/update-o-auth-2-webflow.md create mode 100644 specs/2.3.x/open-api3-2.3.x-client.json create mode 100644 specs/2.3.x/open-api3-2.3.x-console.json create mode 100644 specs/2.3.x/open-api3-2.3.x-server.json diff --git a/examples/2.3.x/client-android/java/account/create-email-password-session.md b/examples/2.3.x/client-android/java/account/create-email-password-session.md index fa7d25235..9e254bd25 100644 --- a/examples/2.3.x/client-android/java/account/create-email-password-session.md +++ b/examples/2.3.x/client-android/java/account/create-email-password-session.md @@ -14,6 +14,7 @@ Account account = new Account(client); account.createEmailPasswordSession( "email@example.com", // email "password", // password + 60L, // duration (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/account/create-id-token-session.md b/examples/2.3.x/client-android/java/account/create-id-token-session.md index 457b9fee6..b7bd83fcf 100644 --- a/examples/2.3.x/client-android/java/account/create-id-token-session.md +++ b/examples/2.3.x/client-android/java/account/create-id-token-session.md @@ -17,7 +17,7 @@ account.createIdTokenSession( "", // idToken "", // nonce (optional) "", // accessToken (optional) - 0, // accessTokenExpiry (optional) + 0L, // accessTokenExpiry (optional) "", // name (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/account/create-jwt.md b/examples/2.3.x/client-android/java/account/create-jwt.md index f405d3066..c41c57212 100644 --- a/examples/2.3.x/client-android/java/account/create-jwt.md +++ b/examples/2.3.x/client-android/java/account/create-jwt.md @@ -12,7 +12,7 @@ Client client = new Client(context) Account account = new Account(client); account.createJWT( - 0, // duration (optional) + 0L, // duration (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/account/delete-sessions.md b/examples/2.3.x/client-android/java/account/delete-sessions.md index 4b93d19af..e0dce6ca8 100644 --- a/examples/2.3.x/client-android/java/account/delete-sessions.md +++ b/examples/2.3.x/client-android/java/account/delete-sessions.md @@ -11,12 +11,16 @@ Client client = new Client(context) Account account = new Account(client); -account.deleteSessions(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +account.deleteSessions( + false, // current (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/account/list-sessions.md b/examples/2.3.x/client-android/java/account/list-sessions.md index 9e52ea471..5ea506259 100644 --- a/examples/2.3.x/client-android/java/account/list-sessions.md +++ b/examples/2.3.x/client-android/java/account/list-sessions.md @@ -11,12 +11,16 @@ Client client = new Client(context) Account account = new Account(client); -account.listSessions(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +account.listSessions( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/analytics/create-event.md b/examples/2.3.x/client-android/java/analytics/create-event.md new file mode 100644 index 000000000..e2b8dbe0f --- /dev/null +++ b/examples/2.3.x/client-android/java/analytics/create-event.md @@ -0,0 +1,38 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Analytics analytics = new Analytics(client); + +analytics.createEvent( + "", // propertyId + "", // name + "https://example.com", // url + "", // domain (optional) + "", // referrer (optional) + 0L, // screenWidth (optional) + "", // sessionHash (optional) + 0L, // scrollDepth (optional) + 0L, // engagementTime (optional) + List.of(), // props (optional) + "", // userId (optional) + "", // ip (optional) + "", // userAgent (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/create-installation-token.md b/examples/2.3.x/client-android/java/apps/create-installation-token.md new file mode 100644 index 000000000..e46fc2af8 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/create-installation-token.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.createInstallationToken( + "", // appId + "", // installationId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/create-key.md b/examples/2.3.x/client-android/java/apps/create-key.md new file mode 100644 index 000000000..729c98fd2 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/create-key.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.createKey( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/create-secret.md b/examples/2.3.x/client-android/java/apps/create-secret.md new file mode 100644 index 000000000..8acb44ef2 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/create-secret.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.createSecret( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/create.md b/examples/2.3.x/client-android/java/apps/create.md new file mode 100644 index 000000000..88694a946 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/create.md @@ -0,0 +1,44 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.create( + "", // appId + "", // name + List.of(), // redirectUris + "", // description (optional) + "https://example.com", // clientUri (optional) + "https://example.com", // logoUri (optional) + "https://example.com", // privacyPolicyUrl (optional) + "https://example.com", // termsUrl (optional) + List.of(), // contacts (optional) + "", // tagline (optional) + List.of(), // tags (optional) + List.of(), // images (optional) + "https://example.com", // supportUrl (optional) + "https://example.com", // dataDeletionUrl (optional) + List.of(), // postLogoutRedirectUris (optional) + false, // enabled (optional) + "public", // type (optional) + false, // deviceFlow (optional) + "", // teamId (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/delete-installation.md b/examples/2.3.x/client-android/java/apps/delete-installation.md new file mode 100644 index 000000000..559ab6544 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/delete-installation.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.deleteInstallation( + "", // appId + "", // installationId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/delete-key.md b/examples/2.3.x/client-android/java/apps/delete-key.md new file mode 100644 index 000000000..312e0be0b --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/delete-key.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.deleteKey( + "", // appId + "", // keyId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/delete-secret.md b/examples/2.3.x/client-android/java/apps/delete-secret.md new file mode 100644 index 000000000..b21fc7599 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/delete-secret.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.deleteSecret( + "", // appId + "", // secretId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/delete-tokens.md b/examples/2.3.x/client-android/java/apps/delete-tokens.md new file mode 100644 index 000000000..f873873e3 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/delete-tokens.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.deleteTokens( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/delete.md b/examples/2.3.x/client-android/java/apps/delete.md new file mode 100644 index 000000000..0c99520cb --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/delete.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.delete( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/get-installation.md b/examples/2.3.x/client-android/java/apps/get-installation.md new file mode 100644 index 000000000..f8cf6b568 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/get-installation.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.getInstallation( + "", // appId + "", // installationId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/get-key.md b/examples/2.3.x/client-android/java/apps/get-key.md new file mode 100644 index 000000000..729ccfa6b --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/get-key.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.getKey( + "", // appId + "", // keyId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/get-secret.md b/examples/2.3.x/client-android/java/apps/get-secret.md new file mode 100644 index 000000000..f4f3c68ff --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/get-secret.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.getSecret( + "", // appId + "", // secretId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/get.md b/examples/2.3.x/client-android/java/apps/get.md new file mode 100644 index 000000000..0b4c53786 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/get.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.get( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/list-installation-scopes.md b/examples/2.3.x/client-android/java/apps/list-installation-scopes.md new file mode 100644 index 000000000..c09da7894 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list-installation-scopes.md @@ -0,0 +1,22 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.listInstallationScopes(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); +})); +``` diff --git a/examples/2.3.x/client-android/java/apps/list-installations.md b/examples/2.3.x/client-android/java/apps/list-installations.md new file mode 100644 index 000000000..f83097e1a --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list-installations.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.listInstallations( + "", // appId + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/list-keys.md b/examples/2.3.x/client-android/java/apps/list-keys.md new file mode 100644 index 000000000..7a8727519 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list-keys.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.listKeys( + "", // appId + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-android/java/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..d96f8c361 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list-o-auth-2-scopes.md @@ -0,0 +1,22 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.listOAuth2Scopes(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); +})); +``` diff --git a/examples/2.3.x/client-android/java/apps/list-secrets.md b/examples/2.3.x/client-android/java/apps/list-secrets.md new file mode 100644 index 000000000..4d823a74e --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list-secrets.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.listSecrets( + "", // appId + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/list.md b/examples/2.3.x/client-android/java/apps/list.md new file mode 100644 index 000000000..31d80daae --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/list.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.list( + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/update-team.md b/examples/2.3.x/client-android/java/apps/update-team.md new file mode 100644 index 000000000..314c672f4 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/update-team.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.updateTeam( + "", // appId + "", // teamId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/apps/update.md b/examples/2.3.x/client-android/java/apps/update.md new file mode 100644 index 000000000..e8b51fa93 --- /dev/null +++ b/examples/2.3.x/client-android/java/apps/update.md @@ -0,0 +1,45 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Apps apps = new Apps(client); + +apps.update( + "", // appId + "", // name + "", // description (optional) + "https://example.com", // clientUri (optional) + "https://example.com", // logoUri (optional) + "https://example.com", // privacyPolicyUrl (optional) + "https://example.com", // termsUrl (optional) + List.of(), // contacts (optional) + "", // tagline (optional) + List.of(), // tags (optional) + List.of(), // images (optional) + "https://example.com", // supportUrl (optional) + "https://example.com", // dataDeletionUrl (optional) + false, // enabled (optional) + List.of(), // redirectUris (optional) + List.of(), // postLogoutRedirectUris (optional) + "public", // type (optional) + false, // deviceFlow (optional) + List.of(), // installationScopes (optional) + "https://example.com", // installationRedirectUrl (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/avatars/delete-photo.md b/examples/2.3.x/client-android/java/avatars/delete-photo.md new file mode 100644 index 000000000..cffc010c5 --- /dev/null +++ b/examples/2.3.x/client-android/java/avatars/delete-photo.md @@ -0,0 +1,22 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Avatars; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Avatars avatars = new Avatars(client); + +avatars.deletePhoto(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); +})); +``` diff --git a/examples/2.3.x/client-android/java/avatars/get-browser.md b/examples/2.3.x/client-android/java/avatars/get-browser.md index f101ad541..626de034e 100644 --- a/examples/2.3.x/client-android/java/avatars/get-browser.md +++ b/examples/2.3.x/client-android/java/avatars/get-browser.md @@ -14,9 +14,9 @@ Avatars avatars = new Avatars(client); avatars.getBrowser( Browser.AVANT_BROWSER, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/avatars/get-credit-card.md b/examples/2.3.x/client-android/java/avatars/get-credit-card.md index b12cebc96..f8e114dbd 100644 --- a/examples/2.3.x/client-android/java/avatars/get-credit-card.md +++ b/examples/2.3.x/client-android/java/avatars/get-credit-card.md @@ -14,9 +14,9 @@ Avatars avatars = new Avatars(client); avatars.getCreditCard( CreditCard.AMERICAN_EXPRESS, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/avatars/get-flag.md b/examples/2.3.x/client-android/java/avatars/get-flag.md index 4d808513f..0acd391f1 100644 --- a/examples/2.3.x/client-android/java/avatars/get-flag.md +++ b/examples/2.3.x/client-android/java/avatars/get-flag.md @@ -14,9 +14,9 @@ Avatars avatars = new Avatars(client); avatars.getFlag( Flag.AFGHANISTAN, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/avatars/get-image.md b/examples/2.3.x/client-android/java/avatars/get-image.md index a22041f53..38bd4dc86 100644 --- a/examples/2.3.x/client-android/java/avatars/get-image.md +++ b/examples/2.3.x/client-android/java/avatars/get-image.md @@ -13,8 +13,8 @@ Avatars avatars = new Avatars(client); avatars.getImage( "https://example.com", // url - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/avatars/get-initials.md b/examples/2.3.x/client-android/java/avatars/get-initials.md index 08f5bea98..c22358d2d 100644 --- a/examples/2.3.x/client-android/java/avatars/get-initials.md +++ b/examples/2.3.x/client-android/java/avatars/get-initials.md @@ -13,8 +13,8 @@ Avatars avatars = new Avatars(client); avatars.getInitials( "", // name (optional) - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) "FFFFFF", // background (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/avatars/get-photo.md b/examples/2.3.x/client-android/java/avatars/get-photo.md index 2204db789..04769d1c9 100644 --- a/examples/2.3.x/client-android/java/avatars/get-photo.md +++ b/examples/2.3.x/client-android/java/avatars/get-photo.md @@ -12,9 +12,9 @@ Client client = new Client(context) Avatars avatars = new Avatars(client); avatars.getPhoto( - 0, // width (optional) - 0, // height (optional) - 0, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + 0L, // quality (optional) "png", // output (optional) "g", // rating (optional) "current()", // userId (optional) diff --git a/examples/2.3.x/client-android/java/avatars/get-qr.md b/examples/2.3.x/client-android/java/avatars/get-qr.md index ad08ab561..b3bbb6b6a 100644 --- a/examples/2.3.x/client-android/java/avatars/get-qr.md +++ b/examples/2.3.x/client-android/java/avatars/get-qr.md @@ -13,8 +13,8 @@ Avatars avatars = new Avatars(client); avatars.getQR( "", // text - 1, // size (optional) - 0, // margin (optional) + 1L, // size (optional) + 0L, // margin (optional) false, // download (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/avatars/get-screenshot.md b/examples/2.3.x/client-android/java/avatars/get-screenshot.md index 71f96c5b6..82454a654 100644 --- a/examples/2.3.x/client-android/java/avatars/get-screenshot.md +++ b/examples/2.3.x/client-android/java/avatars/get-screenshot.md @@ -18,12 +18,11 @@ Avatars avatars = new Avatars(client); avatars.getScreenshot( "https://example.com", // url Map.of( - "Authorization", "Bearer token123", - "X-Custom-Header", "value" + "Accept-Language", "en-US,en;q=0.9" ), // headers (optional) - 1920, // viewportWidth (optional) - 1080, // viewportHeight (optional) - 2, // scale (optional) + 1920L, // viewportWidth (optional) + 1080L, // viewportHeight (optional) + 2.0, // scale (optional) BrowserTheme.LIGHT, // theme (optional) "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // userAgent (optional) true, // fullpage (optional) @@ -31,13 +30,13 @@ avatars.getScreenshot( Timezone.AFRICA_ABIDJAN, // timezone (optional) 37.7749, // latitude (optional) -122.4194, // longitude (optional) - 100, // accuracy (optional) + 100.0, // accuracy (optional) true, // touch (optional) BrowserPermission.GEOLOCATION, // permissions (optional) - 3, // sleep (optional) - 800, // width (optional) - 600, // height (optional) - 85, // quality (optional) + 3L, // sleep (optional) + 800L, // width (optional) + 600L, // height (optional) + 85L, // quality (optional) ImageFormat.JPG, // output (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/avatars/update-photo.md b/examples/2.3.x/client-android/java/avatars/update-photo.md new file mode 100644 index 000000000..8c4d6e903 --- /dev/null +++ b/examples/2.3.x/client-android/java/avatars/update-photo.md @@ -0,0 +1,27 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.models.InputFile; +import io.appwrite.services.Avatars; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Avatars avatars = new Avatars(client); + +avatars.updatePhoto( + InputFile.fromPath("file.png"), // file + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/databases/create-transaction.md b/examples/2.3.x/client-android/java/databases/create-transaction.md index d96c27a07..616838d21 100644 --- a/examples/2.3.x/client-android/java/databases/create-transaction.md +++ b/examples/2.3.x/client-android/java/databases/create-transaction.md @@ -12,7 +12,7 @@ Client client = new Client(context) Databases databases = new Databases(client); databases.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/databases/decrement-document-attribute.md b/examples/2.3.x/client-android/java/databases/decrement-document-attribute.md index 1a2f23e22..682dadd2b 100644 --- a/examples/2.3.x/client-android/java/databases/decrement-document-attribute.md +++ b/examples/2.3.x/client-android/java/databases/decrement-document-attribute.md @@ -16,8 +16,8 @@ databases.decrementDocumentAttribute( "", // collectionId "", // documentId "", // attribute - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/databases/increment-document-attribute.md b/examples/2.3.x/client-android/java/databases/increment-document-attribute.md index fe3635924..07dfd55c5 100644 --- a/examples/2.3.x/client-android/java/databases/increment-document-attribute.md +++ b/examples/2.3.x/client-android/java/databases/increment-document-attribute.md @@ -16,8 +16,8 @@ databases.incrementDocumentAttribute( "", // collectionId "", // documentId "", // attribute - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/databases/list-documents.md b/examples/2.3.x/client-android/java/databases/list-documents.md index 8569cb60f..8a5a52cb8 100644 --- a/examples/2.3.x/client-android/java/databases/list-documents.md +++ b/examples/2.3.x/client-android/java/databases/list-documents.md @@ -17,7 +17,7 @@ databases.listDocuments( List.of(), // queries (optional) "", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/databases/list-transactions.md b/examples/2.3.x/client-android/java/databases/list-transactions.md index ad11c7f70..3e7ca1382 100644 --- a/examples/2.3.x/client-android/java/databases/list-transactions.md +++ b/examples/2.3.x/client-android/java/databases/list-transactions.md @@ -13,6 +13,7 @@ Databases databases = new Databases(client); databases.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/documentsdb/create-documents.md b/examples/2.3.x/client-android/java/documentsdb/create-documents.md index c52433a2d..ae20335d5 100644 --- a/examples/2.3.x/client-android/java/documentsdb/create-documents.md +++ b/examples/2.3.x/client-android/java/documentsdb/create-documents.md @@ -14,7 +14,14 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.createDocuments( "", // databaseId "", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // documents "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/documentsdb/create-transaction.md b/examples/2.3.x/client-android/java/documentsdb/create-transaction.md index da91c5c8e..ac4a96d81 100644 --- a/examples/2.3.x/client-android/java/documentsdb/create-transaction.md +++ b/examples/2.3.x/client-android/java/documentsdb/create-transaction.md @@ -12,7 +12,7 @@ Client client = new Client(context) DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/documentsdb/decrement-document-attribute.md b/examples/2.3.x/client-android/java/documentsdb/decrement-document-attribute.md index f1853ac6d..9e19095e3 100644 --- a/examples/2.3.x/client-android/java/documentsdb/decrement-document-attribute.md +++ b/examples/2.3.x/client-android/java/documentsdb/decrement-document-attribute.md @@ -16,8 +16,8 @@ documentsDB.decrementDocumentAttribute( "", // collectionId "", // documentId "", // attribute - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/documentsdb/increment-document-attribute.md b/examples/2.3.x/client-android/java/documentsdb/increment-document-attribute.md index fab214e96..470abbf8c 100644 --- a/examples/2.3.x/client-android/java/documentsdb/increment-document-attribute.md +++ b/examples/2.3.x/client-android/java/documentsdb/increment-document-attribute.md @@ -16,8 +16,8 @@ documentsDB.incrementDocumentAttribute( "", // collectionId "", // documentId "", // attribute - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/documentsdb/list-documents.md b/examples/2.3.x/client-android/java/documentsdb/list-documents.md index 0abb6734c..f6cfe4833 100644 --- a/examples/2.3.x/client-android/java/documentsdb/list-documents.md +++ b/examples/2.3.x/client-android/java/documentsdb/list-documents.md @@ -17,7 +17,7 @@ documentsDB.listDocuments( List.of(), // queries (optional) "", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/documentsdb/list-transactions.md b/examples/2.3.x/client-android/java/documentsdb/list-transactions.md index 9b8fcd7bc..ab4974a0a 100644 --- a/examples/2.3.x/client-android/java/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-android/java/documentsdb/list-transactions.md @@ -13,6 +13,7 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/graphql/mutation.md b/examples/2.3.x/client-android/java/graphql/mutation.md index 9cc7febe9..a8488db12 100644 --- a/examples/2.3.x/client-android/java/graphql/mutation.md +++ b/examples/2.3.x/client-android/java/graphql/mutation.md @@ -12,7 +12,9 @@ Client client = new Client(context) Graphql graphql = new Graphql(client); graphql.mutation( - Map.of("a", "b"), // query + Map.of( + "query", "mutation { accountUpdateName(name: \"Walter\") { name } }" + ), // query new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/graphql/query.md b/examples/2.3.x/client-android/java/graphql/query.md index 25704b00b..58e636357 100644 --- a/examples/2.3.x/client-android/java/graphql/query.md +++ b/examples/2.3.x/client-android/java/graphql/query.md @@ -12,7 +12,9 @@ Client client = new Client(context) Graphql graphql = new Graphql(client); graphql.query( - Map.of("a", "b"), // query + Map.of( + "query", "query { localeGet { ip } }" + ), // query new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/locale/list-codes.md b/examples/2.3.x/client-android/java/locale/list-codes.md index 534b11995..181c1b8f2 100644 --- a/examples/2.3.x/client-android/java/locale/list-codes.md +++ b/examples/2.3.x/client-android/java/locale/list-codes.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listCodes(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCodes( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-continents.md b/examples/2.3.x/client-android/java/locale/list-continents.md index 998a31be2..e8a60fca8 100644 --- a/examples/2.3.x/client-android/java/locale/list-continents.md +++ b/examples/2.3.x/client-android/java/locale/list-continents.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listContinents(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listContinents( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-countries-eu.md b/examples/2.3.x/client-android/java/locale/list-countries-eu.md index 5950c990f..b6c878fc3 100644 --- a/examples/2.3.x/client-android/java/locale/list-countries-eu.md +++ b/examples/2.3.x/client-android/java/locale/list-countries-eu.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listCountriesEU(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountriesEU( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-countries-phones.md b/examples/2.3.x/client-android/java/locale/list-countries-phones.md index 6096758ec..3d8bb9ebf 100644 --- a/examples/2.3.x/client-android/java/locale/list-countries-phones.md +++ b/examples/2.3.x/client-android/java/locale/list-countries-phones.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listCountriesPhones(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountriesPhones( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-countries.md b/examples/2.3.x/client-android/java/locale/list-countries.md index 140fc48a0..3238cf27f 100644 --- a/examples/2.3.x/client-android/java/locale/list-countries.md +++ b/examples/2.3.x/client-android/java/locale/list-countries.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listCountries(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountries( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-currencies.md b/examples/2.3.x/client-android/java/locale/list-currencies.md index 0e5273d96..631bb3460 100644 --- a/examples/2.3.x/client-android/java/locale/list-currencies.md +++ b/examples/2.3.x/client-android/java/locale/list-currencies.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listCurrencies(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCurrencies( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/locale/list-languages.md b/examples/2.3.x/client-android/java/locale/list-languages.md index e85bd0a11..b00006336 100644 --- a/examples/2.3.x/client-android/java/locale/list-languages.md +++ b/examples/2.3.x/client-android/java/locale/list-languages.md @@ -11,12 +11,16 @@ Client client = new Client(context) Locale locale = new Locale(client); -locale.listLanguages(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listLanguages( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); - Log.d("Appwrite", result.toString()); -})); ``` diff --git a/examples/2.3.x/client-android/java/oauth2/approve.md b/examples/2.3.x/client-android/java/oauth2/approve.md new file mode 100644 index 000000000..f2f4a4951 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/approve.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.approve( + "", // grant_id + "", // authorization_details (optional) + "", // scope (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/authorize-post.md b/examples/2.3.x/client-android/java/oauth2/authorize-post.md new file mode 100644 index 000000000..99ed6b8e6 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/authorize-post.md @@ -0,0 +1,39 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.authorizePost( + "", // client_id (optional) + "https://example.com", // redirect_uri (optional) + "", // response_type (optional) + "", // scope (optional) + "", // state (optional) + "", // nonce (optional) + "", // code_challenge (optional) + "s256", // code_challenge_method (optional) + "", // prompt (optional) + 0L, // max_age (optional) + "", // authorization_details (optional) + "", // resource (optional) + "", // audience (optional) + "", // request_uri (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/authorize.md b/examples/2.3.x/client-android/java/oauth2/authorize.md new file mode 100644 index 000000000..62a452c88 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/authorize.md @@ -0,0 +1,39 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.authorize( + "", // client_id (optional) + "https://example.com", // redirect_uri (optional) + "", // response_type (optional) + "", // scope (optional) + "", // state (optional) + "", // nonce (optional) + "", // code_challenge (optional) + "s256", // code_challenge_method (optional) + "", // prompt (optional) + 0L, // max_age (optional) + "", // authorization_details (optional) + "", // resource (optional) + "", // audience (optional) + "", // request_uri (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/create-device-authorization.md b/examples/2.3.x/client-android/java/oauth2/create-device-authorization.md new file mode 100644 index 000000000..0b65a1abf --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/create-device-authorization.md @@ -0,0 +1,30 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createDeviceAuthorization( + "", // client_id (optional) + "", // scope (optional) + "", // authorization_details (optional) + "", // resource (optional) + "", // audience (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/create-grant.md b/examples/2.3.x/client-android/java/oauth2/create-grant.md new file mode 100644 index 000000000..a14c3886d --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/create-grant.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createGrant( + "", // user_code + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/create-par.md b/examples/2.3.x/client-android/java/oauth2/create-par.md new file mode 100644 index 000000000..e65bdb54c --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/create-par.md @@ -0,0 +1,38 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createPAR( + "", // client_id + "https://example.com", // redirect_uri + "code", // response_type + "", // scope (optional) + "", // state (optional) + "", // nonce (optional) + "", // code_challenge (optional) + "s256", // code_challenge_method (optional) + "", // prompt (optional) + 0L, // max_age (optional) + "", // authorization_details (optional) + "", // resource (optional) + "", // audience (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/create-token.md b/examples/2.3.x/client-android/java/oauth2/create-token.md new file mode 100644 index 000000000..39b6fa256 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/create-token.md @@ -0,0 +1,35 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createToken( + "", // grant_type + "", // code (optional) + "", // refresh_token (optional) + "", // device_code (optional) + "", // client_id (optional) + "", // client_secret (optional) + "", // code_verifier (optional) + "https://example.com", // redirect_uri (optional) + "", // resource (optional) + "", // audience (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/get-grant.md b/examples/2.3.x/client-android/java/oauth2/get-grant.md new file mode 100644 index 000000000..180688899 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/get-grant.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.getGrant( + "", // grant_id + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/list-organizations.md b/examples/2.3.x/client-android/java/oauth2/list-organizations.md new file mode 100644 index 000000000..bbc74a785 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/list-organizations.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.listOrganizations( + 1L, // limit (optional) + 0L, // offset (optional) + "", // search (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/list-projects.md b/examples/2.3.x/client-android/java/oauth2/list-projects.md new file mode 100644 index 000000000..6963583ad --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/list-projects.md @@ -0,0 +1,28 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.listProjects( + 1L, // limit (optional) + 0L, // offset (optional) + "", // search (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/logout-post.md b/examples/2.3.x/client-android/java/oauth2/logout-post.md new file mode 100644 index 000000000..fefd5e920 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/logout-post.md @@ -0,0 +1,31 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.logoutPost( + "", // id_token_hint (optional) + "", // logout_hint (optional) + "", // client_id (optional) + "https://example.com", // post_logout_redirect_uri (optional) + "", // state (optional) + "", // ui_locales (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/logout.md b/examples/2.3.x/client-android/java/oauth2/logout.md new file mode 100644 index 000000000..ca7739a25 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/logout.md @@ -0,0 +1,31 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.logout( + "", // id_token_hint (optional) + "", // logout_hint (optional) + "", // client_id (optional) + "https://example.com", // post_logout_redirect_uri (optional) + "", // state (optional) + "", // ui_locales (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/reject.md b/examples/2.3.x/client-android/java/oauth2/reject.md new file mode 100644 index 000000000..90b9b2e24 --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/reject.md @@ -0,0 +1,26 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.reject( + "", // grant_id + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/oauth2/revoke.md b/examples/2.3.x/client-android/java/oauth2/revoke.md new file mode 100644 index 000000000..0d680eb1d --- /dev/null +++ b/examples/2.3.x/client-android/java/oauth2/revoke.md @@ -0,0 +1,29 @@ +```java +import android.util.Log; + +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.revoke( + "", // token + "access_token", // token_type_hint (optional) + "", // client_id (optional) + "", // client_secret (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` diff --git a/examples/2.3.x/client-android/java/presences/list.md b/examples/2.3.x/client-android/java/presences/list.md index d66a4161b..c2430748d 100644 --- a/examples/2.3.x/client-android/java/presences/list.md +++ b/examples/2.3.x/client-android/java/presences/list.md @@ -14,7 +14,7 @@ Presences presences = new Presences(client); presences.list( List.of(), // queries (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/storage/get-file-preview.md b/examples/2.3.x/client-android/java/storage/get-file-preview.md index 3d753c447..2f1060a1f 100644 --- a/examples/2.3.x/client-android/java/storage/get-file-preview.md +++ b/examples/2.3.x/client-android/java/storage/get-file-preview.md @@ -16,15 +16,15 @@ Storage storage = new Storage(client); storage.getFilePreview( "", // bucketId "", // fileId - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) ImageGravity.AUTO, // gravity (optional) - -1, // quality (optional) - 0, // borderWidth (optional) + -1L, // quality (optional) + 0L, // borderWidth (optional) "FFFFFF", // borderColor (optional) - 0, // borderRadius (optional) - 0, // opacity (optional) - -360, // rotation (optional) + 0L, // borderRadius (optional) + 0.0, // opacity (optional) + -360L, // rotation (optional) "FFFFFF", // background (optional) ImageFormat.JPG, // output (optional) "", // token (optional) diff --git a/examples/2.3.x/client-android/java/tablesdb/create-transaction.md b/examples/2.3.x/client-android/java/tablesdb/create-transaction.md index 8401bfec3..0dab2f0c4 100644 --- a/examples/2.3.x/client-android/java/tablesdb/create-transaction.md +++ b/examples/2.3.x/client-android/java/tablesdb/create-transaction.md @@ -12,7 +12,7 @@ Client client = new Client(context) TablesDB tablesDB = new TablesDB(client); tablesDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/tablesdb/decrement-row-column.md b/examples/2.3.x/client-android/java/tablesdb/decrement-row-column.md index c998b442f..2315f165f 100644 --- a/examples/2.3.x/client-android/java/tablesdb/decrement-row-column.md +++ b/examples/2.3.x/client-android/java/tablesdb/decrement-row-column.md @@ -16,8 +16,8 @@ tablesDB.decrementRowColumn( "", // tableId "", // rowId "", // column - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/tablesdb/increment-row-column.md b/examples/2.3.x/client-android/java/tablesdb/increment-row-column.md index 5fb7189e2..2e9b52ba2 100644 --- a/examples/2.3.x/client-android/java/tablesdb/increment-row-column.md +++ b/examples/2.3.x/client-android/java/tablesdb/increment-row-column.md @@ -16,8 +16,8 @@ tablesDB.incrementRowColumn( "", // tableId "", // rowId "", // column - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/client-android/java/tablesdb/list-rows.md b/examples/2.3.x/client-android/java/tablesdb/list-rows.md index cbf40287b..6d3a0a783 100644 --- a/examples/2.3.x/client-android/java/tablesdb/list-rows.md +++ b/examples/2.3.x/client-android/java/tablesdb/list-rows.md @@ -17,7 +17,7 @@ tablesDB.listRows( List.of(), // queries (optional) "", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/tablesdb/list-transactions.md b/examples/2.3.x/client-android/java/tablesdb/list-transactions.md index 9ebb180a8..8a04ad9cf 100644 --- a/examples/2.3.x/client-android/java/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-android/java/tablesdb/list-transactions.md @@ -13,6 +13,7 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/teams/create-membership.md b/examples/2.3.x/client-android/java/teams/create-membership.md index 861aeb622..d7fba7c1f 100644 --- a/examples/2.3.x/client-android/java/teams/create-membership.md +++ b/examples/2.3.x/client-android/java/teams/create-membership.md @@ -13,7 +13,7 @@ Teams teams = new Teams(client); teams.createMembership( "", // teamId - List.of(), // roles + List.of("editor"), // roles "email@example.com", // email (optional) "", // userId (optional) "+12065550100", // phone (optional) diff --git a/examples/2.3.x/client-android/java/teams/update-membership.md b/examples/2.3.x/client-android/java/teams/update-membership.md index 60231f2c1..c4208a835 100644 --- a/examples/2.3.x/client-android/java/teams/update-membership.md +++ b/examples/2.3.x/client-android/java/teams/update-membership.md @@ -14,7 +14,7 @@ Teams teams = new Teams(client); teams.updateMembership( "", // teamId "", // membershipId - List.of(), // roles + List.of("editor"), // roles new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/vectorsdb/create-operations.md b/examples/2.3.x/client-android/java/vectorsdb/create-operations.md index 7e503634c..8dd6f0b8c 100644 --- a/examples/2.3.x/client-android/java/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-android/java/vectorsdb/create-operations.md @@ -19,7 +19,10 @@ vectorsDB.createOperations( "collectionId", "", "documentId", "", "data", Map.of( - "name", "Walter O'Brien" + "embeddings", List.of(0.12, -0.55, 0.88, 1.02), + "metadata", Map.of( + "name", "First document" + ) ) )), // operations (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/client-android/java/vectorsdb/create-query.md b/examples/2.3.x/client-android/java/vectorsdb/create-query.md index 3f1cfd5cc..8c798724d 100644 --- a/examples/2.3.x/client-android/java/vectorsdb/create-query.md +++ b/examples/2.3.x/client-android/java/vectorsdb/create-query.md @@ -17,7 +17,7 @@ vectorsDB.createQuery( List.of(), // queries (optional) "", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/vectorsdb/create-transaction.md b/examples/2.3.x/client-android/java/vectorsdb/create-transaction.md index 4784fc47c..916f73c19 100644 --- a/examples/2.3.x/client-android/java/vectorsdb/create-transaction.md +++ b/examples/2.3.x/client-android/java/vectorsdb/create-transaction.md @@ -12,7 +12,7 @@ Client client = new Client(context) VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/vectorsdb/list-documents.md b/examples/2.3.x/client-android/java/vectorsdb/list-documents.md index 12ef1f0c3..49689d363 100644 --- a/examples/2.3.x/client-android/java/vectorsdb/list-documents.md +++ b/examples/2.3.x/client-android/java/vectorsdb/list-documents.md @@ -17,7 +17,7 @@ vectorsDB.listDocuments( List.of(), // queries (optional) "", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/java/vectorsdb/list-transactions.md b/examples/2.3.x/client-android/java/vectorsdb/list-transactions.md index 18ef0e55d..be8905e25 100644 --- a/examples/2.3.x/client-android/java/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-android/java/vectorsdb/list-transactions.md @@ -13,6 +13,7 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/client-android/kotlin/account/create-email-password-session.md b/examples/2.3.x/client-android/kotlin/account/create-email-password-session.md index 6100e4834..aaceb65fe 100644 --- a/examples/2.3.x/client-android/kotlin/account/create-email-password-session.md +++ b/examples/2.3.x/client-android/kotlin/account/create-email-password-session.md @@ -12,5 +12,6 @@ val account = Account(client) val result = account.createEmailPasswordSession( email = "email@example.com", password = "password", + duration = 60, // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/account/delete-sessions.md b/examples/2.3.x/client-android/kotlin/account/delete-sessions.md index ff404dbc1..96bbc341b 100644 --- a/examples/2.3.x/client-android/kotlin/account/delete-sessions.md +++ b/examples/2.3.x/client-android/kotlin/account/delete-sessions.md @@ -9,5 +9,7 @@ val client = Client(context) val account = Account(client) -val result = account.deleteSessions() +val result = account.deleteSessions( + current = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/account/list-sessions.md b/examples/2.3.x/client-android/kotlin/account/list-sessions.md index 8c261a2d3..38e7e556e 100644 --- a/examples/2.3.x/client-android/kotlin/account/list-sessions.md +++ b/examples/2.3.x/client-android/kotlin/account/list-sessions.md @@ -9,5 +9,7 @@ val client = Client(context) val account = Account(client) -val result = account.listSessions() +val result = account.listSessions( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/analytics/create-event.md b/examples/2.3.x/client-android/kotlin/analytics/create-event.md new file mode 100644 index 000000000..820e0bac5 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/analytics/create-event.md @@ -0,0 +1,27 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val analytics = Analytics(client) + +val result = analytics.createEvent( + propertyId = "", + name = "", + url = "https://example.com", + domain = "", // (optional) + referrer = "", // (optional) + screenWidth = 0, // (optional) + sessionHash = "", // (optional) + scrollDepth = 0, // (optional) + engagementTime = 0, // (optional) + props = listOf(), // (optional) + userId = "", // (optional) + ip = "", // (optional) + userAgent = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/create-installation-token.md b/examples/2.3.x/client-android/kotlin/apps/create-installation-token.md new file mode 100644 index 000000000..6226e7754 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/create-installation-token.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.createInstallationToken( + appId = "", + installationId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/create-key.md b/examples/2.3.x/client-android/kotlin/apps/create-key.md new file mode 100644 index 000000000..d6daef843 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/create-key.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.createKey( + appId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/create-secret.md b/examples/2.3.x/client-android/kotlin/apps/create-secret.md new file mode 100644 index 000000000..d9a4c525c --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/create-secret.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.createSecret( + appId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/create.md b/examples/2.3.x/client-android/kotlin/apps/create.md new file mode 100644 index 000000000..2299c0317 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/create.md @@ -0,0 +1,33 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.create( + appId = "", + name = "", + redirectUris = listOf(), + description = "", // (optional) + clientUri = "https://example.com", // (optional) + logoUri = "https://example.com", // (optional) + privacyPolicyUrl = "https://example.com", // (optional) + termsUrl = "https://example.com", // (optional) + contacts = listOf(), // (optional) + tagline = "", // (optional) + tags = listOf(), // (optional) + images = listOf(), // (optional) + supportUrl = "https://example.com", // (optional) + dataDeletionUrl = "https://example.com", // (optional) + postLogoutRedirectUris = listOf(), // (optional) + enabled = false, // (optional) + type = "public", // (optional) + deviceFlow = false, // (optional) + teamId = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/delete-installation.md b/examples/2.3.x/client-android/kotlin/apps/delete-installation.md new file mode 100644 index 000000000..c07fee534 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/delete-installation.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.deleteInstallation( + appId = "", + installationId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/delete-key.md b/examples/2.3.x/client-android/kotlin/apps/delete-key.md new file mode 100644 index 000000000..3ad3825a2 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/delete-key.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.deleteKey( + appId = "", + keyId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/delete-secret.md b/examples/2.3.x/client-android/kotlin/apps/delete-secret.md new file mode 100644 index 000000000..ad22d5e00 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/delete-secret.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.deleteSecret( + appId = "", + secretId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/delete-tokens.md b/examples/2.3.x/client-android/kotlin/apps/delete-tokens.md new file mode 100644 index 000000000..e8d890090 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/delete-tokens.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.deleteTokens( + appId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/delete.md b/examples/2.3.x/client-android/kotlin/apps/delete.md new file mode 100644 index 000000000..412b55f63 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/delete.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.delete( + appId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/get-installation.md b/examples/2.3.x/client-android/kotlin/apps/get-installation.md new file mode 100644 index 000000000..288f21d6f --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/get-installation.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.getInstallation( + appId = "", + installationId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/get-key.md b/examples/2.3.x/client-android/kotlin/apps/get-key.md new file mode 100644 index 000000000..8af731164 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/get-key.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.getKey( + appId = "", + keyId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/get-secret.md b/examples/2.3.x/client-android/kotlin/apps/get-secret.md new file mode 100644 index 000000000..a76bbe4eb --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/get-secret.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.getSecret( + appId = "", + secretId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/get.md b/examples/2.3.x/client-android/kotlin/apps/get.md new file mode 100644 index 000000000..3fc30c710 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/get.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.get( + appId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list-installation-scopes.md b/examples/2.3.x/client-android/kotlin/apps/list-installation-scopes.md new file mode 100644 index 000000000..bafacf813 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list-installation-scopes.md @@ -0,0 +1,13 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.listInstallationScopes() +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list-installations.md b/examples/2.3.x/client-android/kotlin/apps/list-installations.md new file mode 100644 index 000000000..0819d5fce --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list-installations.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.listInstallations( + appId = "", + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list-keys.md b/examples/2.3.x/client-android/kotlin/apps/list-keys.md new file mode 100644 index 000000000..9977dfe71 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list-keys.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.listKeys( + appId = "", + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-android/kotlin/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..b0852955b --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list-o-auth-2-scopes.md @@ -0,0 +1,13 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.listOAuth2Scopes() +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list-secrets.md b/examples/2.3.x/client-android/kotlin/apps/list-secrets.md new file mode 100644 index 000000000..aa69cc8c7 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list-secrets.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.listSecrets( + appId = "", + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/list.md b/examples/2.3.x/client-android/kotlin/apps/list.md new file mode 100644 index 000000000..d2faad48c --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/list.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.list( + queries = listOf(), // (optional) + total = false, // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/update-team.md b/examples/2.3.x/client-android/kotlin/apps/update-team.md new file mode 100644 index 000000000..b6f69443a --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/update-team.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.updateTeam( + appId = "", + teamId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/apps/update.md b/examples/2.3.x/client-android/kotlin/apps/update.md new file mode 100644 index 000000000..b2bad705a --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/apps/update.md @@ -0,0 +1,34 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val apps = Apps(client) + +val result = apps.update( + appId = "", + name = "", + description = "", // (optional) + clientUri = "https://example.com", // (optional) + logoUri = "https://example.com", // (optional) + privacyPolicyUrl = "https://example.com", // (optional) + termsUrl = "https://example.com", // (optional) + contacts = listOf(), // (optional) + tagline = "", // (optional) + tags = listOf(), // (optional) + images = listOf(), // (optional) + supportUrl = "https://example.com", // (optional) + dataDeletionUrl = "https://example.com", // (optional) + enabled = false, // (optional) + redirectUris = listOf(), // (optional) + postLogoutRedirectUris = listOf(), // (optional) + type = "public", // (optional) + deviceFlow = false, // (optional) + installationScopes = listOf(), // (optional) + installationRedirectUrl = "https://example.com", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/avatars/delete-photo.md b/examples/2.3.x/client-android/kotlin/avatars/delete-photo.md new file mode 100644 index 000000000..e16f41738 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Avatars + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val avatars = Avatars(client) + +val result = avatars.deletePhoto() +``` diff --git a/examples/2.3.x/client-android/kotlin/avatars/get-screenshot.md b/examples/2.3.x/client-android/kotlin/avatars/get-screenshot.md index 1093c060f..fcfb36c89 100644 --- a/examples/2.3.x/client-android/kotlin/avatars/get-screenshot.md +++ b/examples/2.3.x/client-android/kotlin/avatars/get-screenshot.md @@ -16,12 +16,11 @@ val avatars = Avatars(client) val result = avatars.getScreenshot( url = "https://example.com", headers = mapOf( - "Authorization" to "Bearer token123", - "X-Custom-Header" to "value" + "Accept-Language" to "en-US,en;q=0.9" ), // (optional) viewportWidth = 1920, // (optional) viewportHeight = 1080, // (optional) - scale = 2, // (optional) + scale = 2.0, // (optional) theme = BrowserTheme.LIGHT, // (optional) userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // (optional) fullpage = true, // (optional) @@ -29,7 +28,7 @@ val result = avatars.getScreenshot( timezone = Timezone.AFRICA_ABIDJAN, // (optional) latitude = 37.7749, // (optional) longitude = -122.4194, // (optional) - accuracy = 100, // (optional) + accuracy = 100.0, // (optional) touch = true, // (optional) permissions = BrowserPermission.GEOLOCATION, // (optional) sleep = 3, // (optional) diff --git a/examples/2.3.x/client-android/kotlin/avatars/update-photo.md b/examples/2.3.x/client-android/kotlin/avatars/update-photo.md new file mode 100644 index 000000000..326fe57ab --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/avatars/update-photo.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.models.InputFile +import io.appwrite.services.Avatars + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val avatars = Avatars(client) + +val result = avatars.updatePhoto( + file = InputFile.fromPath("file.png"), +) +``` diff --git a/examples/2.3.x/client-android/kotlin/databases/decrement-document-attribute.md b/examples/2.3.x/client-android/kotlin/databases/decrement-document-attribute.md index c32a60027..07452b01b 100644 --- a/examples/2.3.x/client-android/kotlin/databases/decrement-document-attribute.md +++ b/examples/2.3.x/client-android/kotlin/databases/decrement-document-attribute.md @@ -14,8 +14,8 @@ val result = databases.decrementDocumentAttribute( collectionId = "", documentId = "", attribute = "", - value = 1, // (optional) - min = 0, // (optional) + value = 1.0, // (optional) + min = 0.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/databases/increment-document-attribute.md b/examples/2.3.x/client-android/kotlin/databases/increment-document-attribute.md index daaa6d6ae..e71fddc7f 100644 --- a/examples/2.3.x/client-android/kotlin/databases/increment-document-attribute.md +++ b/examples/2.3.x/client-android/kotlin/databases/increment-document-attribute.md @@ -14,8 +14,8 @@ val result = databases.incrementDocumentAttribute( collectionId = "", documentId = "", attribute = "", - value = 1, // (optional) - max = 100, // (optional) + value = 1.0, // (optional) + max = 100.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/databases/list-transactions.md b/examples/2.3.x/client-android/kotlin/databases/list-transactions.md index 3cabd79f3..e4cd4633d 100644 --- a/examples/2.3.x/client-android/kotlin/databases/list-transactions.md +++ b/examples/2.3.x/client-android/kotlin/databases/list-transactions.md @@ -11,5 +11,6 @@ val databases = Databases(client) val result = databases.listTransactions( queries = listOf(), // (optional) + total = false, // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/documentsdb/create-documents.md b/examples/2.3.x/client-android/kotlin/documentsdb/create-documents.md index 2923c1007..b66cb47dd 100644 --- a/examples/2.3.x/client-android/kotlin/documentsdb/create-documents.md +++ b/examples/2.3.x/client-android/kotlin/documentsdb/create-documents.md @@ -12,7 +12,14 @@ val documentsDB = DocumentsDB(client) val result = documentsDB.createDocuments( databaseId = "", collectionId = "", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/documentsdb/decrement-document-attribute.md b/examples/2.3.x/client-android/kotlin/documentsdb/decrement-document-attribute.md index fdb11fe06..461a2fe07 100644 --- a/examples/2.3.x/client-android/kotlin/documentsdb/decrement-document-attribute.md +++ b/examples/2.3.x/client-android/kotlin/documentsdb/decrement-document-attribute.md @@ -14,8 +14,8 @@ val result = documentsDB.decrementDocumentAttribute( collectionId = "", documentId = "", attribute = "", - value = 1, // (optional) - min = 0, // (optional) + value = 1.0, // (optional) + min = 0.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/documentsdb/increment-document-attribute.md b/examples/2.3.x/client-android/kotlin/documentsdb/increment-document-attribute.md index 8286ad447..0539e4a20 100644 --- a/examples/2.3.x/client-android/kotlin/documentsdb/increment-document-attribute.md +++ b/examples/2.3.x/client-android/kotlin/documentsdb/increment-document-attribute.md @@ -14,8 +14,8 @@ val result = documentsDB.incrementDocumentAttribute( collectionId = "", documentId = "", attribute = "", - value = 1, // (optional) - max = 100, // (optional) + value = 1.0, // (optional) + max = 100.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/documentsdb/list-transactions.md b/examples/2.3.x/client-android/kotlin/documentsdb/list-transactions.md index 46571468e..a1a47a2ac 100644 --- a/examples/2.3.x/client-android/kotlin/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-android/kotlin/documentsdb/list-transactions.md @@ -11,5 +11,6 @@ val documentsDB = DocumentsDB(client) val result = documentsDB.listTransactions( queries = listOf(), // (optional) + total = false, // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/graphql/mutation.md b/examples/2.3.x/client-android/kotlin/graphql/mutation.md index 0cdb78e6d..de686191b 100644 --- a/examples/2.3.x/client-android/kotlin/graphql/mutation.md +++ b/examples/2.3.x/client-android/kotlin/graphql/mutation.md @@ -10,6 +10,8 @@ val client = Client(context) val graphql = Graphql(client) val result = graphql.mutation( - query = mapOf( "a" to "b" ), + query = mapOf( + "query" to "mutation { accountUpdateName(name: \"Walter\") { name } }" + ), ) ``` diff --git a/examples/2.3.x/client-android/kotlin/graphql/query.md b/examples/2.3.x/client-android/kotlin/graphql/query.md index 3359822a5..cd0326dab 100644 --- a/examples/2.3.x/client-android/kotlin/graphql/query.md +++ b/examples/2.3.x/client-android/kotlin/graphql/query.md @@ -10,6 +10,8 @@ val client = Client(context) val graphql = Graphql(client) val result = graphql.query( - query = mapOf( "a" to "b" ), + query = mapOf( + "query" to "query { localeGet { ip } }" + ), ) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-codes.md b/examples/2.3.x/client-android/kotlin/locale/list-codes.md index d70521444..31a89fc9d 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-codes.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-codes.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listCodes() +val result = locale.listCodes( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-continents.md b/examples/2.3.x/client-android/kotlin/locale/list-continents.md index 03e917e43..a5ce1c20f 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-continents.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-continents.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listContinents() +val result = locale.listContinents( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-countries-eu.md b/examples/2.3.x/client-android/kotlin/locale/list-countries-eu.md index a933ed85b..9214428e6 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-countries-eu.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-countries-eu.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listCountriesEU() +val result = locale.listCountriesEU( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-countries-phones.md b/examples/2.3.x/client-android/kotlin/locale/list-countries-phones.md index 8d4c7534e..50355d794 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-countries-phones.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-countries-phones.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listCountriesPhones() +val result = locale.listCountriesPhones( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-countries.md b/examples/2.3.x/client-android/kotlin/locale/list-countries.md index e67b5fe7c..2a762a53c 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-countries.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-countries.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listCountries() +val result = locale.listCountries( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-currencies.md b/examples/2.3.x/client-android/kotlin/locale/list-currencies.md index fb0087d7c..a25d489b4 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-currencies.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-currencies.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listCurrencies() +val result = locale.listCurrencies( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/locale/list-languages.md b/examples/2.3.x/client-android/kotlin/locale/list-languages.md index 30fb65bf0..acaac2e9a 100644 --- a/examples/2.3.x/client-android/kotlin/locale/list-languages.md +++ b/examples/2.3.x/client-android/kotlin/locale/list-languages.md @@ -9,5 +9,7 @@ val client = Client(context) val locale = Locale(client) -val result = locale.listLanguages() +val result = locale.listLanguages( + total = false, // (optional) +) ``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/approve.md b/examples/2.3.x/client-android/kotlin/oauth2/approve.md new file mode 100644 index 000000000..839a862d3 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/approve.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.approve( + grantId = "", + authorizationDetails = "", // (optional) + scope = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/authorize-post.md b/examples/2.3.x/client-android/kotlin/oauth2/authorize-post.md new file mode 100644 index 000000000..88bc4ee00 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/authorize-post.md @@ -0,0 +1,28 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.authorizePost( + clientId = "", // (optional) + redirectUri = "https://example.com", // (optional) + responseType = "", // (optional) + scope = "", // (optional) + state = "", // (optional) + nonce = "", // (optional) + codeChallenge = "", // (optional) + codeChallengeMethod = "s256", // (optional) + prompt = "", // (optional) + maxAge = 0, // (optional) + authorizationDetails = "", // (optional) + resource = "", // (optional) + audience = "", // (optional) + requestUri = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/authorize.md b/examples/2.3.x/client-android/kotlin/oauth2/authorize.md new file mode 100644 index 000000000..4d307e8d8 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/authorize.md @@ -0,0 +1,28 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.authorize( + clientId = "", // (optional) + redirectUri = "https://example.com", // (optional) + responseType = "", // (optional) + scope = "", // (optional) + state = "", // (optional) + nonce = "", // (optional) + codeChallenge = "", // (optional) + codeChallengeMethod = "s256", // (optional) + prompt = "", // (optional) + maxAge = 0, // (optional) + authorizationDetails = "", // (optional) + resource = "", // (optional) + audience = "", // (optional) + requestUri = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/create-device-authorization.md b/examples/2.3.x/client-android/kotlin/oauth2/create-device-authorization.md new file mode 100644 index 000000000..ab307c37a --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/create-device-authorization.md @@ -0,0 +1,19 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createDeviceAuthorization( + clientId = "", // (optional) + scope = "", // (optional) + authorizationDetails = "", // (optional) + resource = "", // (optional) + audience = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/create-grant.md b/examples/2.3.x/client-android/kotlin/oauth2/create-grant.md new file mode 100644 index 000000000..74f57c03d --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/create-grant.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createGrant( + userCode = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/create-par.md b/examples/2.3.x/client-android/kotlin/oauth2/create-par.md new file mode 100644 index 000000000..752c64eb8 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/create-par.md @@ -0,0 +1,27 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createPAR( + clientId = "", + redirectUri = "https://example.com", + responseType = "code", + scope = "", // (optional) + state = "", // (optional) + nonce = "", // (optional) + codeChallenge = "", // (optional) + codeChallengeMethod = "s256", // (optional) + prompt = "", // (optional) + maxAge = 0, // (optional) + authorizationDetails = "", // (optional) + resource = "", // (optional) + audience = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/create-token.md b/examples/2.3.x/client-android/kotlin/oauth2/create-token.md new file mode 100644 index 000000000..5e23344f9 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/create-token.md @@ -0,0 +1,24 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createToken( + grantType = "", + code = "", // (optional) + refreshToken = "", // (optional) + deviceCode = "", // (optional) + clientId = "", // (optional) + clientSecret = "", // (optional) + codeVerifier = "", // (optional) + redirectUri = "https://example.com", // (optional) + resource = "", // (optional) + audience = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/get-grant.md b/examples/2.3.x/client-android/kotlin/oauth2/get-grant.md new file mode 100644 index 000000000..4e5516be2 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/get-grant.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.getGrant( + grantId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/list-organizations.md b/examples/2.3.x/client-android/kotlin/oauth2/list-organizations.md new file mode 100644 index 000000000..463ebec01 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/list-organizations.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.listOrganizations( + limit = 1, // (optional) + offset = 0, // (optional) + search = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/list-projects.md b/examples/2.3.x/client-android/kotlin/oauth2/list-projects.md new file mode 100644 index 000000000..2105828f6 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/list-projects.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.listProjects( + limit = 1, // (optional) + offset = 0, // (optional) + search = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/logout-post.md b/examples/2.3.x/client-android/kotlin/oauth2/logout-post.md new file mode 100644 index 000000000..48bd14ee4 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/logout-post.md @@ -0,0 +1,20 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.logoutPost( + idTokenHint = "", // (optional) + logoutHint = "", // (optional) + clientId = "", // (optional) + postLogoutRedirectUri = "https://example.com", // (optional) + state = "", // (optional) + uiLocales = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/logout.md b/examples/2.3.x/client-android/kotlin/oauth2/logout.md new file mode 100644 index 000000000..08f2c1c1e --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/logout.md @@ -0,0 +1,20 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.logout( + idTokenHint = "", // (optional) + logoutHint = "", // (optional) + clientId = "", // (optional) + postLogoutRedirectUri = "https://example.com", // (optional) + state = "", // (optional) + uiLocales = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/reject.md b/examples/2.3.x/client-android/kotlin/oauth2/reject.md new file mode 100644 index 000000000..f4392496c --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/reject.md @@ -0,0 +1,15 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.reject( + grantId = "", +) +``` diff --git a/examples/2.3.x/client-android/kotlin/oauth2/revoke.md b/examples/2.3.x/client-android/kotlin/oauth2/revoke.md new file mode 100644 index 000000000..f5ef08b76 --- /dev/null +++ b/examples/2.3.x/client-android/kotlin/oauth2/revoke.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.revoke( + token = "", + tokenTypeHint = "access_token", // (optional) + clientId = "", // (optional) + clientSecret = "", // (optional) +) +``` diff --git a/examples/2.3.x/client-android/kotlin/storage/get-file-preview.md b/examples/2.3.x/client-android/kotlin/storage/get-file-preview.md index e2d2851d7..bd106928f 100644 --- a/examples/2.3.x/client-android/kotlin/storage/get-file-preview.md +++ b/examples/2.3.x/client-android/kotlin/storage/get-file-preview.md @@ -21,7 +21,7 @@ val result = storage.getFilePreview( borderWidth = 0, // (optional) borderColor = "FFFFFF", // (optional) borderRadius = 0, // (optional) - opacity = 0, // (optional) + opacity = 0.0, // (optional) rotation = -360, // (optional) background = "FFFFFF", // (optional) output = ImageFormat.JPG, // (optional) diff --git a/examples/2.3.x/client-android/kotlin/tablesdb/decrement-row-column.md b/examples/2.3.x/client-android/kotlin/tablesdb/decrement-row-column.md index 157c3d118..b8288ad3b 100644 --- a/examples/2.3.x/client-android/kotlin/tablesdb/decrement-row-column.md +++ b/examples/2.3.x/client-android/kotlin/tablesdb/decrement-row-column.md @@ -14,8 +14,8 @@ val result = tablesDB.decrementRowColumn( tableId = "", rowId = "", column = "", - value = 1, // (optional) - min = 0, // (optional) + value = 1.0, // (optional) + min = 0.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/tablesdb/increment-row-column.md b/examples/2.3.x/client-android/kotlin/tablesdb/increment-row-column.md index 802c6a2b1..1aae1ffcc 100644 --- a/examples/2.3.x/client-android/kotlin/tablesdb/increment-row-column.md +++ b/examples/2.3.x/client-android/kotlin/tablesdb/increment-row-column.md @@ -14,8 +14,8 @@ val result = tablesDB.incrementRowColumn( tableId = "", rowId = "", column = "", - value = 1, // (optional) - max = 100, // (optional) + value = 1.0, // (optional) + max = 100.0, // (optional) transactionId = "", // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/tablesdb/list-transactions.md b/examples/2.3.x/client-android/kotlin/tablesdb/list-transactions.md index 03c9d5b4a..b680ee15a 100644 --- a/examples/2.3.x/client-android/kotlin/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-android/kotlin/tablesdb/list-transactions.md @@ -11,5 +11,6 @@ val tablesDB = TablesDB(client) val result = tablesDB.listTransactions( queries = listOf(), // (optional) + total = false, // (optional) ) ``` diff --git a/examples/2.3.x/client-android/kotlin/teams/create-membership.md b/examples/2.3.x/client-android/kotlin/teams/create-membership.md index e5289e645..219119af3 100644 --- a/examples/2.3.x/client-android/kotlin/teams/create-membership.md +++ b/examples/2.3.x/client-android/kotlin/teams/create-membership.md @@ -11,7 +11,7 @@ val teams = Teams(client) val result = teams.createMembership( teamId = "", - roles = listOf(), + roles = listOf("editor"), email = "email@example.com", // (optional) userId = "", // (optional) phone = "+12065550100", // (optional) diff --git a/examples/2.3.x/client-android/kotlin/teams/update-membership.md b/examples/2.3.x/client-android/kotlin/teams/update-membership.md index 6e721d4ec..d9e39d7bf 100644 --- a/examples/2.3.x/client-android/kotlin/teams/update-membership.md +++ b/examples/2.3.x/client-android/kotlin/teams/update-membership.md @@ -12,6 +12,6 @@ val teams = Teams(client) val result = teams.updateMembership( teamId = "", membershipId = "", - roles = listOf(), + roles = listOf("editor"), ) ``` diff --git a/examples/2.3.x/client-android/kotlin/vectorsdb/create-operations.md b/examples/2.3.x/client-android/kotlin/vectorsdb/create-operations.md index 1a2908af9..8bd201a32 100644 --- a/examples/2.3.x/client-android/kotlin/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-android/kotlin/vectorsdb/create-operations.md @@ -17,7 +17,10 @@ val result = vectorsDB.createOperations( "collectionId" to "", "documentId" to "", "data" to mapOf( - "name" to "Walter O'Brien" + "embeddings" to listOf(0.12, -0.55, 0.88, 1.02), + "metadata" to mapOf( + "name" to "First document" + ) ) )), // (optional) ) diff --git a/examples/2.3.x/client-android/kotlin/vectorsdb/list-transactions.md b/examples/2.3.x/client-android/kotlin/vectorsdb/list-transactions.md index 97981c01a..76fb10e3e 100644 --- a/examples/2.3.x/client-android/kotlin/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-android/kotlin/vectorsdb/list-transactions.md @@ -11,5 +11,6 @@ val vectorsDB = VectorsDB(client) val result = vectorsDB.listTransactions( queries = listOf(), // (optional) + total = false, // (optional) ) ``` diff --git a/examples/2.3.x/client-apple/examples/account/create-email-password-session.md b/examples/2.3.x/client-apple/examples/account/create-email-password-session.md index 7233b7399..ab87b57d8 100644 --- a/examples/2.3.x/client-apple/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-apple/examples/account/create-email-password-session.md @@ -9,7 +9,8 @@ let account = Account(client) let session = try await account.createEmailPasswordSession( email: "email@example.com", - password: "password" + password: "password", + duration: 60 // optional ) ``` diff --git a/examples/2.3.x/client-apple/examples/account/delete-sessions.md b/examples/2.3.x/client-apple/examples/account/delete-sessions.md index 7e524f2d6..73d93d1b1 100644 --- a/examples/2.3.x/client-apple/examples/account/delete-sessions.md +++ b/examples/2.3.x/client-apple/examples/account/delete-sessions.md @@ -7,6 +7,8 @@ let client = Client() let account = Account(client) -let result = try await account.deleteSessions() +let result = try await account.deleteSessions( + current: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/account/list-sessions.md b/examples/2.3.x/client-apple/examples/account/list-sessions.md index 2932881f0..867a952b1 100644 --- a/examples/2.3.x/client-apple/examples/account/list-sessions.md +++ b/examples/2.3.x/client-apple/examples/account/list-sessions.md @@ -7,6 +7,8 @@ let client = Client() let account = Account(client) -let sessionList = try await account.listSessions() +let sessionList = try await account.listSessions( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/analytics/create-event.md b/examples/2.3.x/client-apple/examples/analytics/create-event.md new file mode 100644 index 000000000..5b6173d5c --- /dev/null +++ b/examples/2.3.x/client-apple/examples/analytics/create-event.md @@ -0,0 +1,26 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let analytics = Analytics(client) + +let result = try await analytics.createEvent( + propertyId: "", + name: "", + url: "https://example.com", + domain: "", // optional + referrer: "", // optional + screenWidth: 0, // optional + sessionHash: "", // optional + scrollDepth: 0, // optional + engagementTime: 0, // optional + props: [], // optional + userId: "", // optional + ip: "", // optional + userAgent: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/create-installation-token.md b/examples/2.3.x/client-apple/examples/apps/create-installation-token.md new file mode 100644 index 000000000..3530dd787 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/create-installation-token.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let oauth2Token = try await apps.createInstallationToken( + appId: "", + installationId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/create-key.md b/examples/2.3.x/client-apple/examples/apps/create-key.md new file mode 100644 index 000000000..c8cd1f2ee --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/create-key.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appKey = try await apps.createKey( + appId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/create-secret.md b/examples/2.3.x/client-apple/examples/apps/create-secret.md new file mode 100644 index 000000000..5fe4c5ec4 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/create-secret.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appSecretPlaintext = try await apps.createSecret( + appId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/create.md b/examples/2.3.x/client-apple/examples/apps/create.md new file mode 100644 index 000000000..91b396929 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/create.md @@ -0,0 +1,32 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let app = try await apps.create( + appId: "", + name: "", + redirectUris: [], + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: [], // optional + tagline: "", // optional + tags: [], // optional + images: [], // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: "public", // optional + deviceFlow: false, // optional + teamId: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/delete-installation.md b/examples/2.3.x/client-apple/examples/apps/delete-installation.md new file mode 100644 index 000000000..873679cfd --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/delete-installation.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let result = try await apps.deleteInstallation( + appId: "", + installationId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/delete-key.md b/examples/2.3.x/client-apple/examples/apps/delete-key.md new file mode 100644 index 000000000..56c180e81 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/delete-key.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let result = try await apps.deleteKey( + appId: "", + keyId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/delete-secret.md b/examples/2.3.x/client-apple/examples/apps/delete-secret.md new file mode 100644 index 000000000..66af5a54c --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/delete-secret.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let result = try await apps.deleteSecret( + appId: "", + secretId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/delete-tokens.md b/examples/2.3.x/client-apple/examples/apps/delete-tokens.md new file mode 100644 index 000000000..89e73297c --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/delete-tokens.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let result = try await apps.deleteTokens( + appId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/delete.md b/examples/2.3.x/client-apple/examples/apps/delete.md new file mode 100644 index 000000000..2229ea2fc --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/delete.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let result = try await apps.delete( + appId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/get-installation.md b/examples/2.3.x/client-apple/examples/apps/get-installation.md new file mode 100644 index 000000000..f53e7a6fc --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/get-installation.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appInstallation = try await apps.getInstallation( + appId: "", + installationId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/get-key.md b/examples/2.3.x/client-apple/examples/apps/get-key.md new file mode 100644 index 000000000..8cef80129 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/get-key.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appKey = try await apps.getKey( + appId: "", + keyId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/get-secret.md b/examples/2.3.x/client-apple/examples/apps/get-secret.md new file mode 100644 index 000000000..215dcb6ea --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/get-secret.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appSecret = try await apps.getSecret( + appId: "", + secretId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/get.md b/examples/2.3.x/client-apple/examples/apps/get.md new file mode 100644 index 000000000..27ebc2760 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/get.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let app = try await apps.get( + appId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-apple/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..cb1500ed9 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list-installation-scopes.md @@ -0,0 +1,12 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appScopeList = try await apps.listInstallationScopes() + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list-installations.md b/examples/2.3.x/client-apple/examples/apps/list-installations.md new file mode 100644 index 000000000..e1729c0be --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list-installations.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appInstallationList = try await apps.listInstallations( + appId: "", + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list-keys.md b/examples/2.3.x/client-apple/examples/apps/list-keys.md new file mode 100644 index 000000000..5c4f23f81 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list-keys.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appKeyList = try await apps.listKeys( + appId: "", + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-apple/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..be4bbcd8d --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,12 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appScopeList = try await apps.listOAuth2Scopes() + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list-secrets.md b/examples/2.3.x/client-apple/examples/apps/list-secrets.md new file mode 100644 index 000000000..a956b134d --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list-secrets.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appSecretList = try await apps.listSecrets( + appId: "", + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/list.md b/examples/2.3.x/client-apple/examples/apps/list.md new file mode 100644 index 000000000..7b9973172 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/list.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let appsList = try await apps.list( + queries: [], // optional + total: false // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/update-team.md b/examples/2.3.x/client-apple/examples/apps/update-team.md new file mode 100644 index 000000000..09b24dc89 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/update-team.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let app = try await apps.updateTeam( + appId: "", + teamId: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/apps/update.md b/examples/2.3.x/client-apple/examples/apps/update.md new file mode 100644 index 000000000..4ded9ee5c --- /dev/null +++ b/examples/2.3.x/client-apple/examples/apps/update.md @@ -0,0 +1,33 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let apps = Apps(client) + +let app = try await apps.update( + appId: "", + name: "", + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: [], // optional + tagline: "", // optional + tags: [], // optional + images: [], // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: "public", // optional + deviceFlow: false, // optional + installationScopes: [], // optional + installationRedirectUrl: "https://example.com" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/avatars/delete-photo.md b/examples/2.3.x/client-apple/examples/avatars/delete-photo.md new file mode 100644 index 000000000..e6e00e224 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/avatars/delete-photo.md @@ -0,0 +1,12 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let avatars = Avatars(client) + +let result = try await avatars.deletePhoto() + +``` diff --git a/examples/2.3.x/client-apple/examples/avatars/get-screenshot.md b/examples/2.3.x/client-apple/examples/avatars/get-screenshot.md index 7711677f4..929af53b7 100644 --- a/examples/2.3.x/client-apple/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/client-apple/examples/avatars/get-screenshot.md @@ -11,8 +11,7 @@ let avatars = Avatars(client) let bytes = try await avatars.getScreenshot( url: "https://example.com", headers: [ - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" ], // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/client-apple/examples/avatars/update-photo.md b/examples/2.3.x/client-apple/examples/avatars/update-photo.md new file mode 100644 index 000000000..64595da5e --- /dev/null +++ b/examples/2.3.x/client-apple/examples/avatars/update-photo.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let avatars = Avatars(client) + +let account = try await avatars.updatePhoto( + file: InputFile.fromPath("file.png") +) + +``` diff --git a/examples/2.3.x/client-apple/examples/databases/list-transactions.md b/examples/2.3.x/client-apple/examples/databases/list-transactions.md index 15c823f51..e0c047b29 100644 --- a/examples/2.3.x/client-apple/examples/databases/list-transactions.md +++ b/examples/2.3.x/client-apple/examples/databases/list-transactions.md @@ -8,7 +8,8 @@ let client = Client() let databases = Databases(client) let transactionList = try await databases.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/client-apple/examples/documentsdb/create-documents.md b/examples/2.3.x/client-apple/examples/documentsdb/create-documents.md index c170200b7..3f7938aa2 100644 --- a/examples/2.3.x/client-apple/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-apple/examples/documentsdb/create-documents.md @@ -10,7 +10,16 @@ let documentsDB = DocumentsDB(client) let documentList = try await documentsDB.createDocuments( databaseId: "", collectionId: "", - documents: [], + documents: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "" // optional ) diff --git a/examples/2.3.x/client-apple/examples/documentsdb/list-transactions.md b/examples/2.3.x/client-apple/examples/documentsdb/list-transactions.md index 0fe1ca767..23e2de9f5 100644 --- a/examples/2.3.x/client-apple/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-apple/examples/documentsdb/list-transactions.md @@ -8,7 +8,8 @@ let client = Client() let documentsDB = DocumentsDB(client) let transactionList = try await documentsDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/client-apple/examples/graphql/mutation.md b/examples/2.3.x/client-apple/examples/graphql/mutation.md index 86894fea9..d22c2cd62 100644 --- a/examples/2.3.x/client-apple/examples/graphql/mutation.md +++ b/examples/2.3.x/client-apple/examples/graphql/mutation.md @@ -8,7 +8,9 @@ let client = Client() let graphql = Graphql(client) let any = try await graphql.mutation( - query: [:] + query: [ + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + ] ) ``` diff --git a/examples/2.3.x/client-apple/examples/graphql/query.md b/examples/2.3.x/client-apple/examples/graphql/query.md index e01c78df1..c14db180b 100644 --- a/examples/2.3.x/client-apple/examples/graphql/query.md +++ b/examples/2.3.x/client-apple/examples/graphql/query.md @@ -8,7 +8,9 @@ let client = Client() let graphql = Graphql(client) let any = try await graphql.query( - query: [:] + query: [ + "query": "query { localeGet { ip } }" + ] ) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-codes.md b/examples/2.3.x/client-apple/examples/locale/list-codes.md index d524b5e2a..9eab12d8e 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-codes.md +++ b/examples/2.3.x/client-apple/examples/locale/list-codes.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let localeCodeList = try await locale.listCodes() +let localeCodeList = try await locale.listCodes( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-continents.md b/examples/2.3.x/client-apple/examples/locale/list-continents.md index dfad5ced7..16060964f 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-continents.md +++ b/examples/2.3.x/client-apple/examples/locale/list-continents.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let continentList = try await locale.listContinents() +let continentList = try await locale.listContinents( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-countries-eu.md b/examples/2.3.x/client-apple/examples/locale/list-countries-eu.md index ee6a97f92..ecff8166e 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/client-apple/examples/locale/list-countries-eu.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let countryList = try await locale.listCountriesEU() +let countryList = try await locale.listCountriesEU( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-countries-phones.md b/examples/2.3.x/client-apple/examples/locale/list-countries-phones.md index d9267a684..eb673f8e2 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/client-apple/examples/locale/list-countries-phones.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let phoneList = try await locale.listCountriesPhones() +let phoneList = try await locale.listCountriesPhones( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-countries.md b/examples/2.3.x/client-apple/examples/locale/list-countries.md index 2b79063db..be97621fa 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-countries.md +++ b/examples/2.3.x/client-apple/examples/locale/list-countries.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let countryList = try await locale.listCountries() +let countryList = try await locale.listCountries( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-currencies.md b/examples/2.3.x/client-apple/examples/locale/list-currencies.md index ccd5c92e1..5842babbc 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-currencies.md +++ b/examples/2.3.x/client-apple/examples/locale/list-currencies.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let currencyList = try await locale.listCurrencies() +let currencyList = try await locale.listCurrencies( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/locale/list-languages.md b/examples/2.3.x/client-apple/examples/locale/list-languages.md index 7132b1bfe..7528895db 100644 --- a/examples/2.3.x/client-apple/examples/locale/list-languages.md +++ b/examples/2.3.x/client-apple/examples/locale/list-languages.md @@ -7,6 +7,8 @@ let client = Client() let locale = Locale(client) -let languageList = try await locale.listLanguages() +let languageList = try await locale.listLanguages( + total: false // optional +) ``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/approve.md b/examples/2.3.x/client-apple/examples/oauth2/approve.md new file mode 100644 index 000000000..28fff41a4 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/approve.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Approve = try await oauth2.approve( + grant_id: "", + authorization_details: "", // optional + scope: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/authorize-post.md b/examples/2.3.x/client-apple/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..f3eee38a4 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/authorize-post.md @@ -0,0 +1,27 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Authorize = try await oauth2.authorizePost( + client_id: "", // optional + redirect_uri: "https://example.com", // optional + response_type: "", // optional + scope: "", // optional + state: "", // optional + nonce: "", // optional + code_challenge: "", // optional + code_challenge_method: "s256", // optional + prompt: "", // optional + max_age: 0, // optional + authorization_details: "", // optional + resource: "", // optional + audience: "", // optional + request_uri: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/authorize.md b/examples/2.3.x/client-apple/examples/oauth2/authorize.md new file mode 100644 index 000000000..fb751a9f5 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/authorize.md @@ -0,0 +1,27 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Authorize = try await oauth2.authorize( + client_id: "", // optional + redirect_uri: "https://example.com", // optional + response_type: "", // optional + scope: "", // optional + state: "", // optional + nonce: "", // optional + code_challenge: "", // optional + code_challenge_method: "s256", // optional + prompt: "", // optional + max_age: 0, // optional + authorization_details: "", // optional + resource: "", // optional + audience: "", // optional + request_uri: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-apple/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..d7beeb5f0 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/create-device-authorization.md @@ -0,0 +1,18 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2DeviceAuthorization = try await oauth2.createDeviceAuthorization( + client_id: "", // optional + scope: "", // optional + authorization_details: "", // optional + resource: "", // optional + audience: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/create-grant.md b/examples/2.3.x/client-apple/examples/oauth2/create-grant.md new file mode 100644 index 000000000..0f0126c5d --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/create-grant.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Grant = try await oauth2.createGrant( + user_code: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/create-par.md b/examples/2.3.x/client-apple/examples/oauth2/create-par.md new file mode 100644 index 000000000..2aa8e304e --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/create-par.md @@ -0,0 +1,26 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2PAR = try await oauth2.createPAR( + client_id: "", + redirect_uri: "https://example.com", + response_type: "code", + scope: "", // optional + state: "", // optional + nonce: "", // optional + code_challenge: "", // optional + code_challenge_method: "s256", // optional + prompt: "", // optional + max_age: 0, // optional + authorization_details: "", // optional + resource: "", // optional + audience: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/create-token.md b/examples/2.3.x/client-apple/examples/oauth2/create-token.md new file mode 100644 index 000000000..d604aef76 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/create-token.md @@ -0,0 +1,23 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Token = try await oauth2.createToken( + grant_type: "", + code: "", // optional + refresh_token: "", // optional + device_code: "", // optional + client_id: "", // optional + client_secret: "", // optional + code_verifier: "", // optional + redirect_uri: "https://example.com", // optional + resource: "", // optional + audience: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/get-grant.md b/examples/2.3.x/client-apple/examples/oauth2/get-grant.md new file mode 100644 index 000000000..c87e7832e --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/get-grant.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Grant = try await oauth2.getGrant( + grant_id: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/list-organizations.md b/examples/2.3.x/client-apple/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..f2ffc1eca --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/list-organizations.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2OrganizationList = try await oauth2.listOrganizations( + limit: 1, // optional + offset: 0, // optional + search: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/list-projects.md b/examples/2.3.x/client-apple/examples/oauth2/list-projects.md new file mode 100644 index 000000000..bbccf0ffd --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/list-projects.md @@ -0,0 +1,16 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2ProjectList = try await oauth2.listProjects( + limit: 1, // optional + offset: 0, // optional + search: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/logout-post.md b/examples/2.3.x/client-apple/examples/oauth2/logout-post.md new file mode 100644 index 000000000..125c26880 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/logout-post.md @@ -0,0 +1,19 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let result = try await oauth2.logoutPost( + id_token_hint: "", // optional + logout_hint: "", // optional + client_id: "", // optional + post_logout_redirect_uri: "https://example.com", // optional + state: "", // optional + ui_locales: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/logout.md b/examples/2.3.x/client-apple/examples/oauth2/logout.md new file mode 100644 index 000000000..188d7e350 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/logout.md @@ -0,0 +1,19 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let result = try await oauth2.logout( + id_token_hint: "", // optional + logout_hint: "", // optional + client_id: "", // optional + post_logout_redirect_uri: "https://example.com", // optional + state: "", // optional + ui_locales: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/reject.md b/examples/2.3.x/client-apple/examples/oauth2/reject.md new file mode 100644 index 000000000..f37be5818 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/reject.md @@ -0,0 +1,14 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Reject = try await oauth2.reject( + grant_id: "" +) + +``` diff --git a/examples/2.3.x/client-apple/examples/oauth2/revoke.md b/examples/2.3.x/client-apple/examples/oauth2/revoke.md new file mode 100644 index 000000000..e9a89ffa6 --- /dev/null +++ b/examples/2.3.x/client-apple/examples/oauth2/revoke.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let result = try await oauth2.revoke( + token: "", + token_type_hint: "access_token", // optional + client_id: "", // optional + client_secret: "" // optional +) + +``` diff --git a/examples/2.3.x/client-apple/examples/tablesdb/list-transactions.md b/examples/2.3.x/client-apple/examples/tablesdb/list-transactions.md index 655109394..d814acb45 100644 --- a/examples/2.3.x/client-apple/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-apple/examples/tablesdb/list-transactions.md @@ -8,7 +8,8 @@ let client = Client() let tablesDB = TablesDB(client) let transactionList = try await tablesDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/client-apple/examples/teams/create-membership.md b/examples/2.3.x/client-apple/examples/teams/create-membership.md index 124765abf..dd089a0f5 100644 --- a/examples/2.3.x/client-apple/examples/teams/create-membership.md +++ b/examples/2.3.x/client-apple/examples/teams/create-membership.md @@ -9,7 +9,9 @@ let teams = Teams(client) let membership = try await teams.createMembership( teamId: "", - roles: [], + roles: [ + "editor" + ], email: "email@example.com", // optional userId: "", // optional phone: "+12065550100", // optional diff --git a/examples/2.3.x/client-apple/examples/teams/update-membership.md b/examples/2.3.x/client-apple/examples/teams/update-membership.md index 5663848d1..d9173eb3e 100644 --- a/examples/2.3.x/client-apple/examples/teams/update-membership.md +++ b/examples/2.3.x/client-apple/examples/teams/update-membership.md @@ -10,7 +10,9 @@ let teams = Teams(client) let membership = try await teams.updateMembership( teamId: "", membershipId: "", - roles: [] + roles: [ + "editor" + ] ) ``` diff --git a/examples/2.3.x/client-apple/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-apple/examples/vectorsdb/create-operations.md index b48c45983..8100d0b1c 100644 --- a/examples/2.3.x/client-apple/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-apple/examples/vectorsdb/create-operations.md @@ -16,7 +16,15 @@ let transaction = try await vectorsDB.createOperations( "collectionId": "", "documentId": "", "data": [ - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": [ + "name": "First document" + ] ] ] ] // optional diff --git a/examples/2.3.x/client-apple/examples/vectorsdb/list-transactions.md b/examples/2.3.x/client-apple/examples/vectorsdb/list-transactions.md index 26aa4f467..b0363250c 100644 --- a/examples/2.3.x/client-apple/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-apple/examples/vectorsdb/list-transactions.md @@ -8,7 +8,8 @@ let client = Client() let vectorsDB = VectorsDB(client) let transactionList = try await vectorsDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/client-flutter/examples/account/create-email-password-session.md b/examples/2.3.x/client-flutter/examples/account/create-email-password-session.md index d444996d9..c27fb3281 100644 --- a/examples/2.3.x/client-flutter/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-flutter/examples/account/create-email-password-session.md @@ -10,5 +10,6 @@ Account account = Account(client); Session result = await account.createEmailPasswordSession( email: 'email@example.com', password: 'password', + duration: 60, // optional ); ``` diff --git a/examples/2.3.x/client-flutter/examples/account/delete-sessions.md b/examples/2.3.x/client-flutter/examples/account/delete-sessions.md index e8e8ba1af..388661a98 100644 --- a/examples/2.3.x/client-flutter/examples/account/delete-sessions.md +++ b/examples/2.3.x/client-flutter/examples/account/delete-sessions.md @@ -7,5 +7,7 @@ Client client = Client() Account account = Account(client); -await account.deleteSessions(); +await account.deleteSessions( + current: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/account/list-sessions.md b/examples/2.3.x/client-flutter/examples/account/list-sessions.md index 18db93bbb..3b148a7b2 100644 --- a/examples/2.3.x/client-flutter/examples/account/list-sessions.md +++ b/examples/2.3.x/client-flutter/examples/account/list-sessions.md @@ -7,5 +7,7 @@ Client client = Client() Account account = Account(client); -SessionList result = await account.listSessions(); +SessionList result = await account.listSessions( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/analytics/create-event.md b/examples/2.3.x/client-flutter/examples/analytics/create-event.md new file mode 100644 index 000000000..a299877e3 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/analytics/create-event.md @@ -0,0 +1,25 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Analytics analytics = Analytics(client); + + result = await analytics.createEvent( + propertyId: '', + name: '', + url: 'https://example.com', + domain: '', // optional + referrer: '', // optional + screenWidth: 0, // optional + sessionHash: '', // optional + scrollDepth: 0, // optional + engagementTime: 0, // optional + props: [], // optional + userId: '', // optional + ip: '', // optional + userAgent: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/create-installation-token.md b/examples/2.3.x/client-flutter/examples/apps/create-installation-token.md new file mode 100644 index 000000000..868044ba6 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/create-installation-token.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +Oauth2Token result = await apps.createInstallationToken( + appId: '', + installationId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/create-key.md b/examples/2.3.x/client-flutter/examples/apps/create-key.md new file mode 100644 index 000000000..b22a1bd63 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/create-key.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppKey result = await apps.createKey( + appId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/create-secret.md b/examples/2.3.x/client-flutter/examples/apps/create-secret.md new file mode 100644 index 000000000..654f1eb53 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/create-secret.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppSecretPlaintext result = await apps.createSecret( + appId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/create.md b/examples/2.3.x/client-flutter/examples/apps/create.md new file mode 100644 index 000000000..77bd1430d --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/create.md @@ -0,0 +1,31 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +App result = await apps.create( + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/delete-installation.md b/examples/2.3.x/client-flutter/examples/apps/delete-installation.md new file mode 100644 index 000000000..55707ce0a --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/delete-installation.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +await apps.deleteInstallation( + appId: '', + installationId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/delete-key.md b/examples/2.3.x/client-flutter/examples/apps/delete-key.md new file mode 100644 index 000000000..e6bd40657 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/delete-key.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +await apps.deleteKey( + appId: '', + keyId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/delete-secret.md b/examples/2.3.x/client-flutter/examples/apps/delete-secret.md new file mode 100644 index 000000000..0e7a15065 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/delete-secret.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +await apps.deleteSecret( + appId: '', + secretId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/delete-tokens.md b/examples/2.3.x/client-flutter/examples/apps/delete-tokens.md new file mode 100644 index 000000000..cdba07ee4 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/delete-tokens.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +await apps.deleteTokens( + appId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/delete.md b/examples/2.3.x/client-flutter/examples/apps/delete.md new file mode 100644 index 000000000..e56502a69 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/delete.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +await apps.delete( + appId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/get-installation.md b/examples/2.3.x/client-flutter/examples/apps/get-installation.md new file mode 100644 index 000000000..e3364ae8c --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/get-installation.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppInstallation result = await apps.getInstallation( + appId: '', + installationId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/get-key.md b/examples/2.3.x/client-flutter/examples/apps/get-key.md new file mode 100644 index 000000000..3e0a79791 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/get-key.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppKey result = await apps.getKey( + appId: '', + keyId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/get-secret.md b/examples/2.3.x/client-flutter/examples/apps/get-secret.md new file mode 100644 index 000000000..63d047aac --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/get-secret.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppSecret result = await apps.getSecret( + appId: '', + secretId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/get.md b/examples/2.3.x/client-flutter/examples/apps/get.md new file mode 100644 index 000000000..be860f32d --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/get.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +App result = await apps.get( + appId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-flutter/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..de20ba960 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list-installation-scopes.md @@ -0,0 +1,11 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppScopeList result = await apps.listInstallationScopes(); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list-installations.md b/examples/2.3.x/client-flutter/examples/apps/list-installations.md new file mode 100644 index 000000000..940de5d37 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list-installations.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppInstallationList result = await apps.listInstallations( + appId: '', + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list-keys.md b/examples/2.3.x/client-flutter/examples/apps/list-keys.md new file mode 100644 index 000000000..237d14875 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list-keys.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppKeyList result = await apps.listKeys( + appId: '', + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-flutter/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..2ef099dff --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,11 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppScopeList result = await apps.listOAuth2Scopes(); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list-secrets.md b/examples/2.3.x/client-flutter/examples/apps/list-secrets.md new file mode 100644 index 000000000..244ed4321 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list-secrets.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppSecretList result = await apps.listSecrets( + appId: '', + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/list.md b/examples/2.3.x/client-flutter/examples/apps/list.md new file mode 100644 index 000000000..78f88ba1b --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/list.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +AppsList result = await apps.list( + queries: [], // optional + total: false, // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/update-team.md b/examples/2.3.x/client-flutter/examples/apps/update-team.md new file mode 100644 index 000000000..6e70778c1 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/update-team.md @@ -0,0 +1,14 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +App result = await apps.updateTeam( + appId: '', + teamId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/apps/update.md b/examples/2.3.x/client-flutter/examples/apps/update.md new file mode 100644 index 000000000..08ee2218c --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/apps/update.md @@ -0,0 +1,32 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Apps apps = Apps(client); + +App result = await apps.update( + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false, // optional + installationScopes: [], // optional + installationRedirectUrl: 'https://example.com', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/avatars/delete-photo.md b/examples/2.3.x/client-flutter/examples/avatars/delete-photo.md new file mode 100644 index 000000000..390a31920 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/avatars/delete-photo.md @@ -0,0 +1,11 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Avatars avatars = Avatars(client); + +await avatars.deletePhoto(); +``` diff --git a/examples/2.3.x/client-flutter/examples/avatars/get-screenshot.md b/examples/2.3.x/client-flutter/examples/avatars/get-screenshot.md index daa38d171..1a22a6922 100644 --- a/examples/2.3.x/client-flutter/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/client-flutter/examples/avatars/get-screenshot.md @@ -15,8 +15,7 @@ Avatars avatars = Avatars(client); Uint8List bytes = await avatars.getScreenshot( url: 'https://example.com', headers: { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional @@ -46,8 +45,7 @@ FutureBuilder( future: avatars.getScreenshot( url: 'https://example.com', headers: { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/client-flutter/examples/avatars/update-photo.md b/examples/2.3.x/client-flutter/examples/avatars/update-photo.md new file mode 100644 index 000000000..c2431d7ac --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/avatars/update-photo.md @@ -0,0 +1,14 @@ +```dart +import 'dart:io'; +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Avatars avatars = Avatars(client); + +Account result = await avatars.updatePhoto( + file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), +); +``` diff --git a/examples/2.3.x/client-flutter/examples/databases/list-transactions.md b/examples/2.3.x/client-flutter/examples/databases/list-transactions.md index ca9ff6fb1..9ab664217 100644 --- a/examples/2.3.x/client-flutter/examples/databases/list-transactions.md +++ b/examples/2.3.x/client-flutter/examples/databases/list-transactions.md @@ -9,5 +9,6 @@ Databases databases = Databases(client); TransactionList result = await databases.listTransactions( queries: [], // optional + total: false, // optional ); ``` diff --git a/examples/2.3.x/client-flutter/examples/documentsdb/create-documents.md b/examples/2.3.x/client-flutter/examples/documentsdb/create-documents.md index 6a5083730..95dd8676e 100644 --- a/examples/2.3.x/client-flutter/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-flutter/examples/documentsdb/create-documents.md @@ -10,7 +10,16 @@ DocumentsDB documentsDB = DocumentsDB(client); DocumentList result = await documentsDB.createDocuments( databaseId: '', collectionId: '', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '', // optional ); ``` diff --git a/examples/2.3.x/client-flutter/examples/documentsdb/list-transactions.md b/examples/2.3.x/client-flutter/examples/documentsdb/list-transactions.md index d2c09525d..f6ab157d6 100644 --- a/examples/2.3.x/client-flutter/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-flutter/examples/documentsdb/list-transactions.md @@ -9,5 +9,6 @@ DocumentsDB documentsDB = DocumentsDB(client); TransactionList result = await documentsDB.listTransactions( queries: [], // optional + total: false, // optional ); ``` diff --git a/examples/2.3.x/client-flutter/examples/graphql/mutation.md b/examples/2.3.x/client-flutter/examples/graphql/mutation.md index 7ec3ba75f..dca641597 100644 --- a/examples/2.3.x/client-flutter/examples/graphql/mutation.md +++ b/examples/2.3.x/client-flutter/examples/graphql/mutation.md @@ -8,6 +8,8 @@ Client client = Client() Graphql graphql = Graphql(client); Any result = await graphql.mutation( - query: {}, + query: { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + }, ); ``` diff --git a/examples/2.3.x/client-flutter/examples/graphql/query.md b/examples/2.3.x/client-flutter/examples/graphql/query.md index cac705e5a..668c18457 100644 --- a/examples/2.3.x/client-flutter/examples/graphql/query.md +++ b/examples/2.3.x/client-flutter/examples/graphql/query.md @@ -8,6 +8,8 @@ Client client = Client() Graphql graphql = Graphql(client); Any result = await graphql.query( - query: {}, + query: { + "query": "query { localeGet { ip } }" + }, ); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-codes.md b/examples/2.3.x/client-flutter/examples/locale/list-codes.md index 23c375ba3..2161cf85c 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-codes.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-codes.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -LocaleCodeList result = await locale.listCodes(); +LocaleCodeList result = await locale.listCodes( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-continents.md b/examples/2.3.x/client-flutter/examples/locale/list-continents.md index 349be7951..271db2adc 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-continents.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-continents.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -ContinentList result = await locale.listContinents(); +ContinentList result = await locale.listContinents( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-countries-eu.md b/examples/2.3.x/client-flutter/examples/locale/list-countries-eu.md index f775aa2e7..3b3d69276 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-countries-eu.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountriesEU(); +CountryList result = await locale.listCountriesEU( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-countries-phones.md b/examples/2.3.x/client-flutter/examples/locale/list-countries-phones.md index ee368e297..eb66e3628 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-countries-phones.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -PhoneList result = await locale.listCountriesPhones(); +PhoneList result = await locale.listCountriesPhones( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-countries.md b/examples/2.3.x/client-flutter/examples/locale/list-countries.md index 17e0814f9..fb2b2220a 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-countries.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-countries.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountries(); +CountryList result = await locale.listCountries( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-currencies.md b/examples/2.3.x/client-flutter/examples/locale/list-currencies.md index 751de786f..05810fe6b 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-currencies.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-currencies.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -CurrencyList result = await locale.listCurrencies(); +CurrencyList result = await locale.listCurrencies( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/locale/list-languages.md b/examples/2.3.x/client-flutter/examples/locale/list-languages.md index 28b46a0a8..559ccddd7 100644 --- a/examples/2.3.x/client-flutter/examples/locale/list-languages.md +++ b/examples/2.3.x/client-flutter/examples/locale/list-languages.md @@ -7,5 +7,7 @@ Client client = Client() Locale locale = Locale(client); -LanguageList result = await locale.listLanguages(); +LanguageList result = await locale.listLanguages( + total: false, // optional +); ``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/approve.md b/examples/2.3.x/client-flutter/examples/oauth2/approve.md new file mode 100644 index 000000000..81a121c2d --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/approve.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Approve result = await oauth2.approve( + grantId: '', + authorizationDetails: '', // optional + scope: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/authorize-post.md b/examples/2.3.x/client-flutter/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..7bda4af95 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/authorize-post.md @@ -0,0 +1,26 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Authorize result = await oauth2.authorizePost( + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/authorize.md b/examples/2.3.x/client-flutter/examples/oauth2/authorize.md new file mode 100644 index 000000000..46575c33f --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/authorize.md @@ -0,0 +1,26 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Authorize result = await oauth2.authorize( + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-flutter/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..b35d92869 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/create-device-authorization.md @@ -0,0 +1,17 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/create-grant.md b/examples/2.3.x/client-flutter/examples/oauth2/create-grant.md new file mode 100644 index 000000000..5d9fefa41 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/create-grant.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Grant result = await oauth2.createGrant( + userCode: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/create-par.md b/examples/2.3.x/client-flutter/examples/oauth2/create-par.md new file mode 100644 index 000000000..016b8312a --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/create-par.md @@ -0,0 +1,25 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2PAR result = await oauth2.createPAR( + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/create-token.md b/examples/2.3.x/client-flutter/examples/oauth2/create-token.md new file mode 100644 index 000000000..fcc22e595 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/create-token.md @@ -0,0 +1,22 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Token result = await oauth2.createToken( + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '', // optional + audience: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/get-grant.md b/examples/2.3.x/client-flutter/examples/oauth2/get-grant.md new file mode 100644 index 000000000..b97ddde4c --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/get-grant.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Grant result = await oauth2.getGrant( + grantId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/list-organizations.md b/examples/2.3.x/client-flutter/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..8006c9e6c --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/list-organizations.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2OrganizationList result = await oauth2.listOrganizations( + limit: 1, // optional + offset: 0, // optional + search: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/list-projects.md b/examples/2.3.x/client-flutter/examples/oauth2/list-projects.md new file mode 100644 index 000000000..d973b0ded --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/list-projects.md @@ -0,0 +1,15 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2ProjectList result = await oauth2.listProjects( + limit: 1, // optional + offset: 0, // optional + search: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/logout-post.md b/examples/2.3.x/client-flutter/examples/oauth2/logout-post.md new file mode 100644 index 000000000..53e0873df --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/logout-post.md @@ -0,0 +1,18 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + + result = await oauth2.logoutPost( + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/logout.md b/examples/2.3.x/client-flutter/examples/oauth2/logout.md new file mode 100644 index 000000000..7536d2d2a --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/logout.md @@ -0,0 +1,18 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + + result = await oauth2.logout( + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/reject.md b/examples/2.3.x/client-flutter/examples/oauth2/reject.md new file mode 100644 index 000000000..beac37d62 --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/reject.md @@ -0,0 +1,13 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Reject result = await oauth2.reject( + grantId: '', +); +``` diff --git a/examples/2.3.x/client-flutter/examples/oauth2/revoke.md b/examples/2.3.x/client-flutter/examples/oauth2/revoke.md new file mode 100644 index 000000000..988f3315d --- /dev/null +++ b/examples/2.3.x/client-flutter/examples/oauth2/revoke.md @@ -0,0 +1,16 @@ +```dart +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + + result = await oauth2.revoke( + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '', // optional +); +``` diff --git a/examples/2.3.x/client-flutter/examples/tablesdb/list-transactions.md b/examples/2.3.x/client-flutter/examples/tablesdb/list-transactions.md index d95e5198b..fd1344377 100644 --- a/examples/2.3.x/client-flutter/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-flutter/examples/tablesdb/list-transactions.md @@ -9,5 +9,6 @@ TablesDB tablesDB = TablesDB(client); TransactionList result = await tablesDB.listTransactions( queries: [], // optional + total: false, // optional ); ``` diff --git a/examples/2.3.x/client-flutter/examples/teams/create-membership.md b/examples/2.3.x/client-flutter/examples/teams/create-membership.md index caab7926c..01fa470e4 100644 --- a/examples/2.3.x/client-flutter/examples/teams/create-membership.md +++ b/examples/2.3.x/client-flutter/examples/teams/create-membership.md @@ -9,7 +9,7 @@ Teams teams = Teams(client); Membership result = await teams.createMembership( teamId: '', - roles: [], + roles: ["editor"], email: 'email@example.com', // optional userId: '', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/client-flutter/examples/teams/update-membership.md b/examples/2.3.x/client-flutter/examples/teams/update-membership.md index 2d7c25c87..51b8178d3 100644 --- a/examples/2.3.x/client-flutter/examples/teams/update-membership.md +++ b/examples/2.3.x/client-flutter/examples/teams/update-membership.md @@ -10,6 +10,6 @@ Teams teams = Teams(client); Membership result = await teams.updateMembership( teamId: '', membershipId: '', - roles: [], + roles: ["editor"], ); ``` diff --git a/examples/2.3.x/client-flutter/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-flutter/examples/vectorsdb/create-operations.md index a994693e3..bf2dacd12 100644 --- a/examples/2.3.x/client-flutter/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-flutter/examples/vectorsdb/create-operations.md @@ -16,7 +16,15 @@ Transaction result = await vectorsDB.createOperations( "collectionId": "", "documentId": "", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ], // optional diff --git a/examples/2.3.x/client-flutter/examples/vectorsdb/list-transactions.md b/examples/2.3.x/client-flutter/examples/vectorsdb/list-transactions.md index fb7f83dbf..a22f32d03 100644 --- a/examples/2.3.x/client-flutter/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-flutter/examples/vectorsdb/list-transactions.md @@ -9,5 +9,6 @@ VectorsDB vectorsDB = VectorsDB(client); TransactionList result = await vectorsDB.listTransactions( queries: [], // optional + total: false, // optional ); ``` diff --git a/examples/2.3.x/client-graphql/examples/account/create-email-password-session.md b/examples/2.3.x/client-graphql/examples/account/create-email-password-session.md index c68a4feb2..530acb1ed 100644 --- a/examples/2.3.x/client-graphql/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-graphql/examples/account/create-email-password-session.md @@ -2,7 +2,8 @@ mutation { accountCreateEmailPasswordSession( email: "email@example.com", - password: "password" + password: "password", + duration: 60 ) { _id _createdAt diff --git a/examples/2.3.x/client-graphql/examples/account/delete-sessions.md b/examples/2.3.x/client-graphql/examples/account/delete-sessions.md index 65f6900e5..9edcbc74a 100644 --- a/examples/2.3.x/client-graphql/examples/account/delete-sessions.md +++ b/examples/2.3.x/client-graphql/examples/account/delete-sessions.md @@ -1,6 +1,8 @@ ```graphql mutation { - accountDeleteSessions { + accountDeleteSessions( + current: false + ) { status } } diff --git a/examples/2.3.x/client-graphql/examples/account/list-sessions.md b/examples/2.3.x/client-graphql/examples/account/list-sessions.md index 106419a76..62cf7fc2c 100644 --- a/examples/2.3.x/client-graphql/examples/account/list-sessions.md +++ b/examples/2.3.x/client-graphql/examples/account/list-sessions.md @@ -1,6 +1,8 @@ ```graphql query { - accountListSessions { + accountListSessions( + total: false + ) { total sessions { _id diff --git a/examples/2.3.x/client-graphql/examples/analytics/create-event.md b/examples/2.3.x/client-graphql/examples/analytics/create-event.md new file mode 100644 index 000000000..5e58df415 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/analytics/create-event.md @@ -0,0 +1,21 @@ +```graphql +mutation { + analyticsCreateEvent( + propertyId: "", + name: "", + url: "https://example.com", + domain: "", + referrer: "", + screenWidth: 0, + sessionHash: "", + scrollDepth: 0, + engagementTime: 0, + props: [], + userId: "", + ip: "", + userAgent: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/create-installation-token.md b/examples/2.3.x/client-graphql/examples/apps/create-installation-token.md new file mode 100644 index 000000000..bf3a90f9a --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/create-installation-token.md @@ -0,0 +1,16 @@ +```graphql +mutation { + appsCreateInstallationToken( + appId: "", + installationId: "" + ) { + access_token + token_type + expires_in + refresh_token + scope + authorization_details + id_token + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/create-key.md b/examples/2.3.x/client-graphql/examples/apps/create-key.md new file mode 100644 index 000000000..07d925653 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/create-key.md @@ -0,0 +1,17 @@ +```graphql +mutation { + appsCreateKey( + appId: "" + ) { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/create-secret.md b/examples/2.3.x/client-graphql/examples/apps/create-secret.md new file mode 100644 index 000000000..8c1294f4a --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/create-secret.md @@ -0,0 +1,17 @@ +```graphql +mutation { + appsCreateSecret( + appId: "" + ) { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/create.md b/examples/2.3.x/client-graphql/examples/apps/create.md new file mode 100644 index 000000000..79441525c --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/create.md @@ -0,0 +1,62 @@ +```graphql +mutation { + appsCreate( + appId: "", + name: "", + redirectUris: [], + description: "", + clientUri: "https://example.com", + logoUri: "https://example.com", + privacyPolicyUrl: "https://example.com", + termsUrl: "https://example.com", + contacts: [], + tagline: "", + tags: [], + images: [], + supportUrl: "https://example.com", + dataDeletionUrl: "https://example.com", + postLogoutRedirectUris: [], + enabled: false, + type: "public", + deviceFlow: false, + teamId: "" + ) { + _id + _createdAt + _updatedAt + name + description + clientUri + logoUri + privacyPolicyUrl + termsUrl + contacts + tagline + tags + labels + images + supportUrl + dataDeletionUrl + redirectUris + postLogoutRedirectUris + enabled + type + deviceFlow + teamId + userId + installationScopes + installationRedirectUrl + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/delete-installation.md b/examples/2.3.x/client-graphql/examples/apps/delete-installation.md new file mode 100644 index 000000000..451708bf4 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/delete-installation.md @@ -0,0 +1,10 @@ +```graphql +mutation { + appsDeleteInstallation( + appId: "", + installationId: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/delete-key.md b/examples/2.3.x/client-graphql/examples/apps/delete-key.md new file mode 100644 index 000000000..81dcc6383 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/delete-key.md @@ -0,0 +1,10 @@ +```graphql +mutation { + appsDeleteKey( + appId: "", + keyId: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/delete-secret.md b/examples/2.3.x/client-graphql/examples/apps/delete-secret.md new file mode 100644 index 000000000..05f82edcf --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/delete-secret.md @@ -0,0 +1,10 @@ +```graphql +mutation { + appsDeleteSecret( + appId: "", + secretId: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/delete-tokens.md b/examples/2.3.x/client-graphql/examples/apps/delete-tokens.md new file mode 100644 index 000000000..a6dd21b78 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/delete-tokens.md @@ -0,0 +1,9 @@ +```graphql +mutation { + appsDeleteTokens( + appId: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/delete.md b/examples/2.3.x/client-graphql/examples/apps/delete.md new file mode 100644 index 000000000..e9989153b --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/delete.md @@ -0,0 +1,9 @@ +```graphql +mutation { + appsDelete( + appId: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/get-installation.md b/examples/2.3.x/client-graphql/examples/apps/get-installation.md new file mode 100644 index 000000000..1ef5ca9b5 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/get-installation.md @@ -0,0 +1,19 @@ +```graphql +query { + appsGetInstallation( + appId: "", + installationId: "" + ) { + _id + _createdAt + _updatedAt + appId + teamId + scopes + authorizationDetails + createdById + createdByName + lastAccessedAt + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/get-key.md b/examples/2.3.x/client-graphql/examples/apps/get-key.md new file mode 100644 index 000000000..36435f09c --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/get-key.md @@ -0,0 +1,18 @@ +```graphql +query { + appsGetKey( + appId: "", + keyId: "" + ) { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/get-secret.md b/examples/2.3.x/client-graphql/examples/apps/get-secret.md new file mode 100644 index 000000000..c389a15cc --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/get-secret.md @@ -0,0 +1,18 @@ +```graphql +query { + appsGetSecret( + appId: "", + secretId: "" + ) { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/get.md b/examples/2.3.x/client-graphql/examples/apps/get.md new file mode 100644 index 000000000..21d2bc950 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/get.md @@ -0,0 +1,44 @@ +```graphql +query { + appsGet( + appId: "" + ) { + _id + _createdAt + _updatedAt + name + description + clientUri + logoUri + privacyPolicyUrl + termsUrl + contacts + tagline + tags + labels + images + supportUrl + dataDeletionUrl + redirectUris + postLogoutRedirectUris + enabled + type + deviceFlow + teamId + userId + installationScopes + installationRedirectUrl + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-graphql/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..453eff637 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list-installation-scopes.md @@ -0,0 +1,14 @@ +```graphql +query { + appsListInstallationScopes { + total + scopes { + value + description + type + category + deprecated + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list-installations.md b/examples/2.3.x/client-graphql/examples/apps/list-installations.md new file mode 100644 index 000000000..cf47dd81f --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list-installations.md @@ -0,0 +1,23 @@ +```graphql +query { + appsListInstallations( + appId: "", + queries: [], + total: false + ) { + total + installations { + _id + _createdAt + _updatedAt + appId + teamId + scopes + authorizationDetails + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list-keys.md b/examples/2.3.x/client-graphql/examples/apps/list-keys.md new file mode 100644 index 000000000..0aa5dd759 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list-keys.md @@ -0,0 +1,22 @@ +```graphql +query { + appsListKeys( + appId: "", + queries: [], + total: false + ) { + total + keys { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-graphql/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..bce864f54 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,14 @@ +```graphql +query { + appsListOAuth2Scopes { + total + scopes { + value + description + type + category + deprecated + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list-secrets.md b/examples/2.3.x/client-graphql/examples/apps/list-secrets.md new file mode 100644 index 000000000..c14c63a89 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list-secrets.md @@ -0,0 +1,22 @@ +```graphql +query { + appsListSecrets( + appId: "", + queries: [], + total: false + ) { + total + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/list.md b/examples/2.3.x/client-graphql/examples/apps/list.md new file mode 100644 index 000000000..2b6087049 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/list.md @@ -0,0 +1,48 @@ +```graphql +query { + appsList( + queries: [], + total: false + ) { + total + apps { + _id + _createdAt + _updatedAt + name + description + clientUri + logoUri + privacyPolicyUrl + termsUrl + contacts + tagline + tags + labels + images + supportUrl + dataDeletionUrl + redirectUris + postLogoutRedirectUris + enabled + type + deviceFlow + teamId + userId + installationScopes + installationRedirectUrl + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/update-team.md b/examples/2.3.x/client-graphql/examples/apps/update-team.md new file mode 100644 index 000000000..80f53a055 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/update-team.md @@ -0,0 +1,45 @@ +```graphql +mutation { + appsUpdateTeam( + appId: "", + teamId: "" + ) { + _id + _createdAt + _updatedAt + name + description + clientUri + logoUri + privacyPolicyUrl + termsUrl + contacts + tagline + tags + labels + images + supportUrl + dataDeletionUrl + redirectUris + postLogoutRedirectUris + enabled + type + deviceFlow + teamId + userId + installationScopes + installationRedirectUrl + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/apps/update.md b/examples/2.3.x/client-graphql/examples/apps/update.md new file mode 100644 index 000000000..94031890b --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/apps/update.md @@ -0,0 +1,63 @@ +```graphql +mutation { + appsUpdate( + appId: "", + name: "", + description: "", + clientUri: "https://example.com", + logoUri: "https://example.com", + privacyPolicyUrl: "https://example.com", + termsUrl: "https://example.com", + contacts: [], + tagline: "", + tags: [], + images: [], + supportUrl: "https://example.com", + dataDeletionUrl: "https://example.com", + enabled: false, + redirectUris: [], + postLogoutRedirectUris: [], + type: "public", + deviceFlow: false, + installationScopes: [], + installationRedirectUrl: "https://example.com" + ) { + _id + _createdAt + _updatedAt + name + description + clientUri + logoUri + privacyPolicyUrl + termsUrl + contacts + tagline + tags + labels + images + supportUrl + dataDeletionUrl + redirectUris + postLogoutRedirectUris + enabled + type + deviceFlow + teamId + userId + installationScopes + installationRedirectUrl + secrets { + _id + _createdAt + _updatedAt + appId + secret + hint + createdById + createdByName + lastAccessedAt + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/avatars/delete-photo.md b/examples/2.3.x/client-graphql/examples/avatars/delete-photo.md new file mode 100644 index 000000000..6c7d6afef --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/avatars/delete-photo.md @@ -0,0 +1,7 @@ +```graphql +mutation { + avatarsDeletePhoto { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/avatars/get-screenshot.md b/examples/2.3.x/client-graphql/examples/avatars/get-screenshot.md index f5cab660c..2b6612c38 100644 --- a/examples/2.3.x/client-graphql/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/client-graphql/examples/avatars/get-screenshot.md @@ -2,7 +2,7 @@ query { avatarsGetScreenshot( url: "https://example.com", - headers: "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}", + headers: "{\"Accept-Language\":\"en-US,en;q=0.9\"}", viewportWidth: 1920, viewportHeight: 1080, scale: 2, diff --git a/examples/2.3.x/client-graphql/examples/avatars/update-photo.md b/examples/2.3.x/client-graphql/examples/avatars/update-photo.md new file mode 100644 index 000000000..de86d4034 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/avatars/update-photo.md @@ -0,0 +1,26 @@ +```graphql +PUT /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: multipart/form-data; boundary="cec8e8123c05ba25" +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +Content-Length: *Length of your entity body in bytes* + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="operations" + +{ "query": "mutation { avatarsUpdatePhoto(file: $file) { id }" }, "variables": { "file": null } } + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="map" + +{ "0": ["variables.file"] } + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="0"; filename="file.ext" + +File contents + +--cec8e8123c05ba25-- +``` diff --git a/examples/2.3.x/client-graphql/examples/databases/list-transactions.md b/examples/2.3.x/client-graphql/examples/databases/list-transactions.md index 2fc18db35..093d901bf 100644 --- a/examples/2.3.x/client-graphql/examples/databases/list-transactions.md +++ b/examples/2.3.x/client-graphql/examples/databases/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { databasesListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/client-graphql/examples/documentsdb/create-documents.md b/examples/2.3.x/client-graphql/examples/documentsdb/create-documents.md index 211576113..aa16ec584 100644 --- a/examples/2.3.x/client-graphql/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-graphql/examples/documentsdb/create-documents.md @@ -3,7 +3,16 @@ mutation { documentsDBCreateDocuments( databaseId: "", collectionId: "", - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "" ) { total diff --git a/examples/2.3.x/client-graphql/examples/documentsdb/list-transactions.md b/examples/2.3.x/client-graphql/examples/documentsdb/list-transactions.md index 2569dde05..231b6ef78 100644 --- a/examples/2.3.x/client-graphql/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-graphql/examples/documentsdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { documentsDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/client-graphql/examples/locale/list-codes.md b/examples/2.3.x/client-graphql/examples/locale/list-codes.md index 0e3967246..a644a58f0 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-codes.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-codes.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCodes { + localeListCodes( + total: false + ) { total localeCodes { code diff --git a/examples/2.3.x/client-graphql/examples/locale/list-continents.md b/examples/2.3.x/client-graphql/examples/locale/list-continents.md index 16ad0fd94..36fe38f20 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-continents.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-continents.md @@ -1,6 +1,8 @@ ```graphql query { - localeListContinents { + localeListContinents( + total: false + ) { total continents { name diff --git a/examples/2.3.x/client-graphql/examples/locale/list-countries-eu.md b/examples/2.3.x/client-graphql/examples/locale/list-countries-eu.md index 293d32c9c..fc9bf2538 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-countries-eu.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountriesEU { + localeListCountriesEU( + total: false + ) { total countries { name diff --git a/examples/2.3.x/client-graphql/examples/locale/list-countries-phones.md b/examples/2.3.x/client-graphql/examples/locale/list-countries-phones.md index b17b065e3..d298bfc99 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-countries-phones.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountriesPhones { + localeListCountriesPhones( + total: false + ) { total phones { code diff --git a/examples/2.3.x/client-graphql/examples/locale/list-countries.md b/examples/2.3.x/client-graphql/examples/locale/list-countries.md index 15f566af0..2e8a3e95e 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-countries.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-countries.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountries { + localeListCountries( + total: false + ) { total countries { name diff --git a/examples/2.3.x/client-graphql/examples/locale/list-currencies.md b/examples/2.3.x/client-graphql/examples/locale/list-currencies.md index 374d67126..cdc8bf320 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-currencies.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-currencies.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCurrencies { + localeListCurrencies( + total: false + ) { total currencies { symbol diff --git a/examples/2.3.x/client-graphql/examples/locale/list-languages.md b/examples/2.3.x/client-graphql/examples/locale/list-languages.md index ed108f5a4..bf61dfd7c 100644 --- a/examples/2.3.x/client-graphql/examples/locale/list-languages.md +++ b/examples/2.3.x/client-graphql/examples/locale/list-languages.md @@ -1,6 +1,8 @@ ```graphql query { - localeListLanguages { + localeListLanguages( + total: false + ) { total languages { name diff --git a/examples/2.3.x/client-graphql/examples/oauth2/approve.md b/examples/2.3.x/client-graphql/examples/oauth2/approve.md new file mode 100644 index 000000000..9441d5a4c --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/approve.md @@ -0,0 +1,11 @@ +```graphql +mutation { + oauth2Approve( + grantId: "", + authorizationDetails: "", + scope: "" + ) { + redirectUrl + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/authorize-post.md b/examples/2.3.x/client-graphql/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..ec6d490ae --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/authorize-post.md @@ -0,0 +1,23 @@ +```graphql +mutation { + oauth2AuthorizePost( + clientId: "", + redirectUri: "https://example.com", + responseType: "", + scope: "", + state: "", + nonce: "", + codeChallenge: "", + codeChallengeMethod: "s256", + prompt: "", + maxAge: 0, + authorizationDetails: "", + resource: "", + audience: "", + requestUri: "" + ) { + grantId + redirectUrl + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/authorize.md b/examples/2.3.x/client-graphql/examples/oauth2/authorize.md new file mode 100644 index 000000000..f6e74d435 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/authorize.md @@ -0,0 +1,23 @@ +```graphql +query { + oauth2Authorize( + clientId: "", + redirectUri: "https://example.com", + responseType: "", + scope: "", + state: "", + nonce: "", + codeChallenge: "", + codeChallengeMethod: "s256", + prompt: "", + maxAge: 0, + authorizationDetails: "", + resource: "", + audience: "", + requestUri: "" + ) { + grantId + redirectUrl + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-graphql/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..dddd74a5f --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/create-device-authorization.md @@ -0,0 +1,18 @@ +```graphql +mutation { + oauth2CreateDeviceAuthorization( + clientId: "", + scope: "", + authorizationDetails: "", + resource: "", + audience: "" + ) { + device_code + user_code + verification_uri + verification_uri_complete + expires_in + interval + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/create-grant.md b/examples/2.3.x/client-graphql/examples/oauth2/create-grant.md new file mode 100644 index 000000000..da3978290 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/create-grant.md @@ -0,0 +1,20 @@ +```graphql +mutation { + oauth2CreateGrant( + userCode: "" + ) { + _id + _createdAt + _updatedAt + userId + appId + scopes + resources + authorizationDetails + prompt + redirectUri + authTime + expire + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/create-par.md b/examples/2.3.x/client-graphql/examples/oauth2/create-par.md new file mode 100644 index 000000000..7b360967c --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/create-par.md @@ -0,0 +1,22 @@ +```graphql +mutation { + oauth2CreatePAR( + clientId: "", + redirectUri: "https://example.com", + responseType: "code", + scope: "", + state: "", + nonce: "", + codeChallenge: "", + codeChallengeMethod: "s256", + prompt: "", + maxAge: 0, + authorizationDetails: "", + resource: "", + audience: "" + ) { + request_uri + expires_in + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/create-token.md b/examples/2.3.x/client-graphql/examples/oauth2/create-token.md new file mode 100644 index 000000000..24f812bae --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/create-token.md @@ -0,0 +1,24 @@ +```graphql +mutation { + oauth2CreateToken( + grantType: "", + code: "", + refreshToken: "", + deviceCode: "", + clientId: "", + clientSecret: "", + codeVerifier: "", + redirectUri: "https://example.com", + resource: "", + audience: "" + ) { + access_token + token_type + expires_in + refresh_token + scope + authorization_details + id_token + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/get-grant.md b/examples/2.3.x/client-graphql/examples/oauth2/get-grant.md new file mode 100644 index 000000000..e21ef4338 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/get-grant.md @@ -0,0 +1,20 @@ +```graphql +query { + oauth2GetGrant( + grantId: "" + ) { + _id + _createdAt + _updatedAt + userId + appId + scopes + resources + authorizationDetails + prompt + redirectUri + authTime + expire + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/list-organizations.md b/examples/2.3.x/client-graphql/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..c36f1d741 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/list-organizations.md @@ -0,0 +1,14 @@ +```graphql +query { + oauth2ListOrganizations( + limit: 1, + offset: 0, + search: "" + ) { + total + organizations { + _id + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/list-projects.md b/examples/2.3.x/client-graphql/examples/oauth2/list-projects.md new file mode 100644 index 000000000..a5073fc1a --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/list-projects.md @@ -0,0 +1,16 @@ +```graphql +query { + oauth2ListProjects( + limit: 1, + offset: 0, + search: "" + ) { + total + projects { + _id + region + endpoint + } + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/logout-post.md b/examples/2.3.x/client-graphql/examples/oauth2/logout-post.md new file mode 100644 index 000000000..49385327f --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/logout-post.md @@ -0,0 +1,14 @@ +```graphql +mutation { + oauth2LogoutPost( + idTokenHint: "", + logoutHint: "", + clientId: "", + postLogoutRedirectUri: "https://example.com", + state: "", + uiLocales: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/logout.md b/examples/2.3.x/client-graphql/examples/oauth2/logout.md new file mode 100644 index 000000000..0ac670ec6 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/logout.md @@ -0,0 +1,14 @@ +```graphql +query { + oauth2Logout( + idTokenHint: "", + logoutHint: "", + clientId: "", + postLogoutRedirectUri: "https://example.com", + state: "", + uiLocales: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/reject.md b/examples/2.3.x/client-graphql/examples/oauth2/reject.md new file mode 100644 index 000000000..35ac07ca8 --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/reject.md @@ -0,0 +1,9 @@ +```graphql +mutation { + oauth2Reject( + grantId: "" + ) { + redirectUrl + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/oauth2/revoke.md b/examples/2.3.x/client-graphql/examples/oauth2/revoke.md new file mode 100644 index 000000000..06858fc0e --- /dev/null +++ b/examples/2.3.x/client-graphql/examples/oauth2/revoke.md @@ -0,0 +1,12 @@ +```graphql +mutation { + oauth2Revoke( + token: "", + tokenTypeHint: "access_token", + clientId: "", + clientSecret: "" + ) { + status + } +} +``` diff --git a/examples/2.3.x/client-graphql/examples/tablesdb/list-transactions.md b/examples/2.3.x/client-graphql/examples/tablesdb/list-transactions.md index bc3663bec..61d1d7a44 100644 --- a/examples/2.3.x/client-graphql/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-graphql/examples/tablesdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { tablesDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/client-graphql/examples/teams/create-membership.md b/examples/2.3.x/client-graphql/examples/teams/create-membership.md index 67b153ea1..223760490 100644 --- a/examples/2.3.x/client-graphql/examples/teams/create-membership.md +++ b/examples/2.3.x/client-graphql/examples/teams/create-membership.md @@ -2,7 +2,7 @@ mutation { teamsCreateMembership( teamId: "", - roles: [], + roles: ["editor"], email: "email@example.com", userId: "", phone: "+12065550100", diff --git a/examples/2.3.x/client-graphql/examples/teams/update-membership.md b/examples/2.3.x/client-graphql/examples/teams/update-membership.md index c08593729..d456b7239 100644 --- a/examples/2.3.x/client-graphql/examples/teams/update-membership.md +++ b/examples/2.3.x/client-graphql/examples/teams/update-membership.md @@ -3,7 +3,7 @@ mutation { teamsUpdateMembership( teamId: "", membershipId: "", - roles: [] + roles: ["editor"] ) { _id _createdAt diff --git a/examples/2.3.x/client-graphql/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-graphql/examples/vectorsdb/create-operations.md index b1d86d55b..b9fc3fc7f 100644 --- a/examples/2.3.x/client-graphql/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-graphql/examples/vectorsdb/create-operations.md @@ -9,7 +9,15 @@ mutation { "collectionId": "", "documentId": "", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] diff --git a/examples/2.3.x/client-graphql/examples/vectorsdb/list-transactions.md b/examples/2.3.x/client-graphql/examples/vectorsdb/list-transactions.md index 1f2ea4aa4..307764ec2 100644 --- a/examples/2.3.x/client-graphql/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-graphql/examples/vectorsdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { vectorsDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/client-react-native/examples/account/create-email-password-session.md b/examples/2.3.x/client-react-native/examples/account/create-email-password-session.md index e38beaf79..f52da4676 100644 --- a/examples/2.3.x/client-react-native/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-react-native/examples/account/create-email-password-session.md @@ -10,6 +10,7 @@ const account = new Account(client); const result = await account.createEmailPasswordSession({ email: 'email@example.com', password: 'password', + duration: 60, // optional }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/account/delete-sessions.md b/examples/2.3.x/client-react-native/examples/account/delete-sessions.md index 0f1bc281c..600450538 100644 --- a/examples/2.3.x/client-react-native/examples/account/delete-sessions.md +++ b/examples/2.3.x/client-react-native/examples/account/delete-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.deleteSessions(); +const result = await account.deleteSessions({ + current: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/account/list-sessions.md b/examples/2.3.x/client-react-native/examples/account/list-sessions.md index c8acda4d4..ddf9c1338 100644 --- a/examples/2.3.x/client-react-native/examples/account/list-sessions.md +++ b/examples/2.3.x/client-react-native/examples/account/list-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.listSessions(); +const result = await account.listSessions({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/analytics/create-event.md b/examples/2.3.x/client-react-native/examples/analytics/create-event.md new file mode 100644 index 000000000..3223f3a37 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/analytics/create-event.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Analytics } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.createEvent({ + propertyId: '', + name: '', + url: 'https://example.com', + domain: '', // optional + referrer: '', // optional + screenWidth: null, // optional + sessionHash: '', // optional + scrollDepth: 0, // optional + engagementTime: null, // optional + props: [], // optional + userId: '', // optional + ip: '', // optional + userAgent: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/create-installation-token.md b/examples/2.3.x/client-react-native/examples/apps/create-installation-token.md new file mode 100644 index 000000000..ff84fa289 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/create-installation-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createInstallationToken({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/create-key.md b/examples/2.3.x/client-react-native/examples/apps/create-key.md new file mode 100644 index 000000000..c36c46962 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/create-key.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createKey({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/create-secret.md b/examples/2.3.x/client-react-native/examples/apps/create-secret.md new file mode 100644 index 000000000..d994b74f6 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/create-secret.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createSecret({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/create.md b/examples/2.3.x/client-react-native/examples/apps/create.md new file mode 100644 index 000000000..f472d8469 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/create.md @@ -0,0 +1,33 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.create({ + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/delete-installation.md b/examples/2.3.x/client-react-native/examples/apps/delete-installation.md new file mode 100644 index 000000000..f8cfa235c --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/delete-installation.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteInstallation({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/delete-key.md b/examples/2.3.x/client-react-native/examples/apps/delete-key.md new file mode 100644 index 000000000..a7c8b88aa --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/delete-key.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteKey({ + appId: '', + keyId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/delete-secret.md b/examples/2.3.x/client-react-native/examples/apps/delete-secret.md new file mode 100644 index 000000000..fe82ce48f --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/delete-secret.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteSecret({ + appId: '', + secretId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/delete-tokens.md b/examples/2.3.x/client-react-native/examples/apps/delete-tokens.md new file mode 100644 index 000000000..06386ae14 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/delete-tokens.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteTokens({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/delete.md b/examples/2.3.x/client-react-native/examples/apps/delete.md new file mode 100644 index 000000000..ef20501ce --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/delete.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.delete({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/get-installation.md b/examples/2.3.x/client-react-native/examples/apps/get-installation.md new file mode 100644 index 000000000..627a02a17 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/get-installation.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getInstallation({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/get-key.md b/examples/2.3.x/client-react-native/examples/apps/get-key.md new file mode 100644 index 000000000..8123a4591 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/get-key.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getKey({ + appId: '', + keyId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/get-secret.md b/examples/2.3.x/client-react-native/examples/apps/get-secret.md new file mode 100644 index 000000000..aae0a5a75 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/get-secret.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getSecret({ + appId: '', + secretId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/get.md b/examples/2.3.x/client-react-native/examples/apps/get.md new file mode 100644 index 000000000..80507f038 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/get.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.get({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-react-native/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..4fa19c6e2 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list-installation-scopes.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listInstallationScopes(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list-installations.md b/examples/2.3.x/client-react-native/examples/apps/list-installations.md new file mode 100644 index 000000000..9d58a9fcf --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list-installations.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listInstallations({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list-keys.md b/examples/2.3.x/client-react-native/examples/apps/list-keys.md new file mode 100644 index 000000000..19d28553c --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list-keys.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listKeys({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-react-native/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..2c0ddac33 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listOAuth2Scopes(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list-secrets.md b/examples/2.3.x/client-react-native/examples/apps/list-secrets.md new file mode 100644 index 000000000..f67bedbd8 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list-secrets.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listSecrets({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/list.md b/examples/2.3.x/client-react-native/examples/apps/list.md new file mode 100644 index 000000000..c0691b595 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/list.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.list({ + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/update-team.md b/examples/2.3.x/client-react-native/examples/apps/update-team.md new file mode 100644 index 000000000..6073a2f2f --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/update-team.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.updateTeam({ + appId: '', + teamId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/apps/update.md b/examples/2.3.x/client-react-native/examples/apps/update.md new file mode 100644 index 000000000..38666ce7c --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/apps/update.md @@ -0,0 +1,34 @@ +```javascript +import { Client, Apps } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.update({ + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false, // optional + installationScopes: [], // optional + installationRedirectUrl: 'https://example.com', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/avatars/delete-photo.md b/examples/2.3.x/client-react-native/examples/avatars/delete-photo.md new file mode 100644 index 000000000..a0120a62c --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Avatars } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.deletePhoto(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/avatars/get-screenshot.md b/examples/2.3.x/client-react-native/examples/avatars/get-screenshot.md index 4e0402bc8..c42066a72 100644 --- a/examples/2.3.x/client-react-native/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/client-react-native/examples/avatars/get-screenshot.md @@ -17,8 +17,7 @@ const avatars = new Avatars(client); const result = avatars.getScreenshot({ url: 'https://example.com', headers: { - Authorization: 'Bearer token123', - 'X-Custom-Header': 'value', + 'Accept-Language': 'en-US,en;q=0.9', }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/client-react-native/examples/avatars/update-photo.md b/examples/2.3.x/client-react-native/examples/avatars/update-photo.md new file mode 100644 index 000000000..052042002 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/avatars/update-photo.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Avatars } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.updatePhoto({ + file: { + name: 'image.png', + type: 'image/png', + size: 1024, + uri: 'file:///path/to/image.png', + }, +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/databases/list-transactions.md b/examples/2.3.x/client-react-native/examples/databases/list-transactions.md index 051ea0f3a..bc62da267 100644 --- a/examples/2.3.x/client-react-native/examples/databases/list-transactions.md +++ b/examples/2.3.x/client-react-native/examples/databases/list-transactions.md @@ -9,6 +9,7 @@ const databases = new Databases(client); const result = await databases.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/documentsdb/create-documents.md b/examples/2.3.x/client-react-native/examples/documentsdb/create-documents.md index 891757c68..dc0cb5314 100644 --- a/examples/2.3.x/client-react-native/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-react-native/examples/documentsdb/create-documents.md @@ -10,7 +10,16 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.createDocuments({ databaseId: '', collectionId: '', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '', // optional }); diff --git a/examples/2.3.x/client-react-native/examples/documentsdb/list-transactions.md b/examples/2.3.x/client-react-native/examples/documentsdb/list-transactions.md index 24c8dbdb1..d4a8c4ea1 100644 --- a/examples/2.3.x/client-react-native/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-react-native/examples/documentsdb/list-transactions.md @@ -9,6 +9,7 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/graphql/mutation.md b/examples/2.3.x/client-react-native/examples/graphql/mutation.md index f5e673a2f..89c0cd426 100644 --- a/examples/2.3.x/client-react-native/examples/graphql/mutation.md +++ b/examples/2.3.x/client-react-native/examples/graphql/mutation.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.mutation({ - query: {}, + query: { + query: 'mutation { accountUpdateName(name: "Walter") { name } }', + }, }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/graphql/query.md b/examples/2.3.x/client-react-native/examples/graphql/query.md index c9640ebeb..872ebc0ab 100644 --- a/examples/2.3.x/client-react-native/examples/graphql/query.md +++ b/examples/2.3.x/client-react-native/examples/graphql/query.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.query({ - query: {}, + query: { + query: 'query { localeGet { ip } }', + }, }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/locale/list-codes.md b/examples/2.3.x/client-react-native/examples/locale/list-codes.md index f96a7ee39..7157d5d83 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-codes.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-codes.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCodes(); +const result = await locale.listCodes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-continents.md b/examples/2.3.x/client-react-native/examples/locale/list-continents.md index 8973cfd4d..296b39d34 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-continents.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-continents.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listContinents(); +const result = await locale.listContinents({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-countries-eu.md b/examples/2.3.x/client-react-native/examples/locale/list-countries-eu.md index f948ee69d..4667a26f8 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-countries-eu.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesEU(); +const result = await locale.listCountriesEU({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-countries-phones.md b/examples/2.3.x/client-react-native/examples/locale/list-countries-phones.md index 7974d60ee..4f719b3e4 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-countries-phones.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesPhones(); +const result = await locale.listCountriesPhones({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-countries.md b/examples/2.3.x/client-react-native/examples/locale/list-countries.md index b46bc615f..ef9ff5692 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-countries.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-countries.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountries(); +const result = await locale.listCountries({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-currencies.md b/examples/2.3.x/client-react-native/examples/locale/list-currencies.md index 28498d9a5..f3db19f3c 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-currencies.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-currencies.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCurrencies(); +const result = await locale.listCurrencies({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/locale/list-languages.md b/examples/2.3.x/client-react-native/examples/locale/list-languages.md index 835b04de2..beb495b01 100644 --- a/examples/2.3.x/client-react-native/examples/locale/list-languages.md +++ b/examples/2.3.x/client-react-native/examples/locale/list-languages.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listLanguages(); +const result = await locale.listLanguages({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/approve.md b/examples/2.3.x/client-react-native/examples/oauth2/approve.md new file mode 100644 index 000000000..73ebd7761 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/approve.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.approve({ + grantId: '', + authorizationDetails: '', // optional + scope: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/authorize-post.md b/examples/2.3.x/client-react-native/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..e27aa7e3b --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/authorize-post.md @@ -0,0 +1,28 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorizePost({ + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/authorize.md b/examples/2.3.x/client-react-native/examples/oauth2/authorize.md new file mode 100644 index 000000000..039dc744e --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/authorize.md @@ -0,0 +1,28 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorize({ + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-react-native/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..c136011b3 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/create-device-authorization.md @@ -0,0 +1,19 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createDeviceAuthorization({ + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/create-grant.md b/examples/2.3.x/client-react-native/examples/oauth2/create-grant.md new file mode 100644 index 000000000..2e5e30026 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/create-grant.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createGrant({ + userCode: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/create-par.md b/examples/2.3.x/client-react-native/examples/oauth2/create-par.md new file mode 100644 index 000000000..5d9b57830 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/create-par.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createPAR({ + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/create-token.md b/examples/2.3.x/client-react-native/examples/oauth2/create-token.md new file mode 100644 index 000000000..3be9ff4a6 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/create-token.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createToken({ + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/get-grant.md b/examples/2.3.x/client-react-native/examples/oauth2/get-grant.md new file mode 100644 index 000000000..e2851e77c --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/get-grant.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.getGrant({ + grantId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/list-organizations.md b/examples/2.3.x/client-react-native/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..5305b17e5 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/list-organizations.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.listOrganizations({ + limit: 1, // optional + offset: 0, // optional + search: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/list-projects.md b/examples/2.3.x/client-react-native/examples/oauth2/list-projects.md new file mode 100644 index 000000000..fe6f0c887 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/list-projects.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.listProjects({ + limit: 1, // optional + offset: 0, // optional + search: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/logout-post.md b/examples/2.3.x/client-react-native/examples/oauth2/logout-post.md new file mode 100644 index 000000000..ad84a0c4a --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/logout-post.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.logoutPost({ + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/logout.md b/examples/2.3.x/client-react-native/examples/oauth2/logout.md new file mode 100644 index 000000000..8d0e0e624 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/logout.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.logout({ + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/reject.md b/examples/2.3.x/client-react-native/examples/oauth2/reject.md new file mode 100644 index 000000000..3c6c58886 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/reject.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.reject({ + grantId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/oauth2/revoke.md b/examples/2.3.x/client-react-native/examples/oauth2/revoke.md new file mode 100644 index 000000000..5369493d5 --- /dev/null +++ b/examples/2.3.x/client-react-native/examples/oauth2/revoke.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Oauth2 } from 'react-native-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.revoke({ + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-react-native/examples/tablesdb/list-transactions.md b/examples/2.3.x/client-react-native/examples/tablesdb/list-transactions.md index e28ff1415..ef26c6bf3 100644 --- a/examples/2.3.x/client-react-native/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-react-native/examples/tablesdb/list-transactions.md @@ -9,6 +9,7 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/teams/create-membership.md b/examples/2.3.x/client-react-native/examples/teams/create-membership.md index e7fe0d72c..3c6ee849e 100644 --- a/examples/2.3.x/client-react-native/examples/teams/create-membership.md +++ b/examples/2.3.x/client-react-native/examples/teams/create-membership.md @@ -9,7 +9,7 @@ const teams = new Teams(client); const result = await teams.createMembership({ teamId: '', - roles: [], + roles: ['editor'], email: 'email@example.com', // optional userId: '', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/client-react-native/examples/teams/update-membership.md b/examples/2.3.x/client-react-native/examples/teams/update-membership.md index 92e596961..8b05702d8 100644 --- a/examples/2.3.x/client-react-native/examples/teams/update-membership.md +++ b/examples/2.3.x/client-react-native/examples/teams/update-membership.md @@ -10,7 +10,7 @@ const teams = new Teams(client); const result = await teams.updateMembership({ teamId: '', membershipId: '', - roles: [], + roles: ['editor'], }); console.log(result); diff --git a/examples/2.3.x/client-react-native/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-react-native/examples/vectorsdb/create-operations.md index 86be153fa..11f4bb505 100644 --- a/examples/2.3.x/client-react-native/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-react-native/examples/vectorsdb/create-operations.md @@ -16,7 +16,10 @@ const result = await vectorsDB.createOperations({ collectionId: '', documentId: '', data: { - name: "Walter O'Brien", + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, }, }, ], // optional diff --git a/examples/2.3.x/client-react-native/examples/vectorsdb/list-transactions.md b/examples/2.3.x/client-react-native/examples/vectorsdb/list-transactions.md index 8a009a985..d29cc0458 100644 --- a/examples/2.3.x/client-react-native/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-react-native/examples/vectorsdb/list-transactions.md @@ -9,6 +9,7 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-rest/examples/account/create-email-password-session.md b/examples/2.3.x/client-rest/examples/account/create-email-password-session.md index bd8c32a48..57b9b36d8 100644 --- a/examples/2.3.x/client-rest/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-rest/examples/account/create-email-password-session.md @@ -8,6 +8,7 @@ X-Appwrite-Project: { "email": "email@example.com", - "password": "password" + "password": "password", + "duration": 60 } ``` diff --git a/examples/2.3.x/client-rest/examples/analytics/create-event.md b/examples/2.3.x/client-rest/examples/analytics/create-event.md new file mode 100644 index 000000000..51f37423a --- /dev/null +++ b/examples/2.3.x/client-rest/examples/analytics/create-event.md @@ -0,0 +1,23 @@ +```http +POST /v1/analytics/properties/{propertyId}/events HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +{ + "name": "", + "url": "https://example.com", + "domain": "", + "referrer": "", + "screenWidth": 0, + "sessionHash": "", + "scrollDepth": 0, + "engagementTime": 0, + "props": [], + "userId": "", + "ip": "", + "userAgent": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/apps/create-installation-token.md b/examples/2.3.x/client-rest/examples/apps/create-installation-token.md new file mode 100644 index 000000000..4de00ce8c --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/create-installation-token.md @@ -0,0 +1,9 @@ +```http +POST /v1/apps/{appId}/installations/{installationId}/tokens HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/create-key.md b/examples/2.3.x/client-rest/examples/apps/create-key.md new file mode 100644 index 000000000..4cde099e7 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/create-key.md @@ -0,0 +1,9 @@ +```http +POST /v1/apps/{appId}/keys HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/create-secret.md b/examples/2.3.x/client-rest/examples/apps/create-secret.md new file mode 100644 index 000000000..bf47e198d --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/create-secret.md @@ -0,0 +1,9 @@ +```http +POST /v1/apps/{appId}/secrets HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/create.md b/examples/2.3.x/client-rest/examples/apps/create.md new file mode 100644 index 000000000..cbf6e809b --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/create.md @@ -0,0 +1,30 @@ +```http +POST /v1/apps HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +{ + "appId": "", + "name": "", + "description": "", + "clientUri": "https://example.com", + "logoUri": "https://example.com", + "privacyPolicyUrl": "https://example.com", + "termsUrl": "https://example.com", + "contacts": [], + "tagline": "", + "tags": [], + "images": [], + "supportUrl": "https://example.com", + "dataDeletionUrl": "https://example.com", + "redirectUris": [], + "postLogoutRedirectUris": [], + "enabled": false, + "type": "public", + "deviceFlow": false, + "teamId": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/apps/delete-installation.md b/examples/2.3.x/client-rest/examples/apps/delete-installation.md new file mode 100644 index 000000000..aea259673 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/delete-installation.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/apps/{appId}/installations/{installationId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/delete-key.md b/examples/2.3.x/client-rest/examples/apps/delete-key.md new file mode 100644 index 000000000..d9035c0b7 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/delete-key.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/apps/{appId}/keys/{keyId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/delete-secret.md b/examples/2.3.x/client-rest/examples/apps/delete-secret.md new file mode 100644 index 000000000..2e4ae9a25 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/delete-secret.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/apps/{appId}/secrets/{secretId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/delete-tokens.md b/examples/2.3.x/client-rest/examples/apps/delete-tokens.md new file mode 100644 index 000000000..5bfc608c0 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/delete-tokens.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/apps/{appId}/tokens HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/delete.md b/examples/2.3.x/client-rest/examples/apps/delete.md new file mode 100644 index 000000000..cc52e59b9 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/delete.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/apps/{appId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/apps/get-installation.md b/examples/2.3.x/client-rest/examples/apps/get-installation.md new file mode 100644 index 000000000..0f6b4a05d --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/get-installation.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/installations/{installationId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/get-key.md b/examples/2.3.x/client-rest/examples/apps/get-key.md new file mode 100644 index 000000000..bfe359869 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/get-key.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/keys/{keyId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/get-secret.md b/examples/2.3.x/client-rest/examples/apps/get-secret.md new file mode 100644 index 000000000..53b7c8531 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/get-secret.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/secrets/{secretId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/get.md b/examples/2.3.x/client-rest/examples/apps/get.md new file mode 100644 index 000000000..869a639a9 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/get.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-rest/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..e758a4dfa --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list-installation-scopes.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/scopes/installations HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list-installations.md b/examples/2.3.x/client-rest/examples/apps/list-installations.md new file mode 100644 index 000000000..8f7e64009 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list-installations.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/installations HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list-keys.md b/examples/2.3.x/client-rest/examples/apps/list-keys.md new file mode 100644 index 000000000..0e75e1350 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list-keys.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/keys HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-rest/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..9de4b7b4e --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/scopes/oauth2 HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list-secrets.md b/examples/2.3.x/client-rest/examples/apps/list-secrets.md new file mode 100644 index 000000000..b9cba54b3 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list-secrets.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps/{appId}/secrets HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/list.md b/examples/2.3.x/client-rest/examples/apps/list.md new file mode 100644 index 000000000..2002bbac3 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/list.md @@ -0,0 +1,7 @@ +```http +GET /v1/apps HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +``` diff --git a/examples/2.3.x/client-rest/examples/apps/update-team.md b/examples/2.3.x/client-rest/examples/apps/update-team.md new file mode 100644 index 000000000..36db6e7b2 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/update-team.md @@ -0,0 +1,12 @@ +```http +PATCH /v1/apps/{appId}/team HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +{ + "teamId": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/apps/update.md b/examples/2.3.x/client-rest/examples/apps/update.md new file mode 100644 index 000000000..b531f1a6f --- /dev/null +++ b/examples/2.3.x/client-rest/examples/apps/update.md @@ -0,0 +1,30 @@ +```http +PUT /v1/apps/{appId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +{ + "name": "", + "description": "", + "clientUri": "https://example.com", + "logoUri": "https://example.com", + "privacyPolicyUrl": "https://example.com", + "termsUrl": "https://example.com", + "contacts": [], + "tagline": "", + "tags": [], + "images": [], + "supportUrl": "https://example.com", + "dataDeletionUrl": "https://example.com", + "enabled": false, + "redirectUris": [], + "postLogoutRedirectUris": [], + "type": "public", + "deviceFlow": false, + "installationScopes": [], + "installationRedirectUrl": "https://example.com" +} +``` diff --git a/examples/2.3.x/client-rest/examples/avatars/delete-photo.md b/examples/2.3.x/client-rest/examples/avatars/delete-photo.md new file mode 100644 index 000000000..f892a9467 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/avatars/delete-photo.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: + +``` diff --git a/examples/2.3.x/client-rest/examples/avatars/update-photo.md b/examples/2.3.x/client-rest/examples/avatars/update-photo.md new file mode 100644 index 000000000..121562d9f --- /dev/null +++ b/examples/2.3.x/client-rest/examples/avatars/update-photo.md @@ -0,0 +1,16 @@ +```http +PUT /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: multipart/form-data; boundary="cec8e8123c05ba25" +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: +Content-Length: *Length of your entity body in bytes* + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="file" + +cf 94 84 24 8d c4 91 10 0f dc 54 26 6c 8e 4b bc e8 ee 55 94 29 e7 94 89 19 26 28 01 26 29 3f 16... + +--cec8e8123c05ba25-- +``` diff --git a/examples/2.3.x/client-rest/examples/documentsdb/create-documents.md b/examples/2.3.x/client-rest/examples/documentsdb/create-documents.md index 8ab99545a..53673b5c4 100644 --- a/examples/2.3.x/client-rest/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-rest/examples/documentsdb/create-documents.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: { - "documents": [], + "documents": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "" } ``` diff --git a/examples/2.3.x/client-rest/examples/graphql/mutation.md b/examples/2.3.x/client-rest/examples/graphql/mutation.md index 2ad4b0d6d..845b6d3f3 100644 --- a/examples/2.3.x/client-rest/examples/graphql/mutation.md +++ b/examples/2.3.x/client-rest/examples/graphql/mutation.md @@ -8,6 +8,8 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: { - "query": {} + "query": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } } ``` diff --git a/examples/2.3.x/client-rest/examples/graphql/query.md b/examples/2.3.x/client-rest/examples/graphql/query.md index 98a401e63..6776fac98 100644 --- a/examples/2.3.x/client-rest/examples/graphql/query.md +++ b/examples/2.3.x/client-rest/examples/graphql/query.md @@ -8,6 +8,8 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: { - "query": {} + "query": { + "query": "query { localeGet { ip } }" + } } ``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/approve.md b/examples/2.3.x/client-rest/examples/oauth2/approve.md new file mode 100644 index 000000000..8d5dabc69 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/approve.md @@ -0,0 +1,13 @@ +```http +POST /v1/oauth2/{project_id}/approve HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "grant_id": "", + "authorization_details": "", + "scope": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/authorize-post.md b/examples/2.3.x/client-rest/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..e0974827b --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/authorize-post.md @@ -0,0 +1,24 @@ +```http +POST /v1/oauth2/{project_id}/authorize HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "client_id": "", + "redirect_uri": "https://example.com", + "response_type": "", + "scope": "", + "state": "", + "nonce": "", + "code_challenge": "", + "code_challenge_method": "s256", + "prompt": "", + "max_age": 0, + "authorization_details": "", + "resource": "", + "audience": "", + "request_uri": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/authorize.md b/examples/2.3.x/client-rest/examples/oauth2/authorize.md new file mode 100644 index 000000000..eb58df4e3 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/authorize.md @@ -0,0 +1,6 @@ +```http +GET /v1/oauth2/{project_id}/authorize HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-rest/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..dc24bd063 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/create-device-authorization.md @@ -0,0 +1,15 @@ +```http +POST /v1/oauth2/{project_id}/device_authorization HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "client_id": "", + "scope": "", + "authorization_details": "", + "resource": "", + "audience": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/create-grant.md b/examples/2.3.x/client-rest/examples/oauth2/create-grant.md new file mode 100644 index 000000000..871c28106 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/create-grant.md @@ -0,0 +1,11 @@ +```http +POST /v1/oauth2/{project_id}/grants HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "user_code": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/create-par.md b/examples/2.3.x/client-rest/examples/oauth2/create-par.md new file mode 100644 index 000000000..9e8c4c71f --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/create-par.md @@ -0,0 +1,23 @@ +```http +POST /v1/oauth2/{project_id}/par HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "client_id": "", + "redirect_uri": "https://example.com", + "response_type": "code", + "scope": "", + "state": "", + "nonce": "", + "code_challenge": "", + "code_challenge_method": "s256", + "prompt": "", + "max_age": 0, + "authorization_details": "", + "resource": "", + "audience": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/create-token.md b/examples/2.3.x/client-rest/examples/oauth2/create-token.md new file mode 100644 index 000000000..676439533 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/create-token.md @@ -0,0 +1,20 @@ +```http +POST /v1/oauth2/{project_id}/token HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "grant_type": "", + "code": "", + "refresh_token": "", + "device_code": "", + "client_id": "", + "client_secret": "", + "code_verifier": "", + "redirect_uri": "https://example.com", + "resource": "", + "audience": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/get-grant.md b/examples/2.3.x/client-rest/examples/oauth2/get-grant.md new file mode 100644 index 000000000..a3ea3d852 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/get-grant.md @@ -0,0 +1,6 @@ +```http +GET /v1/oauth2/{project_id}/grants/{grant_id} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/list-organizations.md b/examples/2.3.x/client-rest/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..babe287c2 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/list-organizations.md @@ -0,0 +1,6 @@ +```http +GET /v1/oauth2/{project_id}/organizations HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/list-projects.md b/examples/2.3.x/client-rest/examples/oauth2/list-projects.md new file mode 100644 index 000000000..128ce8b32 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/list-projects.md @@ -0,0 +1,6 @@ +```http +GET /v1/oauth2/{project_id}/projects HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/logout-post.md b/examples/2.3.x/client-rest/examples/oauth2/logout-post.md new file mode 100644 index 000000000..ddb4bd533 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/logout-post.md @@ -0,0 +1,16 @@ +```http +POST /v1/oauth2/{project_id}/logout HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "id_token_hint": "", + "logout_hint": "", + "client_id": "", + "post_logout_redirect_uri": "https://example.com", + "state": "", + "ui_locales": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/logout.md b/examples/2.3.x/client-rest/examples/oauth2/logout.md new file mode 100644 index 000000000..5bb40218b --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/logout.md @@ -0,0 +1,6 @@ +```http +GET /v1/oauth2/{project_id}/logout HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/reject.md b/examples/2.3.x/client-rest/examples/oauth2/reject.md new file mode 100644 index 000000000..4e0beece0 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/reject.md @@ -0,0 +1,11 @@ +```http +POST /v1/oauth2/{project_id}/reject HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "grant_id": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/oauth2/revoke.md b/examples/2.3.x/client-rest/examples/oauth2/revoke.md new file mode 100644 index 000000000..3b9012586 --- /dev/null +++ b/examples/2.3.x/client-rest/examples/oauth2/revoke.md @@ -0,0 +1,14 @@ +```http +POST /v1/oauth2/{project_id}/revoke HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "token": "", + "token_type_hint": "access_token", + "client_id": "", + "client_secret": "" +} +``` diff --git a/examples/2.3.x/client-rest/examples/teams/create-membership.md b/examples/2.3.x/client-rest/examples/teams/create-membership.md index c4840217f..4f855fb2f 100644 --- a/examples/2.3.x/client-rest/examples/teams/create-membership.md +++ b/examples/2.3.x/client-rest/examples/teams/create-membership.md @@ -10,7 +10,7 @@ X-Appwrite-Project: "email": "email@example.com", "userId": "", "phone": "+12065550100", - "roles": [], + "roles": ["editor"], "url": "https://example.com", "name": "" } diff --git a/examples/2.3.x/client-rest/examples/teams/update-membership.md b/examples/2.3.x/client-rest/examples/teams/update-membership.md index 22358a94d..b451422c0 100644 --- a/examples/2.3.x/client-rest/examples/teams/update-membership.md +++ b/examples/2.3.x/client-rest/examples/teams/update-membership.md @@ -7,6 +7,6 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: { - "roles": [] + "roles": ["editor"] } ``` diff --git a/examples/2.3.x/client-rest/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-rest/examples/vectorsdb/create-operations.md index 9f34f5b34..fa894e4ce 100644 --- a/examples/2.3.x/client-rest/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-rest/examples/vectorsdb/create-operations.md @@ -14,7 +14,15 @@ X-Appwrite-Project: "collectionId": "", "documentId": "", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] diff --git a/examples/2.3.x/client-web/examples/account/create-email-password-session.md b/examples/2.3.x/client-web/examples/account/create-email-password-session.md index 6093aa240..40ae7c9eb 100644 --- a/examples/2.3.x/client-web/examples/account/create-email-password-session.md +++ b/examples/2.3.x/client-web/examples/account/create-email-password-session.md @@ -10,6 +10,7 @@ const account = new Account(client); const result = await account.createEmailPasswordSession({ email: 'email@example.com', password: 'password', + duration: 60, // optional }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/account/delete-sessions.md b/examples/2.3.x/client-web/examples/account/delete-sessions.md index 1bd929a8a..1e32eb343 100644 --- a/examples/2.3.x/client-web/examples/account/delete-sessions.md +++ b/examples/2.3.x/client-web/examples/account/delete-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.deleteSessions(); +const result = await account.deleteSessions({ + current: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/account/list-sessions.md b/examples/2.3.x/client-web/examples/account/list-sessions.md index d07cf48e5..99d0f05d2 100644 --- a/examples/2.3.x/client-web/examples/account/list-sessions.md +++ b/examples/2.3.x/client-web/examples/account/list-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.listSessions(); +const result = await account.listSessions({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/analytics/create-event.md b/examples/2.3.x/client-web/examples/analytics/create-event.md new file mode 100644 index 000000000..bccdfeff5 --- /dev/null +++ b/examples/2.3.x/client-web/examples/analytics/create-event.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Analytics } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.createEvent({ + propertyId: '', + name: '', + url: 'https://example.com', + domain: '', // optional + referrer: '', // optional + screenWidth: null, // optional + sessionHash: '', // optional + scrollDepth: 0, // optional + engagementTime: null, // optional + props: [], // optional + userId: '', // optional + ip: '', // optional + userAgent: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/create-installation-token.md b/examples/2.3.x/client-web/examples/apps/create-installation-token.md new file mode 100644 index 000000000..fc90377c0 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/create-installation-token.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createInstallationToken({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/create-key.md b/examples/2.3.x/client-web/examples/apps/create-key.md new file mode 100644 index 000000000..f7e92c4c9 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/create-key.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createKey({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/create-secret.md b/examples/2.3.x/client-web/examples/apps/create-secret.md new file mode 100644 index 000000000..76a2c7177 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/create-secret.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.createSecret({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/create.md b/examples/2.3.x/client-web/examples/apps/create.md new file mode 100644 index 000000000..948940ac5 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/create.md @@ -0,0 +1,33 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.create({ + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/delete-installation.md b/examples/2.3.x/client-web/examples/apps/delete-installation.md new file mode 100644 index 000000000..813de0a60 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/delete-installation.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteInstallation({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/delete-key.md b/examples/2.3.x/client-web/examples/apps/delete-key.md new file mode 100644 index 000000000..a0e06cfbd --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/delete-key.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteKey({ + appId: '', + keyId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/delete-secret.md b/examples/2.3.x/client-web/examples/apps/delete-secret.md new file mode 100644 index 000000000..3a827edb8 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/delete-secret.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteSecret({ + appId: '', + secretId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/delete-tokens.md b/examples/2.3.x/client-web/examples/apps/delete-tokens.md new file mode 100644 index 000000000..9fe9f7ce9 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/delete-tokens.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.deleteTokens({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/delete.md b/examples/2.3.x/client-web/examples/apps/delete.md new file mode 100644 index 000000000..ea0e7e38f --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/delete.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.delete({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/get-installation.md b/examples/2.3.x/client-web/examples/apps/get-installation.md new file mode 100644 index 000000000..1ef3ab906 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/get-installation.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getInstallation({ + appId: '', + installationId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/get-key.md b/examples/2.3.x/client-web/examples/apps/get-key.md new file mode 100644 index 000000000..43d457497 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/get-key.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getKey({ + appId: '', + keyId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/get-secret.md b/examples/2.3.x/client-web/examples/apps/get-secret.md new file mode 100644 index 000000000..f5fea62f0 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/get-secret.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.getSecret({ + appId: '', + secretId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/get.md b/examples/2.3.x/client-web/examples/apps/get.md new file mode 100644 index 000000000..2c0f2effe --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/get.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.get({ + appId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list-installation-scopes.md b/examples/2.3.x/client-web/examples/apps/list-installation-scopes.md new file mode 100644 index 000000000..5230dfb08 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list-installation-scopes.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listInstallationScopes(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list-installations.md b/examples/2.3.x/client-web/examples/apps/list-installations.md new file mode 100644 index 000000000..3c3317f12 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list-installations.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listInstallations({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list-keys.md b/examples/2.3.x/client-web/examples/apps/list-keys.md new file mode 100644 index 000000000..8598aa924 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list-keys.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listKeys({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/client-web/examples/apps/list-o-auth-2-scopes.md new file mode 100644 index 000000000..4026247c8 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list-o-auth-2-scopes.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listOAuth2Scopes(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list-secrets.md b/examples/2.3.x/client-web/examples/apps/list-secrets.md new file mode 100644 index 000000000..a839d9c64 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list-secrets.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.listSecrets({ + appId: '', + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/list.md b/examples/2.3.x/client-web/examples/apps/list.md new file mode 100644 index 000000000..dbac28fd0 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/list.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.list({ + queries: [], // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/update-team.md b/examples/2.3.x/client-web/examples/apps/update-team.md new file mode 100644 index 000000000..e1eac2073 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/update-team.md @@ -0,0 +1,16 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.updateTeam({ + appId: '', + teamId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/apps/update.md b/examples/2.3.x/client-web/examples/apps/update.md new file mode 100644 index 000000000..d9fbd53e7 --- /dev/null +++ b/examples/2.3.x/client-web/examples/apps/update.md @@ -0,0 +1,34 @@ +```javascript +import { Client, Apps } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const apps = new Apps(client); + +const result = await apps.update({ + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false, // optional + installationScopes: [], // optional + installationRedirectUrl: 'https://example.com', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/avatars/delete-photo.md b/examples/2.3.x/client-web/examples/avatars/delete-photo.md new file mode 100644 index 000000000..fd5d42f5f --- /dev/null +++ b/examples/2.3.x/client-web/examples/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Avatars } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.deletePhoto(); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/avatars/get-screenshot.md b/examples/2.3.x/client-web/examples/avatars/get-screenshot.md index 680d225e4..d1f1a160c 100644 --- a/examples/2.3.x/client-web/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/client-web/examples/avatars/get-screenshot.md @@ -17,8 +17,7 @@ const avatars = new Avatars(client); const result = avatars.getScreenshot({ url: 'https://example.com', headers: { - Authorization: 'Bearer token123', - 'X-Custom-Header': 'value', + 'Accept-Language': 'en-US,en;q=0.9', }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/client-web/examples/avatars/update-photo.md b/examples/2.3.x/client-web/examples/avatars/update-photo.md new file mode 100644 index 000000000..2deb92009 --- /dev/null +++ b/examples/2.3.x/client-web/examples/avatars/update-photo.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Avatars } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.updatePhoto({ + file: document.getElementById('uploader').files[0], +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/databases/list-transactions.md b/examples/2.3.x/client-web/examples/databases/list-transactions.md index bb8ae2e1f..03e770cf0 100644 --- a/examples/2.3.x/client-web/examples/databases/list-transactions.md +++ b/examples/2.3.x/client-web/examples/databases/list-transactions.md @@ -9,6 +9,7 @@ const databases = new Databases(client); const result = await databases.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/documentsdb/create-documents.md b/examples/2.3.x/client-web/examples/documentsdb/create-documents.md index c2830b94d..b86362cad 100644 --- a/examples/2.3.x/client-web/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/client-web/examples/documentsdb/create-documents.md @@ -10,7 +10,16 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.createDocuments({ databaseId: '', collectionId: '', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '', // optional }); diff --git a/examples/2.3.x/client-web/examples/documentsdb/list-transactions.md b/examples/2.3.x/client-web/examples/documentsdb/list-transactions.md index 161d38804..6d43c9b47 100644 --- a/examples/2.3.x/client-web/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/client-web/examples/documentsdb/list-transactions.md @@ -9,6 +9,7 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/graphql/mutation.md b/examples/2.3.x/client-web/examples/graphql/mutation.md index abd27e3d4..5e0a138da 100644 --- a/examples/2.3.x/client-web/examples/graphql/mutation.md +++ b/examples/2.3.x/client-web/examples/graphql/mutation.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.mutation({ - query: {}, + query: { + query: 'mutation { accountUpdateName(name: "Walter") { name } }', + }, }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/graphql/query.md b/examples/2.3.x/client-web/examples/graphql/query.md index 21b353fc9..e18863e6a 100644 --- a/examples/2.3.x/client-web/examples/graphql/query.md +++ b/examples/2.3.x/client-web/examples/graphql/query.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.query({ - query: {}, + query: { + query: 'query { localeGet { ip } }', + }, }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/locale/list-codes.md b/examples/2.3.x/client-web/examples/locale/list-codes.md index dce429ef9..d4647f3ce 100644 --- a/examples/2.3.x/client-web/examples/locale/list-codes.md +++ b/examples/2.3.x/client-web/examples/locale/list-codes.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCodes(); +const result = await locale.listCodes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-continents.md b/examples/2.3.x/client-web/examples/locale/list-continents.md index 4fde4252d..81321ad0f 100644 --- a/examples/2.3.x/client-web/examples/locale/list-continents.md +++ b/examples/2.3.x/client-web/examples/locale/list-continents.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listContinents(); +const result = await locale.listContinents({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-countries-eu.md b/examples/2.3.x/client-web/examples/locale/list-countries-eu.md index 917245469..902e257e2 100644 --- a/examples/2.3.x/client-web/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/client-web/examples/locale/list-countries-eu.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesEU(); +const result = await locale.listCountriesEU({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-countries-phones.md b/examples/2.3.x/client-web/examples/locale/list-countries-phones.md index 95ef6e533..8bf2abe69 100644 --- a/examples/2.3.x/client-web/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/client-web/examples/locale/list-countries-phones.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesPhones(); +const result = await locale.listCountriesPhones({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-countries.md b/examples/2.3.x/client-web/examples/locale/list-countries.md index 7d37e8011..453317889 100644 --- a/examples/2.3.x/client-web/examples/locale/list-countries.md +++ b/examples/2.3.x/client-web/examples/locale/list-countries.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountries(); +const result = await locale.listCountries({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-currencies.md b/examples/2.3.x/client-web/examples/locale/list-currencies.md index b123b1789..f52d26d81 100644 --- a/examples/2.3.x/client-web/examples/locale/list-currencies.md +++ b/examples/2.3.x/client-web/examples/locale/list-currencies.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCurrencies(); +const result = await locale.listCurrencies({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/locale/list-languages.md b/examples/2.3.x/client-web/examples/locale/list-languages.md index c9abd5dc5..4ff97c3f4 100644 --- a/examples/2.3.x/client-web/examples/locale/list-languages.md +++ b/examples/2.3.x/client-web/examples/locale/list-languages.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listLanguages(); +const result = await locale.listLanguages({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/client-web/examples/oauth2/approve.md b/examples/2.3.x/client-web/examples/oauth2/approve.md new file mode 100644 index 000000000..ee6da4a3c --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/approve.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.approve({ + grantId: '', + authorizationDetails: '', // optional + scope: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/authorize-post.md b/examples/2.3.x/client-web/examples/oauth2/authorize-post.md new file mode 100644 index 000000000..7664d1054 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/authorize-post.md @@ -0,0 +1,28 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorizePost({ + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/authorize.md b/examples/2.3.x/client-web/examples/oauth2/authorize.md new file mode 100644 index 000000000..495fd11eb --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/authorize.md @@ -0,0 +1,28 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorize({ + clientId: '', // optional + redirectUri: 'https://example.com', // optional + responseType: '', // optional + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional + requestUri: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/create-device-authorization.md b/examples/2.3.x/client-web/examples/oauth2/create-device-authorization.md new file mode 100644 index 000000000..56c0236ba --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/create-device-authorization.md @@ -0,0 +1,19 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createDeviceAuthorization({ + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/create-grant.md b/examples/2.3.x/client-web/examples/oauth2/create-grant.md new file mode 100644 index 000000000..cd5e693a3 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/create-grant.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createGrant({ + userCode: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/create-par.md b/examples/2.3.x/client-web/examples/oauth2/create-par.md new file mode 100644 index 000000000..c345b2c03 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/create-par.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createPAR({ + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/create-token.md b/examples/2.3.x/client-web/examples/oauth2/create-token.md new file mode 100644 index 000000000..0a2a3c718 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/create-token.md @@ -0,0 +1,24 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createToken({ + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '', // optional + audience: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/get-grant.md b/examples/2.3.x/client-web/examples/oauth2/get-grant.md new file mode 100644 index 000000000..43c159fc5 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/get-grant.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.getGrant({ + grantId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/list-organizations.md b/examples/2.3.x/client-web/examples/oauth2/list-organizations.md new file mode 100644 index 000000000..2efdecf78 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/list-organizations.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.listOrganizations({ + limit: 1, // optional + offset: 0, // optional + search: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/list-projects.md b/examples/2.3.x/client-web/examples/oauth2/list-projects.md new file mode 100644 index 000000000..bf7ed6aee --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/list-projects.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.listProjects({ + limit: 1, // optional + offset: 0, // optional + search: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/logout-post.md b/examples/2.3.x/client-web/examples/oauth2/logout-post.md new file mode 100644 index 000000000..9f19e4b99 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/logout-post.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.logoutPost({ + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/logout.md b/examples/2.3.x/client-web/examples/oauth2/logout.md new file mode 100644 index 000000000..df14c7a6a --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/logout.md @@ -0,0 +1,20 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.logout({ + idTokenHint: '', // optional + logoutHint: '', // optional + clientId: '', // optional + postLogoutRedirectUri: 'https://example.com', // optional + state: '', // optional + uiLocales: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/reject.md b/examples/2.3.x/client-web/examples/oauth2/reject.md new file mode 100644 index 000000000..fe6f8698b --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/reject.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.reject({ + grantId: '', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/oauth2/revoke.md b/examples/2.3.x/client-web/examples/oauth2/revoke.md new file mode 100644 index 000000000..1998f5e88 --- /dev/null +++ b/examples/2.3.x/client-web/examples/oauth2/revoke.md @@ -0,0 +1,18 @@ +```javascript +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.revoke({ + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/client-web/examples/tablesdb/list-transactions.md b/examples/2.3.x/client-web/examples/tablesdb/list-transactions.md index 20f0dba5c..6b3a60a53 100644 --- a/examples/2.3.x/client-web/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/client-web/examples/tablesdb/list-transactions.md @@ -9,6 +9,7 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/teams/create-membership.md b/examples/2.3.x/client-web/examples/teams/create-membership.md index d8f15f3d9..e7e03ea51 100644 --- a/examples/2.3.x/client-web/examples/teams/create-membership.md +++ b/examples/2.3.x/client-web/examples/teams/create-membership.md @@ -9,7 +9,7 @@ const teams = new Teams(client); const result = await teams.createMembership({ teamId: '', - roles: [], + roles: ['editor'], email: 'email@example.com', // optional userId: '', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/client-web/examples/teams/update-membership.md b/examples/2.3.x/client-web/examples/teams/update-membership.md index a568e3041..ce05e53f4 100644 --- a/examples/2.3.x/client-web/examples/teams/update-membership.md +++ b/examples/2.3.x/client-web/examples/teams/update-membership.md @@ -10,7 +10,7 @@ const teams = new Teams(client); const result = await teams.updateMembership({ teamId: '', membershipId: '', - roles: [], + roles: ['editor'], }); console.log(result); diff --git a/examples/2.3.x/client-web/examples/vectorsdb/create-operations.md b/examples/2.3.x/client-web/examples/vectorsdb/create-operations.md index 35fb3d34b..7e9225673 100644 --- a/examples/2.3.x/client-web/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/client-web/examples/vectorsdb/create-operations.md @@ -16,7 +16,10 @@ const result = await vectorsDB.createOperations({ collectionId: '', documentId: '', data: { - name: "Walter O'Brien", + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, }, }, ], // optional diff --git a/examples/2.3.x/client-web/examples/vectorsdb/list-transactions.md b/examples/2.3.x/client-web/examples/vectorsdb/list-transactions.md index a39afbc15..981018e76 100644 --- a/examples/2.3.x/client-web/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/client-web/examples/vectorsdb/list-transactions.md @@ -9,6 +9,7 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-cli/examples/account/update-mfa.md b/examples/2.3.x/console-cli/examples/account/update-mfa.md index 77b324179..b137706de 100644 --- a/examples/2.3.x/console-cli/examples/account/update-mfa.md +++ b/examples/2.3.x/console-cli/examples/account/update-mfa.md @@ -1,4 +1,4 @@ ```bash appwrite account update-mfa \ - --mfa false + --mfa=false ``` diff --git a/examples/2.3.x/console-cli/examples/account/update-prefs.md b/examples/2.3.x/console-cli/examples/account/update-prefs.md index 80fc7d8f6..3d0e2cd13 100644 --- a/examples/2.3.x/console-cli/examples/account/update-prefs.md +++ b/examples/2.3.x/console-cli/examples/account/update-prefs.md @@ -1,4 +1,4 @@ ```bash appwrite account update-prefs \ - --prefs '{ "key": "value" }' + --prefs '{"language":"en","timezone":"UTC","darkTheme":true}' ``` diff --git a/examples/2.3.x/console-cli/examples/analytics/create-event.md b/examples/2.3.x/console-cli/examples/analytics/create-event.md new file mode 100644 index 000000000..b61a1671e --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/create-event.md @@ -0,0 +1,6 @@ +```bash +appwrite analytics create-event \ + --property-id '' \ + --name '' \ + --url https://example.com +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/create-property.md b/examples/2.3.x/console-cli/examples/analytics/create-property.md new file mode 100644 index 000000000..02c6b915d --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/create-property.md @@ -0,0 +1,5 @@ +```bash +appwrite analytics create-property \ + --property-id '' \ + --name '' +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/delete-property.md b/examples/2.3.x/console-cli/examples/analytics/delete-property.md new file mode 100644 index 000000000..95e739eb6 --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/delete-property.md @@ -0,0 +1,4 @@ +```bash +appwrite analytics delete-property \ + --property-id '' +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/get-property.md b/examples/2.3.x/console-cli/examples/analytics/get-property.md new file mode 100644 index 000000000..bfe56a4ad --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/get-property.md @@ -0,0 +1,4 @@ +```bash +appwrite analytics get-property \ + --property-id '' +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/list-metrics.md b/examples/2.3.x/console-cli/examples/analytics/list-metrics.md new file mode 100644 index 000000000..a00af31bf --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/list-metrics.md @@ -0,0 +1,4 @@ +```bash +appwrite analytics list-metrics \ + --property-id '' +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/list-properties.md b/examples/2.3.x/console-cli/examples/analytics/list-properties.md new file mode 100644 index 000000000..63f4f3b63 --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/list-properties.md @@ -0,0 +1,4 @@ +```bash +appwrite analytics list-properties \ + --limit 25 +``` diff --git a/examples/2.3.x/console-cli/examples/analytics/update-property.md b/examples/2.3.x/console-cli/examples/analytics/update-property.md new file mode 100644 index 000000000..bee0531cb --- /dev/null +++ b/examples/2.3.x/console-cli/examples/analytics/update-property.md @@ -0,0 +1,4 @@ +```bash +appwrite analytics update-property \ + --property-id '' +``` diff --git a/examples/2.3.x/console-cli/examples/apps/create.md b/examples/2.3.x/console-cli/examples/apps/create.md index 05006a8c0..bbeda90ef 100644 --- a/examples/2.3.x/console-cli/examples/apps/create.md +++ b/examples/2.3.x/console-cli/examples/apps/create.md @@ -2,5 +2,5 @@ appwrite apps create \ --app-id '' \ --name '' \ - --redirect-uris one two three + --redirect-uris '' ``` diff --git a/examples/2.3.x/console-cli/examples/apps/update-labels.md b/examples/2.3.x/console-cli/examples/apps/update-labels.md index b574bb9ba..dd56f858f 100644 --- a/examples/2.3.x/console-cli/examples/apps/update-labels.md +++ b/examples/2.3.x/console-cli/examples/apps/update-labels.md @@ -1,5 +1,5 @@ ```bash appwrite apps update-labels \ --app-id '' \ - --labels one two three + --labels '' ``` diff --git a/examples/2.3.x/console-cli/examples/backups/create-archive.md b/examples/2.3.x/console-cli/examples/backups/create-archive.md index 984d4ce64..662bbd1dc 100644 --- a/examples/2.3.x/console-cli/examples/backups/create-archive.md +++ b/examples/2.3.x/console-cli/examples/backups/create-archive.md @@ -1,4 +1,4 @@ ```bash appwrite backups create-archive \ - --services one two three + --services databases ``` diff --git a/examples/2.3.x/console-cli/examples/backups/create-policy.md b/examples/2.3.x/console-cli/examples/backups/create-policy.md index fb893dc41..7838cfb4e 100644 --- a/examples/2.3.x/console-cli/examples/backups/create-policy.md +++ b/examples/2.3.x/console-cli/examples/backups/create-policy.md @@ -1,7 +1,7 @@ ```bash appwrite backups create-policy \ --policy-id '' \ - --services one two three \ + --services databases \ --retention 1 \ - --schedule '' + --schedule '' ``` diff --git a/examples/2.3.x/console-cli/examples/backups/create-restoration.md b/examples/2.3.x/console-cli/examples/backups/create-restoration.md index a4e1e2c22..71d37fe83 100644 --- a/examples/2.3.x/console-cli/examples/backups/create-restoration.md +++ b/examples/2.3.x/console-cli/examples/backups/create-restoration.md @@ -1,5 +1,5 @@ ```bash appwrite backups create-restoration \ --archive-id '' \ - --services one two three + --services databases ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-big-int-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-big-int-attribute.md index b6723191d..6588324f4 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-big-int-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-big-int-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-big-int-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-boolean-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-boolean-attribute.md index fdeca8e82..0d535df36 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-boolean-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-boolean-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-boolean-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-datetime-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-datetime-attribute.md index 2bd727d69..debc1a658 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-datetime-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-datetime-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-datetime-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-document.md b/examples/2.3.x/console-cli/examples/databases/create-document.md index d14a8498a..2222c1672 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-document.md +++ b/examples/2.3.x/console-cli/examples/databases/create-document.md @@ -3,5 +3,5 @@ appwrite databases create-document \ --database-id '' \ --collection-id '' \ --document-id '' \ - --data '{ "key": "value" }' + --data '{"username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-documents.md b/examples/2.3.x/console-cli/examples/databases/create-documents.md index 1c9fbfb26..3d68ea3b9 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-documents.md +++ b/examples/2.3.x/console-cli/examples/databases/create-documents.md @@ -2,5 +2,5 @@ appwrite databases create-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-email-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-email-attribute.md index d28ab7bb9..c6add8f17 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-email-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-email-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-email-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-enum-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-enum-attribute.md index b8bef3823..8806b4063 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-enum-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-enum-attribute.md @@ -3,6 +3,7 @@ appwrite databases create-enum-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --elements "active" "inactive" \ - --required false + --elements active \ + --elements inactive \ + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-float-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-float-attribute.md index 9d992c0cc..0cf954242 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-float-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-float-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-float-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-index.md b/examples/2.3.x/console-cli/examples/databases/create-index.md index 266472713..498c3c9da 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-index.md +++ b/examples/2.3.x/console-cli/examples/databases/create-index.md @@ -4,5 +4,5 @@ appwrite databases create-index \ --collection-id '' \ --key '' \ --type key \ - --attributes one two three + --attributes username ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-integer-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-integer-attribute.md index 072a08148..308bb5cb6 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-integer-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-integer-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-integer-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-ip-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-ip-attribute.md index 8e7371074..f7956f7f3 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-ip-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-ip-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-ip-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-line-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-line-attribute.md index 371c418d5..570d823b3 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-line-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-line-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-line-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-longtext-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-longtext-attribute.md index e8126d52e..bbe95bb19 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-longtext-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-longtext-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-longtext-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-mediumtext-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-mediumtext-attribute.md index cd391c731..dfe143291 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-mediumtext-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-mediumtext-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-mediumtext-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-point-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-point-attribute.md index e16557a17..c76b9787f 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-point-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-point-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-point-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-polygon-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-polygon-attribute.md index 82066257b..d4edce31f 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-polygon-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-polygon-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-polygon-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-string-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-string-attribute.md index acbd165e0..a6e50c2c5 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-string-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-string-attribute.md @@ -4,5 +4,5 @@ appwrite databases create-string-attribute \ --collection-id '' \ --key '' \ --size 1 \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-text-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-text-attribute.md index 9836c002a..94089a187 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-text-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-text-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-text-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-url-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-url-attribute.md index 2dc8eeaf5..c0c545f17 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-url-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-url-attribute.md @@ -3,5 +3,5 @@ appwrite databases create-url-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/create-varchar-attribute.md b/examples/2.3.x/console-cli/examples/databases/create-varchar-attribute.md index 4aed5c58e..25f34791d 100644 --- a/examples/2.3.x/console-cli/examples/databases/create-varchar-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/create-varchar-attribute.md @@ -4,5 +4,5 @@ appwrite databases create-varchar-attribute \ --collection-id '' \ --key '' \ --size 1 \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-big-int-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-big-int-attribute.md index a371e6fe7..baff2a27c 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-big-int-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-big-int-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-big-int-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 0 + --required=false \ + --xdefault 0 ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-boolean-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-boolean-attribute.md index af3960fb3..5e2e01a1b 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-boolean-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-boolean-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-boolean-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default false + --required=false \ + --xdefault=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-datetime-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-datetime-attribute.md index 9e78e4a6c..affc80e44 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-datetime-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-datetime-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-datetime-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 2020-10-15T06:38:00.000+00:00 + --required=false \ + --xdefault 2020-10-15T06:38:00.000+00:00 ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-email-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-email-attribute.md index 1e29ab6c6..6a49254d5 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-email-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-email-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-email-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default email@example.com + --required=false \ + --xdefault email@example.com ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-enum-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-enum-attribute.md index 95dac92a6..dbb2c160d 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-enum-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-enum-attribute.md @@ -3,7 +3,8 @@ appwrite databases update-enum-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --elements "active" "inactive" \ - --required false \ - --default active + --elements active \ + --elements inactive \ + --required=false \ + --xdefault active ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-float-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-float-attribute.md index 84949cc50..f17e97ac5 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-float-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-float-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-float-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 10.5 + --required=false \ + --xdefault 10.5 ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-integer-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-integer-attribute.md index 0239677f5..798a0c3f7 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-integer-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-integer-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-integer-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 10 + --required=false \ + --xdefault 10 ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-ip-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-ip-attribute.md index 7fe37561b..4c2986ed2 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-ip-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-ip-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-ip-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 192.0.2.0 + --required=false \ + --xdefault 192.0.2.0 ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-line-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-line-attribute.md index ca4a53f7f..297f7c0b1 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-line-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-line-attribute.md @@ -3,5 +3,5 @@ appwrite databases update-line-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-longtext-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-longtext-attribute.md index 27cb4aac4..ee53dba7c 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-longtext-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-longtext-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-longtext-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-mediumtext-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-mediumtext-attribute.md index 27d4569bc..15ab5f864 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-mediumtext-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-mediumtext-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-mediumtext-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-point-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-point-attribute.md index 9a0332913..3d7c649b4 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-point-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-point-attribute.md @@ -3,5 +3,5 @@ appwrite databases update-point-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-polygon-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-polygon-attribute.md index 9b461b8b8..57e7b239a 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-polygon-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-polygon-attribute.md @@ -3,5 +3,5 @@ appwrite databases update-polygon-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-string-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-string-attribute.md index 8db9c724f..124166f45 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-string-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-string-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-string-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-text-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-text-attribute.md index d52e97644..02c48d095 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-text-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-text-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-text-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-url-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-url-attribute.md index a5e8548ae..2d99450ca 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-url-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-url-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-url-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default https://example.com + --required=false \ + --xdefault https://example.com ``` diff --git a/examples/2.3.x/console-cli/examples/databases/update-varchar-attribute.md b/examples/2.3.x/console-cli/examples/databases/update-varchar-attribute.md index 1e726a42b..9651eb225 100644 --- a/examples/2.3.x/console-cli/examples/databases/update-varchar-attribute.md +++ b/examples/2.3.x/console-cli/examples/databases/update-varchar-attribute.md @@ -3,6 +3,6 @@ appwrite databases update-varchar-attribute \ --database-id '' \ --collection-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/databases/upsert-documents.md b/examples/2.3.x/console-cli/examples/databases/upsert-documents.md index 1bb53704a..76ea9769f 100644 --- a/examples/2.3.x/console-cli/examples/databases/upsert-documents.md +++ b/examples/2.3.x/console-cli/examples/databases/upsert-documents.md @@ -2,5 +2,5 @@ appwrite databases upsert-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/documentsdb/create-document.md b/examples/2.3.x/console-cli/examples/documentsdb/create-document.md index 68d4ecf7c..1ed357230 100644 --- a/examples/2.3.x/console-cli/examples/documentsdb/create-document.md +++ b/examples/2.3.x/console-cli/examples/documentsdb/create-document.md @@ -3,5 +3,5 @@ appwrite documentsdb create-document \ --database-id '' \ --collection-id '' \ --document-id '' \ - --data '{ "key": "value" }' + --data '{"username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/documentsdb/create-documents.md b/examples/2.3.x/console-cli/examples/documentsdb/create-documents.md index ddaa05eaa..a740a266d 100644 --- a/examples/2.3.x/console-cli/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/console-cli/examples/documentsdb/create-documents.md @@ -2,5 +2,5 @@ appwrite documentsdb create-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/documentsdb/create-index.md b/examples/2.3.x/console-cli/examples/documentsdb/create-index.md index 1fa9238a3..32386f568 100644 --- a/examples/2.3.x/console-cli/examples/documentsdb/create-index.md +++ b/examples/2.3.x/console-cli/examples/documentsdb/create-index.md @@ -4,5 +4,5 @@ appwrite documentsdb create-index \ --collection-id '' \ --key '' \ --type key \ - --attributes one two three + --attributes username ``` diff --git a/examples/2.3.x/console-cli/examples/documentsdb/create-operations.md b/examples/2.3.x/console-cli/examples/documentsdb/create-operations.md new file mode 100644 index 000000000..565956adb --- /dev/null +++ b/examples/2.3.x/console-cli/examples/documentsdb/create-operations.md @@ -0,0 +1,4 @@ +```bash +appwrite documentsdb create-operations \ + --transaction-id '' +``` diff --git a/examples/2.3.x/console-cli/examples/documentsdb/upsert-documents.md b/examples/2.3.x/console-cli/examples/documentsdb/upsert-documents.md index 646977ad2..9b56aca8a 100644 --- a/examples/2.3.x/console-cli/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/console-cli/examples/documentsdb/upsert-documents.md @@ -2,5 +2,5 @@ appwrite documentsdb upsert-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-a.md b/examples/2.3.x/console-cli/examples/domains/create-record-a.md index 4517579a2..f0ed33c7a 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-a.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-a.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-a \ --domain-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-aaaa.md b/examples/2.3.x/console-cli/examples/domains/create-record-aaaa.md index 25e144d6a..62392dcf0 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-aaaa.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-aaaa.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-aaaa \ --domain-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-alias.md b/examples/2.3.x/console-cli/examples/domains/create-record-alias.md index c14f2c291..f87a8e7f0 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-alias.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-alias.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-alias \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-caa.md b/examples/2.3.x/console-cli/examples/domains/create-record-caa.md index b20aff851..6285e3cba 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-caa.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-caa.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-caa \ --domain-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-cname.md b/examples/2.3.x/console-cli/examples/domains/create-record-cname.md index 084057b16..0c2f5b80f 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-cname.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-cname.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-cname \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-https.md b/examples/2.3.x/console-cli/examples/domains/create-record-https.md index 1c0618f12..647edb341 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-https.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-https.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-https \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-mx.md b/examples/2.3.x/console-cli/examples/domains/create-record-mx.md index f92422426..8369bf0de 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-mx.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-mx.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-mx \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 \ --priority 0 diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-ns.md b/examples/2.3.x/console-cli/examples/domains/create-record-ns.md index 9aa4440d8..1c6b0ee5c 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-ns.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-ns.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-ns \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-srv.md b/examples/2.3.x/console-cli/examples/domains/create-record-srv.md index 7b5cf346e..03fdef740 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-srv.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-srv.md @@ -1,7 +1,7 @@ ```bash appwrite domains create-record-srv \ --domain-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 \ --priority 0 \ diff --git a/examples/2.3.x/console-cli/examples/domains/create-record-txt.md b/examples/2.3.x/console-cli/examples/domains/create-record-txt.md index 4d70663aa..b7488eedb 100644 --- a/examples/2.3.x/console-cli/examples/domains/create-record-txt.md +++ b/examples/2.3.x/console-cli/examples/domains/create-record-txt.md @@ -1,6 +1,6 @@ ```bash appwrite domains create-record-txt \ --domain-id '' \ - --name '' \ + --name '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/list-prices.md b/examples/2.3.x/console-cli/examples/domains/list-prices.md index 9d85aa32f..95caae6f0 100644 --- a/examples/2.3.x/console-cli/examples/domains/list-prices.md +++ b/examples/2.3.x/console-cli/examples/domains/list-prices.md @@ -1,4 +1,4 @@ ```bash appwrite domains list-prices \ - --domains one two three + --domains '' ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-a.md b/examples/2.3.x/console-cli/examples/domains/update-record-a.md index 18a64dc67..ad6e3d467 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-a.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-a.md @@ -2,7 +2,7 @@ appwrite domains update-record-a \ --domain-id '' \ --record-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-aaaa.md b/examples/2.3.x/console-cli/examples/domains/update-record-aaaa.md index 37ba90b7f..e7fbdadbc 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-aaaa.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-aaaa.md @@ -2,7 +2,7 @@ appwrite domains update-record-aaaa \ --domain-id '' \ --record-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-alias.md b/examples/2.3.x/console-cli/examples/domains/update-record-alias.md index 116f00879..6a501641a 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-alias.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-alias.md @@ -2,7 +2,7 @@ appwrite domains update-record-alias \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-caa.md b/examples/2.3.x/console-cli/examples/domains/update-record-caa.md index 2aea15ca3..f109de9c1 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-caa.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-caa.md @@ -2,7 +2,7 @@ appwrite domains update-record-caa \ --domain-id '' \ --record-id '' \ - --name '' \ - --value '' \ + --name '' \ + --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-cname.md b/examples/2.3.x/console-cli/examples/domains/update-record-cname.md index 8fff4d197..0b7479a4b 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-cname.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-cname.md @@ -2,7 +2,7 @@ appwrite domains update-record-cname \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-https.md b/examples/2.3.x/console-cli/examples/domains/update-record-https.md index ca21bfd86..cb4cb3a52 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-https.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-https.md @@ -2,7 +2,7 @@ appwrite domains update-record-https \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-mx.md b/examples/2.3.x/console-cli/examples/domains/update-record-mx.md index 890fe7822..854e0c49f 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-mx.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-mx.md @@ -2,7 +2,7 @@ appwrite domains update-record-mx \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 \ --priority 0 diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-ns.md b/examples/2.3.x/console-cli/examples/domains/update-record-ns.md index b70faaf41..398acdd3b 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-ns.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-ns.md @@ -2,7 +2,7 @@ appwrite domains update-record-ns \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-srv.md b/examples/2.3.x/console-cli/examples/domains/update-record-srv.md index 5a9969bc1..ecec422c4 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-srv.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-srv.md @@ -2,7 +2,7 @@ appwrite domains update-record-srv \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 \ --priority 0 \ diff --git a/examples/2.3.x/console-cli/examples/domains/update-record-txt.md b/examples/2.3.x/console-cli/examples/domains/update-record-txt.md index 337704761..e86f2efc6 100644 --- a/examples/2.3.x/console-cli/examples/domains/update-record-txt.md +++ b/examples/2.3.x/console-cli/examples/domains/update-record-txt.md @@ -2,7 +2,7 @@ appwrite domains update-record-txt \ --domain-id '' \ --record-id '' \ - --name '' \ + --name '' \ --value '' \ --ttl 1 ``` diff --git a/examples/2.3.x/console-cli/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/console-cli/examples/embeddings/create-text-embeddings.md index b66166f8e..fd3a158df 100644 --- a/examples/2.3.x/console-cli/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/console-cli/examples/embeddings/create-text-embeddings.md @@ -1,4 +1,5 @@ ```bash appwrite embeddings create-text-embeddings \ - --texts one two three + --texts 'Appwrite helps developers build applications.' \ + --texts 'Find documents with semantic search.' ``` diff --git a/examples/2.3.x/console-cli/examples/functions/create-deployment.md b/examples/2.3.x/console-cli/examples/functions/create-deployment.md index de08a42d1..92de668fd 100644 --- a/examples/2.3.x/console-cli/examples/functions/create-deployment.md +++ b/examples/2.3.x/console-cli/examples/functions/create-deployment.md @@ -1,6 +1,6 @@ ```bash appwrite functions create-deployment \ --function-id '' \ - --code 'path/to/file.png' \ - --activate false + --code path/to/file.png \ + --activate=false ``` diff --git a/examples/2.3.x/console-cli/examples/functions/get-deployment-download.md b/examples/2.3.x/console-cli/examples/functions/get-deployment-download.md index fa1f2febb..f760594ea 100644 --- a/examples/2.3.x/console-cli/examples/functions/get-deployment-download.md +++ b/examples/2.3.x/console-cli/examples/functions/get-deployment-download.md @@ -1,5 +1,6 @@ ```bash appwrite functions get-deployment-download \ --function-id '' \ - --deployment-id '' + --deployment-id '' \ + --destination ./download ``` diff --git a/examples/2.3.x/console-cli/examples/graphql/mutation.md b/examples/2.3.x/console-cli/examples/graphql/mutation.md index 4666d3020..b419534ae 100644 --- a/examples/2.3.x/console-cli/examples/graphql/mutation.md +++ b/examples/2.3.x/console-cli/examples/graphql/mutation.md @@ -1,4 +1,4 @@ ```bash appwrite graphql mutation \ - --query '{ "key": "value" }' + --query '{"query":"mutation { accountUpdateName(name: \"Walter\") { name } }"}' ``` diff --git a/examples/2.3.x/console-cli/examples/graphql/query.md b/examples/2.3.x/console-cli/examples/graphql/query.md index 9285fbdf6..2923becce 100644 --- a/examples/2.3.x/console-cli/examples/graphql/query.md +++ b/examples/2.3.x/console-cli/examples/graphql/query.md @@ -1,4 +1,4 @@ ```bash appwrite graphql query \ - --query '{ "key": "value" }' + --query '{"query":"query { localeGet { ip } }"}' ``` diff --git a/examples/2.3.x/console-cli/examples/oauth2/introspect.md b/examples/2.3.x/console-cli/examples/oauth2/introspect.md new file mode 100644 index 000000000..ed183448a --- /dev/null +++ b/examples/2.3.x/console-cli/examples/oauth2/introspect.md @@ -0,0 +1,4 @@ +```bash +appwrite oauth2 introspect \ + --token '' +``` diff --git a/examples/2.3.x/console-cli/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/console-cli/examples/organization/create-ephemeral-project-key.md index 3b4a3ffe1..2c8e988c8 100644 --- a/examples/2.3.x/console-cli/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/console-cli/examples/organization/create-ephemeral-project-key.md @@ -1,6 +1,6 @@ ```bash appwrite organization create-ephemeral-project-key \ --project-id '' \ - --scopes one two three \ + --scopes users.read \ --duration 600 ``` diff --git a/examples/2.3.x/console-cli/examples/organization/create-membership.md b/examples/2.3.x/console-cli/examples/organization/create-membership.md index 984ffbaca..403fc774b 100644 --- a/examples/2.3.x/console-cli/examples/organization/create-membership.md +++ b/examples/2.3.x/console-cli/examples/organization/create-membership.md @@ -1,4 +1,4 @@ ```bash appwrite organization create-membership \ - --roles one two three + --roles '' ``` diff --git a/examples/2.3.x/console-cli/examples/organization/update-membership.md b/examples/2.3.x/console-cli/examples/organization/update-membership.md index 162ad6414..2d3165188 100644 --- a/examples/2.3.x/console-cli/examples/organization/update-membership.md +++ b/examples/2.3.x/console-cli/examples/organization/update-membership.md @@ -1,5 +1,5 @@ ```bash appwrite organization update-membership \ --membership-id '' \ - --roles one two three + --roles '' ``` diff --git a/examples/2.3.x/console-cli/examples/organization/update-project-key.md b/examples/2.3.x/console-cli/examples/organization/update-project-key.md index 418c81190..042e79a7f 100644 --- a/examples/2.3.x/console-cli/examples/organization/update-project-key.md +++ b/examples/2.3.x/console-cli/examples/organization/update-project-key.md @@ -3,5 +3,5 @@ appwrite organization update-project-key \ --project-id '' \ --key-id '' \ --name '' \ - --scopes one two three + --scopes users.read ``` diff --git a/examples/2.3.x/console-cli/examples/project/create-ephemeral-key.md b/examples/2.3.x/console-cli/examples/project/create-ephemeral-key.md index d4ab3852b..89568d597 100644 --- a/examples/2.3.x/console-cli/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/console-cli/examples/project/create-ephemeral-key.md @@ -1,5 +1,5 @@ ```bash appwrite project create-ephemeral-key \ - --scopes one two three \ + --scopes users.read \ --duration 600 ``` diff --git a/examples/2.3.x/console-cli/examples/project/create-smtp-test.md b/examples/2.3.x/console-cli/examples/project/create-smtp-test.md index 01393020b..7f39230ab 100644 --- a/examples/2.3.x/console-cli/examples/project/create-smtp-test.md +++ b/examples/2.3.x/console-cli/examples/project/create-smtp-test.md @@ -1,4 +1,4 @@ ```bash appwrite project create-smtp-test \ - --emails one two three + --emails recipient@example.com ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-auth-method.md b/examples/2.3.x/console-cli/examples/project/update-auth-method.md index 45ca9a749..add4f529d 100644 --- a/examples/2.3.x/console-cli/examples/project/update-auth-method.md +++ b/examples/2.3.x/console-cli/examples/project/update-auth-method.md @@ -1,5 +1,5 @@ ```bash appwrite project update-auth-method \ --method-id email-password \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-deny-aliased-email-policy.md b/examples/2.3.x/console-cli/examples/project/update-deny-aliased-email-policy.md index dfd873344..d3259b967 100644 --- a/examples/2.3.x/console-cli/examples/project/update-deny-aliased-email-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-deny-aliased-email-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-deny-aliased-email-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-deny-corporate-email-policy.md b/examples/2.3.x/console-cli/examples/project/update-deny-corporate-email-policy.md index ddbfc636b..b0b89e0d8 100644 --- a/examples/2.3.x/console-cli/examples/project/update-deny-corporate-email-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-deny-corporate-email-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-deny-corporate-email-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-deny-disposable-email-policy.md b/examples/2.3.x/console-cli/examples/project/update-deny-disposable-email-policy.md index 1764d04dc..90d2d07af 100644 --- a/examples/2.3.x/console-cli/examples/project/update-deny-disposable-email-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-deny-disposable-email-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-deny-disposable-email-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-deny-free-email-policy.md b/examples/2.3.x/console-cli/examples/project/update-deny-free-email-policy.md index c12ac1265..81f68f10a 100644 --- a/examples/2.3.x/console-cli/examples/project/update-deny-free-email-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-deny-free-email-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-deny-free-email-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-key.md b/examples/2.3.x/console-cli/examples/project/update-key.md index bb7159140..6cb5eddeb 100644 --- a/examples/2.3.x/console-cli/examples/project/update-key.md +++ b/examples/2.3.x/console-cli/examples/project/update-key.md @@ -2,5 +2,5 @@ appwrite project update-key \ --key-id '' \ --name '' \ - --scopes one two three + --scopes users.read ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-labels.md b/examples/2.3.x/console-cli/examples/project/update-labels.md index df4703c72..f0b37f7a8 100644 --- a/examples/2.3.x/console-cli/examples/project/update-labels.md +++ b/examples/2.3.x/console-cli/examples/project/update-labels.md @@ -1,4 +1,4 @@ ```bash appwrite project update-labels \ - --labels one two three + --labels production ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-o-auth-2-server.md b/examples/2.3.x/console-cli/examples/project/update-o-auth-2-server.md index a2a3596d9..fdd4441b5 100644 --- a/examples/2.3.x/console-cli/examples/project/update-o-auth-2-server.md +++ b/examples/2.3.x/console-cli/examples/project/update-o-auth-2-server.md @@ -1,5 +1,5 @@ ```bash appwrite project update-o-auth-2-server \ - --enabled false \ + --enabled=false \ --authorization-url https://example.com ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/console-cli/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..d6b21a380 --- /dev/null +++ b/examples/2.3.x/console-cli/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,3 @@ +```bash +appwrite project update-o-auth-2-webflow +``` diff --git a/examples/2.3.x/console-cli/examples/project/update-password-dictionary-policy.md b/examples/2.3.x/console-cli/examples/project/update-password-dictionary-policy.md index 37b9a564e..2a2107f6a 100644 --- a/examples/2.3.x/console-cli/examples/project/update-password-dictionary-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-password-dictionary-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-password-dictionary-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-password-personal-data-policy.md b/examples/2.3.x/console-cli/examples/project/update-password-personal-data-policy.md index 5adb1391a..66f12ffa3 100644 --- a/examples/2.3.x/console-cli/examples/project/update-password-personal-data-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-password-personal-data-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-password-personal-data-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-protocol.md b/examples/2.3.x/console-cli/examples/project/update-protocol.md index ff486476e..afaa226e0 100644 --- a/examples/2.3.x/console-cli/examples/project/update-protocol.md +++ b/examples/2.3.x/console-cli/examples/project/update-protocol.md @@ -1,5 +1,5 @@ ```bash appwrite project update-protocol \ --protocol-id rest \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-service.md b/examples/2.3.x/console-cli/examples/project/update-service.md index 778224817..0276f6331 100644 --- a/examples/2.3.x/console-cli/examples/project/update-service.md +++ b/examples/2.3.x/console-cli/examples/project/update-service.md @@ -1,5 +1,5 @@ ```bash appwrite project update-service \ --service-id account \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-session-alert-policy.md b/examples/2.3.x/console-cli/examples/project/update-session-alert-policy.md index 67e666be0..4807a6bbc 100644 --- a/examples/2.3.x/console-cli/examples/project/update-session-alert-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-session-alert-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-session-alert-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/project/update-session-invalidation-policy.md b/examples/2.3.x/console-cli/examples/project/update-session-invalidation-policy.md index 14a54b82b..e3d701d27 100644 --- a/examples/2.3.x/console-cli/examples/project/update-session-invalidation-policy.md +++ b/examples/2.3.x/console-cli/examples/project/update-session-invalidation-policy.md @@ -1,4 +1,4 @@ ```bash appwrite project update-session-invalidation-policy \ - --enabled false + --enabled=false ``` diff --git a/examples/2.3.x/console-cli/examples/sites/create-deployment.md b/examples/2.3.x/console-cli/examples/sites/create-deployment.md index 1a357aea2..8a98c7399 100644 --- a/examples/2.3.x/console-cli/examples/sites/create-deployment.md +++ b/examples/2.3.x/console-cli/examples/sites/create-deployment.md @@ -1,5 +1,5 @@ ```bash appwrite sites create-deployment \ --site-id '' \ - --code 'path/to/file.png' + --code path/to/file.png ``` diff --git a/examples/2.3.x/console-cli/examples/sites/get-deployment-download.md b/examples/2.3.x/console-cli/examples/sites/get-deployment-download.md index 2a033d018..5b92285f3 100644 --- a/examples/2.3.x/console-cli/examples/sites/get-deployment-download.md +++ b/examples/2.3.x/console-cli/examples/sites/get-deployment-download.md @@ -1,5 +1,6 @@ ```bash appwrite sites get-deployment-download \ --site-id '' \ - --deployment-id '' + --deployment-id '' \ + --destination ./download ``` diff --git a/examples/2.3.x/console-cli/examples/storage/create-file.md b/examples/2.3.x/console-cli/examples/storage/create-file.md index c5b90a5c3..6e12f405d 100644 --- a/examples/2.3.x/console-cli/examples/storage/create-file.md +++ b/examples/2.3.x/console-cli/examples/storage/create-file.md @@ -2,5 +2,5 @@ appwrite storage create-file \ --bucket-id '' \ --file-id '' \ - --file 'path/to/file.png' + --file path/to/file.png ``` diff --git a/examples/2.3.x/console-cli/examples/storage/get-file-download.md b/examples/2.3.x/console-cli/examples/storage/get-file-download.md index dd8880eab..624e1fbc6 100644 --- a/examples/2.3.x/console-cli/examples/storage/get-file-download.md +++ b/examples/2.3.x/console-cli/examples/storage/get-file-download.md @@ -1,5 +1,6 @@ ```bash appwrite storage get-file-download \ --bucket-id '' \ - --file-id '' + --file-id '' \ + --destination ./download ``` diff --git a/examples/2.3.x/console-cli/examples/storage/get-file-preview.md b/examples/2.3.x/console-cli/examples/storage/get-file-preview.md index e088ab221..060d09e94 100644 --- a/examples/2.3.x/console-cli/examples/storage/get-file-preview.md +++ b/examples/2.3.x/console-cli/examples/storage/get-file-preview.md @@ -1,5 +1,6 @@ ```bash appwrite storage get-file-preview \ --bucket-id '' \ - --file-id '' + --file-id '' \ + --destination ./download ``` diff --git a/examples/2.3.x/console-cli/examples/storage/get-file-view.md b/examples/2.3.x/console-cli/examples/storage/get-file-view.md index 92409c4aa..51042b8a7 100644 --- a/examples/2.3.x/console-cli/examples/storage/get-file-view.md +++ b/examples/2.3.x/console-cli/examples/storage/get-file-view.md @@ -1,5 +1,6 @@ ```bash appwrite storage get-file-view \ --bucket-id '' \ - --file-id '' + --file-id '' \ + --destination ./download ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-big-int-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-big-int-column.md index f1e9c85c5..5b78fddb3 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-big-int-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-big-int-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-big-int-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-boolean-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-boolean-column.md index 7ead222a6..0757d59ce 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-boolean-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-boolean-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-boolean-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-datetime-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-datetime-column.md index da3632a4a..292f3ea2d 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-datetime-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-datetime-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-datetime-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-email-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-email-column.md index 5d2b7cb2a..bac643e7d 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-email-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-email-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-email-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-enum-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-enum-column.md index 0b1bb126c..c7b09f5e6 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-enum-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-enum-column.md @@ -3,6 +3,7 @@ appwrite tablesdb create-enum-column \ --database-id '' \ --table-id '' \ --key '' \ - --elements "active" "inactive" \ - --required false + --elements active \ + --elements inactive \ + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-float-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-float-column.md index 4021c25ee..22eb70c4b 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-float-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-float-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-float-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-index.md b/examples/2.3.x/console-cli/examples/tablesdb/create-index.md index e65d50ea7..acc5e486a 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-index.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-index.md @@ -4,5 +4,5 @@ appwrite tablesdb create-index \ --table-id '' \ --key '' \ --type key \ - --columns one two three + --columns username ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-integer-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-integer-column.md index b647af7e3..6ce0bf3fc 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-integer-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-integer-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-integer-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-ip-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-ip-column.md index 9b05de2e1..8a32361a8 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-ip-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-ip-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-ip-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-line-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-line-column.md index 6f484b321..2703ae5c3 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-line-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-line-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-line-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-longtext-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-longtext-column.md index 00655468e..b29567a76 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-longtext-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-longtext-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-longtext-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-mediumtext-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-mediumtext-column.md index 348b4c0d6..af2cef147 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-mediumtext-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-mediumtext-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-mediumtext-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-point-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-point-column.md index 7f0754ef0..518b6caa4 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-point-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-point-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-point-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-polygon-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-polygon-column.md index 03bc4192c..6fa0f49bc 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-polygon-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-polygon-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-polygon-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-row.md b/examples/2.3.x/console-cli/examples/tablesdb/create-row.md index c44e11505..370a749b0 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-row.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-row.md @@ -3,5 +3,5 @@ appwrite tablesdb create-row \ --database-id '' \ --table-id '' \ --row-id '' \ - --data '{ "key": "value" }' + --data '{"username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-rows.md b/examples/2.3.x/console-cli/examples/tablesdb/create-rows.md index 6e02c78dc..cd50a5238 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-rows.md @@ -2,5 +2,5 @@ appwrite tablesdb create-rows \ --database-id '' \ --table-id '' \ - --rows one two three + --rows '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-string-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-string-column.md index 33c99a9df..598b65bea 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-string-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-string-column.md @@ -4,5 +4,5 @@ appwrite tablesdb create-string-column \ --table-id '' \ --key '' \ --size 1 \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-text-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-text-column.md index 773c9c36e..15ad58b36 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-text-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-text-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-text-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-url-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-url-column.md index b01d7b965..2ab8cc8f9 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-url-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-url-column.md @@ -3,5 +3,5 @@ appwrite tablesdb create-url-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/create-varchar-column.md b/examples/2.3.x/console-cli/examples/tablesdb/create-varchar-column.md index 4049c3956..c19de5831 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/create-varchar-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/create-varchar-column.md @@ -4,5 +4,5 @@ appwrite tablesdb create-varchar-column \ --table-id '' \ --key '' \ --size 1 \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-big-int-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-big-int-column.md index 4166589c6..3e2e52e93 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-big-int-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-big-int-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-big-int-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 0 + --required=false \ + --xdefault 0 ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-boolean-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-boolean-column.md index 3f060bf71..bce0b5c52 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-boolean-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-boolean-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-boolean-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default false + --required=false \ + --xdefault=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-datetime-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-datetime-column.md index 27087b030..85a68eb9e 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-datetime-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-datetime-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-datetime-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 2020-10-15T06:38:00.000+00:00 + --required=false \ + --xdefault 2020-10-15T06:38:00.000+00:00 ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-email-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-email-column.md index 6068c567c..adaafdbe5 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-email-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-email-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-email-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default email@example.com + --required=false \ + --xdefault email@example.com ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-enum-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-enum-column.md index b1acb10b7..17b584bb5 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-enum-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-enum-column.md @@ -3,7 +3,8 @@ appwrite tablesdb update-enum-column \ --database-id '' \ --table-id '' \ --key '' \ - --elements "active" "inactive" \ - --required false \ - --default active + --elements active \ + --elements inactive \ + --required=false \ + --xdefault active ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-float-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-float-column.md index a6ca8d8eb..62f76c52f 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-float-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-float-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-float-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 10.5 + --required=false \ + --xdefault 10.5 ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-integer-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-integer-column.md index ee9ca7f8f..4b29fa024 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-integer-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-integer-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-integer-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 10 + --required=false \ + --xdefault 10 ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-ip-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-ip-column.md index 4cf98de9c..f0e6dbcd2 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-ip-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-ip-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-ip-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 192.0.2.0 + --required=false \ + --xdefault 192.0.2.0 ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-line-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-line-column.md index e4bb8acbf..2e214ae8a 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-line-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-line-column.md @@ -3,5 +3,5 @@ appwrite tablesdb update-line-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-longtext-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-longtext-column.md index c65db39b3..67b368aa5 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-longtext-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-longtext-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-longtext-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-mediumtext-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-mediumtext-column.md index da61b0d5e..af33275d9 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-mediumtext-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-mediumtext-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-mediumtext-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-point-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-point-column.md index c1608cc4a..0937a10c1 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-point-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-point-column.md @@ -3,5 +3,5 @@ appwrite tablesdb update-point-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-polygon-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-polygon-column.md index 30ac311a1..35d9964bb 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-polygon-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-polygon-column.md @@ -3,5 +3,5 @@ appwrite tablesdb update-polygon-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false + --required=false ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-string-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-string-column.md index 04a5c67b1..85536ed68 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-string-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-string-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-string-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-text-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-text-column.md index 075d5b346..d134bad45 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-text-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-text-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-text-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-url-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-url-column.md index a25b355d9..cd26a8ec4 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-url-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-url-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-url-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default https://example.com + --required=false \ + --xdefault https://example.com ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/update-varchar-column.md b/examples/2.3.x/console-cli/examples/tablesdb/update-varchar-column.md index 28667f42e..588cec45e 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/update-varchar-column.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/update-varchar-column.md @@ -3,6 +3,6 @@ appwrite tablesdb update-varchar-column \ --database-id '' \ --table-id '' \ --key '' \ - --required false \ - --default 'Hello World' + --required=false \ + --xdefault 'Hello World' ``` diff --git a/examples/2.3.x/console-cli/examples/tablesdb/upsert-rows.md b/examples/2.3.x/console-cli/examples/tablesdb/upsert-rows.md index 2a435ca54..484731c8d 100644 --- a/examples/2.3.x/console-cli/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/console-cli/examples/tablesdb/upsert-rows.md @@ -2,5 +2,5 @@ appwrite tablesdb upsert-rows \ --database-id '' \ --table-id '' \ - --rows one two three + --rows '{"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'"'"'Brien","age":30,"isAdmin":false}' ``` diff --git a/examples/2.3.x/console-cli/examples/teams/create-membership.md b/examples/2.3.x/console-cli/examples/teams/create-membership.md index 1105702d5..ebd4fe532 100644 --- a/examples/2.3.x/console-cli/examples/teams/create-membership.md +++ b/examples/2.3.x/console-cli/examples/teams/create-membership.md @@ -1,5 +1,5 @@ ```bash appwrite teams create-membership \ --team-id '' \ - --roles one two three + --roles editor ``` diff --git a/examples/2.3.x/console-cli/examples/teams/update-membership.md b/examples/2.3.x/console-cli/examples/teams/update-membership.md index b885d3fd4..b1afbe2cd 100644 --- a/examples/2.3.x/console-cli/examples/teams/update-membership.md +++ b/examples/2.3.x/console-cli/examples/teams/update-membership.md @@ -2,5 +2,5 @@ appwrite teams update-membership \ --team-id '' \ --membership-id '' \ - --roles one two three + --roles editor ``` diff --git a/examples/2.3.x/console-cli/examples/teams/update-prefs.md b/examples/2.3.x/console-cli/examples/teams/update-prefs.md index dd9b45cba..232919906 100644 --- a/examples/2.3.x/console-cli/examples/teams/update-prefs.md +++ b/examples/2.3.x/console-cli/examples/teams/update-prefs.md @@ -1,5 +1,5 @@ ```bash appwrite teams update-prefs \ --team-id '' \ - --prefs '{ "key": "value" }' + --prefs '{}' ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-email-verification.md b/examples/2.3.x/console-cli/examples/users/update-email-verification.md index 68a53d9ec..55af0a978 100644 --- a/examples/2.3.x/console-cli/examples/users/update-email-verification.md +++ b/examples/2.3.x/console-cli/examples/users/update-email-verification.md @@ -1,5 +1,5 @@ ```bash appwrite users update-email-verification \ --user-id '' \ - --email-verification false + --email-verification=false ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-impersonator.md b/examples/2.3.x/console-cli/examples/users/update-impersonator.md index 1669722ab..ddb2ae7a9 100644 --- a/examples/2.3.x/console-cli/examples/users/update-impersonator.md +++ b/examples/2.3.x/console-cli/examples/users/update-impersonator.md @@ -1,5 +1,5 @@ ```bash appwrite users update-impersonator \ --user-id '' \ - --impersonator false + --impersonator=false ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-labels.md b/examples/2.3.x/console-cli/examples/users/update-labels.md index 68f7fc081..b0421cd06 100644 --- a/examples/2.3.x/console-cli/examples/users/update-labels.md +++ b/examples/2.3.x/console-cli/examples/users/update-labels.md @@ -1,5 +1,5 @@ ```bash appwrite users update-labels \ --user-id '' \ - --labels one two three + --labels subscriber ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-mfa.md b/examples/2.3.x/console-cli/examples/users/update-mfa.md index 68c09a524..d994cea66 100644 --- a/examples/2.3.x/console-cli/examples/users/update-mfa.md +++ b/examples/2.3.x/console-cli/examples/users/update-mfa.md @@ -1,5 +1,5 @@ ```bash appwrite users update-mfa \ --user-id '' \ - --mfa false + --mfa=false ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-phone-verification.md b/examples/2.3.x/console-cli/examples/users/update-phone-verification.md index c161f06fd..1298be059 100644 --- a/examples/2.3.x/console-cli/examples/users/update-phone-verification.md +++ b/examples/2.3.x/console-cli/examples/users/update-phone-verification.md @@ -1,5 +1,5 @@ ```bash appwrite users update-phone-verification \ --user-id '' \ - --phone-verification false + --phone-verification=false ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-prefs.md b/examples/2.3.x/console-cli/examples/users/update-prefs.md index b7942f73f..d6f42b177 100644 --- a/examples/2.3.x/console-cli/examples/users/update-prefs.md +++ b/examples/2.3.x/console-cli/examples/users/update-prefs.md @@ -1,5 +1,5 @@ ```bash appwrite users update-prefs \ --user-id '' \ - --prefs '{ "key": "value" }' + --prefs '{}' ``` diff --git a/examples/2.3.x/console-cli/examples/users/update-status.md b/examples/2.3.x/console-cli/examples/users/update-status.md index 5312d0c71..821a38c45 100644 --- a/examples/2.3.x/console-cli/examples/users/update-status.md +++ b/examples/2.3.x/console-cli/examples/users/update-status.md @@ -1,5 +1,5 @@ ```bash appwrite users update-status \ --user-id '' \ - --status false + --status=false ``` diff --git a/examples/2.3.x/console-cli/examples/vectorsdb/create-collection.md b/examples/2.3.x/console-cli/examples/vectorsdb/create-collection.md index c03fd786c..0c0e3ec40 100644 --- a/examples/2.3.x/console-cli/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/console-cli/examples/vectorsdb/create-collection.md @@ -3,5 +3,5 @@ appwrite vectorsdb create-collection \ --database-id '' \ --collection-id '' \ --name '' \ - --dimension 1 + --dimension 4 ``` diff --git a/examples/2.3.x/console-cli/examples/vectorsdb/create-document.md b/examples/2.3.x/console-cli/examples/vectorsdb/create-document.md index 4fdd19bd7..f4d463581 100644 --- a/examples/2.3.x/console-cli/examples/vectorsdb/create-document.md +++ b/examples/2.3.x/console-cli/examples/vectorsdb/create-document.md @@ -3,5 +3,5 @@ appwrite vectorsdb create-document \ --database-id '' \ --collection-id '' \ --document-id '' \ - --data '{ "key": "value" }' + --data '{"embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"key":"value"}}' ``` diff --git a/examples/2.3.x/console-cli/examples/vectorsdb/create-documents.md b/examples/2.3.x/console-cli/examples/vectorsdb/create-documents.md index a47c7dc0b..45a113f65 100644 --- a/examples/2.3.x/console-cli/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/console-cli/examples/vectorsdb/create-documents.md @@ -2,5 +2,5 @@ appwrite vectorsdb create-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"name":"First document"}}' ``` diff --git a/examples/2.3.x/console-cli/examples/vectorsdb/create-index.md b/examples/2.3.x/console-cli/examples/vectorsdb/create-index.md index 98d47f7de..cbca707ca 100644 --- a/examples/2.3.x/console-cli/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/console-cli/examples/vectorsdb/create-index.md @@ -4,5 +4,5 @@ appwrite vectorsdb create-index \ --collection-id '' \ --key '' \ --type hnsw_euclidean \ - --attributes one two three + --attributes embeddings ``` diff --git a/examples/2.3.x/console-cli/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/console-cli/examples/vectorsdb/upsert-documents.md index 01ca49d71..304e814f1 100644 --- a/examples/2.3.x/console-cli/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/console-cli/examples/vectorsdb/upsert-documents.md @@ -2,5 +2,5 @@ appwrite vectorsdb upsert-documents \ --database-id '' \ --collection-id '' \ - --documents one two three + --documents '{"$id":"example1","embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"name":"First document"}}' ``` diff --git a/examples/2.3.x/console-cli/examples/webhooks/create.md b/examples/2.3.x/console-cli/examples/webhooks/create.md index 5683ae0e3..d9c2b7ffe 100644 --- a/examples/2.3.x/console-cli/examples/webhooks/create.md +++ b/examples/2.3.x/console-cli/examples/webhooks/create.md @@ -3,5 +3,5 @@ appwrite webhooks create \ --webhook-id '' \ --url https://example.com/webhook \ --name '' \ - --events one two three + --events 'users.*.create' ``` diff --git a/examples/2.3.x/console-cli/examples/webhooks/update.md b/examples/2.3.x/console-cli/examples/webhooks/update.md index 5a62554f4..94c2dc3c5 100644 --- a/examples/2.3.x/console-cli/examples/webhooks/update.md +++ b/examples/2.3.x/console-cli/examples/webhooks/update.md @@ -3,5 +3,5 @@ appwrite webhooks update \ --webhook-id '' \ --name '' \ --url https://example.com/webhook \ - --events one two three + --events 'users.*.create' ``` diff --git a/examples/2.3.x/console-python/examples/account/create-email-password-session.md b/examples/2.3.x/console-python/examples/account/create-email-password-session.md index e40405df1..aa59005c5 100644 --- a/examples/2.3.x/console-python/examples/account/create-email-password-session.md +++ b/examples/2.3.x/console-python/examples/account/create-email-password-session.md @@ -11,7 +11,8 @@ account = Account(client) result: Session = account.create_email_password_session( email = 'email@example.com', - password = 'password' + password = 'password', + duration = 60 # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/account/delete-sessions.md b/examples/2.3.x/console-python/examples/account/delete-sessions.md index db350d07f..fcc01eaa0 100644 --- a/examples/2.3.x/console-python/examples/account/delete-sessions.md +++ b/examples/2.3.x/console-python/examples/account/delete-sessions.md @@ -8,5 +8,7 @@ client.set_project('') # Your project ID account = Account(client) -result = account.delete_sessions() +result = account.delete_sessions( + current = False # optional +) ``` diff --git a/examples/2.3.x/console-python/examples/account/list-sessions.md b/examples/2.3.x/console-python/examples/account/list-sessions.md index 02834b821..a3cc17285 100644 --- a/examples/2.3.x/console-python/examples/account/list-sessions.md +++ b/examples/2.3.x/console-python/examples/account/list-sessions.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID account = Account(client) -result: SessionList = account.list_sessions() +result: SessionList = account.list_sessions( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/analytics/create-event.md b/examples/2.3.x/console-python/examples/analytics/create-event.md new file mode 100644 index 000000000..4a4df77d8 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/create-event.md @@ -0,0 +1,26 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result = analytics.create_event( + property_id = '', + name = '', + url = 'https://example.com', + domain = '', # optional + referrer = '', # optional + screen_width = None, # optional + session_hash = '', # optional + scroll_depth = 0, # optional + engagement_time = None, # optional + props = [], # optional + user_id = '', # optional + ip = '', # optional + user_agent = '' # optional +) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/create-property.md b/examples/2.3.x/console-python/examples/analytics/create-property.md new file mode 100644 index 000000000..d88ddbcf4 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/create-property.md @@ -0,0 +1,23 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics +from appwrite_console.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.create_property( + property_id = '', + name = '', + domain = '', # optional + timezone = '', # optional + enabled = False, # optional + public = False, # optional + allowed_origins = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/delete-property.md b/examples/2.3.x/console-python/examples/analytics/delete-property.md new file mode 100644 index 000000000..b6709565d --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/delete-property.md @@ -0,0 +1,14 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result = analytics.delete_property( + property_id = '' +) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/get-property.md b/examples/2.3.x/console-python/examples/analytics/get-property.md new file mode 100644 index 000000000..3537be821 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/get-property.md @@ -0,0 +1,17 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics +from appwrite_console.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.get_property( + property_id = '' +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/list-metrics.md b/examples/2.3.x/console-python/examples/analytics/list-metrics.md new file mode 100644 index 000000000..c1c660c74 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/list-metrics.md @@ -0,0 +1,26 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics +from appwrite_console.models import AnalyticsMetricList +from appwrite_console.enums import AnalyticsInterval +from appwrite_console.enums import AnalyticsDimension + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result: AnalyticsMetricList = analytics.list_metrics( + property_id = '', + queries = [], # optional + interval = AnalyticsInterval.ONE_HOUR, # optional + dimensions = [AnalyticsDimension.COUNTRY], # optional + date_range = '', # optional + start_at = '2020-10-15T06:38:00.000+00:00', # optional + end_at = '2020-10-15T06:38:00.000+00:00', # optional + limit = 1 # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/list-properties.md b/examples/2.3.x/console-python/examples/analytics/list-properties.md new file mode 100644 index 000000000..1c952b1c4 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/list-properties.md @@ -0,0 +1,19 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics +from appwrite_console.models import AnalyticsPropertyList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result: AnalyticsPropertyList = analytics.list_properties( + queries = [], # optional + search = '', # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/analytics/update-property.md b/examples/2.3.x/console-python/examples/analytics/update-property.md new file mode 100644 index 000000000..0f7fb33e3 --- /dev/null +++ b/examples/2.3.x/console-python/examples/analytics/update-property.md @@ -0,0 +1,23 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.analytics import Analytics +from appwrite_console.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.update_property( + property_id = '', + name = '', # optional + domain = '', # optional + timezone = '', # optional + enabled = False, # optional + public = False, # optional + allowed_origins = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/avatars/delete-photo.md b/examples/2.3.x/console-python/examples/avatars/delete-photo.md new file mode 100644 index 000000000..774d22d7e --- /dev/null +++ b/examples/2.3.x/console-python/examples/avatars/delete-photo.md @@ -0,0 +1,12 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.avatars import Avatars + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +avatars = Avatars(client) + +result = avatars.delete_photo() +``` diff --git a/examples/2.3.x/console-python/examples/avatars/get-screenshot.md b/examples/2.3.x/console-python/examples/avatars/get-screenshot.md index 5f74ca094..a2d91f3e0 100644 --- a/examples/2.3.x/console-python/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/console-python/examples/avatars/get-screenshot.md @@ -15,8 +15,7 @@ avatars = Avatars(client) result: bytes = avatars.get_screenshot( url = 'https://example.com', headers = { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" }, # optional viewport_width = 1920, # optional viewport_height = 1080, # optional diff --git a/examples/2.3.x/console-python/examples/avatars/update-photo.md b/examples/2.3.x/console-python/examples/avatars/update-photo.md new file mode 100644 index 000000000..3ca31c94e --- /dev/null +++ b/examples/2.3.x/console-python/examples/avatars/update-photo.md @@ -0,0 +1,18 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.avatars import Avatars +from appwrite_console.input_file import InputFile +from appwrite_console.models import Account + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +avatars = Avatars(client) + +result: Account = avatars.update_photo( + file = InputFile.from_path('file.png') +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/console/list-o-auth-2-providers.md b/examples/2.3.x/console-python/examples/console/list-o-auth-2-providers.md index 7acf8ad66..026a0daf3 100644 --- a/examples/2.3.x/console-python/examples/console/list-o-auth-2-providers.md +++ b/examples/2.3.x/console-python/examples/console/list-o-auth-2-providers.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID console = Console(client) -result: ConsoleOAuth2ProviderList = console.list_o_auth2_providers() +result: ConsoleOAuth2ProviderList = console.list_o_auth2_providers( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/console/list-organization-scopes.md b/examples/2.3.x/console-python/examples/console/list-organization-scopes.md index 7dff56c55..12f3648ff 100644 --- a/examples/2.3.x/console-python/examples/console/list-organization-scopes.md +++ b/examples/2.3.x/console-python/examples/console/list-organization-scopes.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID console = Console(client) -result: ConsoleKeyScopeList = console.list_organization_scopes() +result: ConsoleKeyScopeList = console.list_organization_scopes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/console/list-project-scopes.md b/examples/2.3.x/console-python/examples/console/list-project-scopes.md index 85fb60dd3..cc5cbb770 100644 --- a/examples/2.3.x/console-python/examples/console/list-project-scopes.md +++ b/examples/2.3.x/console-python/examples/console/list-project-scopes.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID console = Console(client) -result: ConsoleKeyScopeList = console.list_project_scopes() +result: ConsoleKeyScopeList = console.list_project_scopes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/databases/create-documents.md b/examples/2.3.x/console-python/examples/databases/create-documents.md index 39d39625b..577975a19 100644 --- a/examples/2.3.x/console-python/examples/databases/create-documents.md +++ b/examples/2.3.x/console-python/examples/databases/create-documents.md @@ -12,7 +12,16 @@ databases = Databases(client) result: DocumentList = databases.create_documents( database_id = '', collection_id = '', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/databases/create-index.md b/examples/2.3.x/console-python/examples/databases/create-index.md index 1310e83d6..09c077db1 100644 --- a/examples/2.3.x/console-python/examples/databases/create-index.md +++ b/examples/2.3.x/console-python/examples/databases/create-index.md @@ -16,7 +16,7 @@ result: Index = databases.create_index( collection_id = '', key = '', type = DatabasesIndexType.KEY, - attributes = [], + attributes = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/console-python/examples/databases/delete-documents.md b/examples/2.3.x/console-python/examples/databases/delete-documents.md index 94d91cb1b..16f36b692 100644 --- a/examples/2.3.x/console-python/examples/databases/delete-documents.md +++ b/examples/2.3.x/console-python/examples/databases/delete-documents.md @@ -12,7 +12,7 @@ databases = Databases(client) result: DocumentList = databases.delete_documents( database_id = '', collection_id = '', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"\"]}"], # optional transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/databases/get-attribute.md b/examples/2.3.x/console-python/examples/databases/get-attribute.md index bd077abaa..af8ace3bf 100644 --- a/examples/2.3.x/console-python/examples/databases/get-attribute.md +++ b/examples/2.3.x/console-python/examples/databases/get-attribute.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.databases import Databases from appwrite_console.models import AttributeBoolean +from appwrite_console.models import AttributeBigint from appwrite_console.models import AttributeInteger from appwrite_console.models import AttributeFloat from appwrite_console.models import AttributeEmail @@ -10,6 +11,13 @@ from appwrite_console.models import AttributeUrl from appwrite_console.models import AttributeIp from appwrite_console.models import AttributeDatetime from appwrite_console.models import AttributeRelationship +from appwrite_console.models import AttributePoint +from appwrite_console.models import AttributeLine +from appwrite_console.models import AttributePolygon +from appwrite_console.models import AttributeVarchar +from appwrite_console.models import AttributeText +from appwrite_console.models import AttributeMediumtext +from appwrite_console.models import AttributeLongtext from appwrite_console.models import AttributeString from typing import Union @@ -19,7 +27,7 @@ client.set_project('') # Your project ID databases = Databases(client) -result: Union[AttributeBoolean, AttributeInteger, AttributeFloat, AttributeEmail, AttributeEnum, AttributeUrl, AttributeIp, AttributeDatetime, AttributeRelationship, AttributeString] = databases.get_attribute( +result: Union[AttributeBoolean, AttributeBigint, AttributeInteger, AttributeFloat, AttributeEmail, AttributeEnum, AttributeUrl, AttributeIp, AttributeDatetime, AttributeRelationship, AttributePoint, AttributeLine, AttributePolygon, AttributeVarchar, AttributeText, AttributeMediumtext, AttributeLongtext, AttributeString] = databases.get_attribute( database_id = '', collection_id = '', key = '' diff --git a/examples/2.3.x/console-python/examples/databases/list-transactions.md b/examples/2.3.x/console-python/examples/databases/list-transactions.md index 868d95522..d37462e41 100644 --- a/examples/2.3.x/console-python/examples/databases/list-transactions.md +++ b/examples/2.3.x/console-python/examples/databases/list-transactions.md @@ -10,7 +10,8 @@ client.set_project('') # Your project ID databases = Databases(client) result: TransactionList = databases.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/databases/upsert-documents.md b/examples/2.3.x/console-python/examples/databases/upsert-documents.md index 2cde1e4f9..c6c441ffc 100644 --- a/examples/2.3.x/console-python/examples/databases/upsert-documents.md +++ b/examples/2.3.x/console-python/examples/databases/upsert-documents.md @@ -12,7 +12,16 @@ databases = Databases(client) result: DocumentList = databases.upsert_documents( database_id = '', collection_id = '', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/documentsdb/create-documents.md b/examples/2.3.x/console-python/examples/documentsdb/create-documents.md index e4b9926ea..47482fb74 100644 --- a/examples/2.3.x/console-python/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/console-python/examples/documentsdb/create-documents.md @@ -12,7 +12,16 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.create_documents( database_id = '', collection_id = '', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/documentsdb/create-index.md b/examples/2.3.x/console-python/examples/documentsdb/create-index.md index 9f6ed7f5f..5410dc414 100644 --- a/examples/2.3.x/console-python/examples/documentsdb/create-index.md +++ b/examples/2.3.x/console-python/examples/documentsdb/create-index.md @@ -16,7 +16,7 @@ result: Index = documents_db.create_index( collection_id = '', key = '', type = DocumentsDBIndexType.KEY, - attributes = [], + attributes = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/console-python/examples/documentsdb/delete-documents.md b/examples/2.3.x/console-python/examples/documentsdb/delete-documents.md index a772b969a..0e9da1734 100644 --- a/examples/2.3.x/console-python/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/console-python/examples/documentsdb/delete-documents.md @@ -12,7 +12,7 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.delete_documents( database_id = '', collection_id = '', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"\"]}"], # optional transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/documentsdb/list-transactions.md b/examples/2.3.x/console-python/examples/documentsdb/list-transactions.md index cb1db3563..703475aa7 100644 --- a/examples/2.3.x/console-python/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/console-python/examples/documentsdb/list-transactions.md @@ -10,7 +10,8 @@ client.set_project('') # Your project ID documents_db = DocumentsDB(client) result: TransactionList = documents_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/documentsdb/upsert-documents.md b/examples/2.3.x/console-python/examples/documentsdb/upsert-documents.md index 9cf057d7a..2e8e33c27 100644 --- a/examples/2.3.x/console-python/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/console-python/examples/documentsdb/upsert-documents.md @@ -12,7 +12,16 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.upsert_documents( database_id = '', collection_id = '', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '' # optional ) diff --git a/examples/2.3.x/console-python/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/console-python/examples/embeddings/create-text-embeddings.md index 1ed437b62..c2a920bc5 100644 --- a/examples/2.3.x/console-python/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/console-python/examples/embeddings/create-text-embeddings.md @@ -11,7 +11,7 @@ client.set_project('') # Your project ID embeddings = Embeddings(client) result: EmbeddingList = embeddings.create_text_embeddings( - texts = [], + texts = ["Appwrite helps developers build applications.", "Find documents with semantic search."], model = EmbeddingModel.NOMIC_EMBED_TEXT # optional ) diff --git a/examples/2.3.x/console-python/examples/functions/list-runtimes.md b/examples/2.3.x/console-python/examples/functions/list-runtimes.md index f34385651..c23f5418b 100644 --- a/examples/2.3.x/console-python/examples/functions/list-runtimes.md +++ b/examples/2.3.x/console-python/examples/functions/list-runtimes.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID functions = Functions(client) -result: RuntimeList = functions.list_runtimes() +result: RuntimeList = functions.list_runtimes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/functions/list-specifications.md b/examples/2.3.x/console-python/examples/functions/list-specifications.md index 5bb501568..ced166cc1 100644 --- a/examples/2.3.x/console-python/examples/functions/list-specifications.md +++ b/examples/2.3.x/console-python/examples/functions/list-specifications.md @@ -10,7 +10,8 @@ client.set_project('') # Your project ID functions = Functions(client) result: SpecificationList = functions.list_specifications( - type = 'runtimes' # optional + type = 'runtimes', # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/graphql/mutation.md b/examples/2.3.x/console-python/examples/graphql/mutation.md index 3b9d4fd4a..641c0badc 100644 --- a/examples/2.3.x/console-python/examples/graphql/mutation.md +++ b/examples/2.3.x/console-python/examples/graphql/mutation.md @@ -9,6 +9,8 @@ client.set_project('') # Your project ID graphql = Graphql(client) result = graphql.mutation( - query = {} + query = { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } ) ``` diff --git a/examples/2.3.x/console-python/examples/graphql/query.md b/examples/2.3.x/console-python/examples/graphql/query.md index 111ee1fc3..43604a95c 100644 --- a/examples/2.3.x/console-python/examples/graphql/query.md +++ b/examples/2.3.x/console-python/examples/graphql/query.md @@ -9,6 +9,8 @@ client.set_project('') # Your project ID graphql = Graphql(client) result = graphql.query( - query = {} + query = { + "query": "query { localeGet { ip } }" + } ) ``` diff --git a/examples/2.3.x/console-python/examples/growth/create-conversation.md b/examples/2.3.x/console-python/examples/growth/create-conversation.md new file mode 100644 index 000000000..bf3589bc9 --- /dev/null +++ b/examples/2.3.x/console-python/examples/growth/create-conversation.md @@ -0,0 +1,27 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.growth import Growth +from appwrite_console.input_file import InputFile +from appwrite_console.models import GrowthConversation +from appwrite_console.enums import ConversationType + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +growth = Growth(client) + +result: GrowthConversation = growth.create_conversation( + type = ConversationType.SUPPORT, + email = 'email@example.com', # optional + name = '', # optional + subject = '', # optional + message = '', # optional + organization_id = '', # optional + project_id = '', # optional + attributes = {}, # optional + attachment = InputFile.from_path('file.png') # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/growth/create-installation.md b/examples/2.3.x/console-python/examples/growth/create-installation.md new file mode 100644 index 000000000..bc45922b6 --- /dev/null +++ b/examples/2.3.x/console-python/examples/growth/create-installation.md @@ -0,0 +1,24 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.growth import Growth + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID + +growth = Growth(client) + +result = growth.create_installation( + email = 'email@example.com', # optional + name = '', # optional + version = '', # optional + domain = '', # optional + database = '', # optional + host_ip = '', # optional + user_agent = '', # optional + os = '', # optional + arch = '', # optional + cpus = None, # optional + ram = None # optional +) +``` diff --git a/examples/2.3.x/console-python/examples/locale/list-codes.md b/examples/2.3.x/console-python/examples/locale/list-codes.md index 1da3d63d4..56d2c84c6 100644 --- a/examples/2.3.x/console-python/examples/locale/list-codes.md +++ b/examples/2.3.x/console-python/examples/locale/list-codes.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: LocaleCodeList = locale.list_codes() +result: LocaleCodeList = locale.list_codes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-continents.md b/examples/2.3.x/console-python/examples/locale/list-continents.md index 4e8f44fe9..08e1c5a62 100644 --- a/examples/2.3.x/console-python/examples/locale/list-continents.md +++ b/examples/2.3.x/console-python/examples/locale/list-continents.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: ContinentList = locale.list_continents() +result: ContinentList = locale.list_continents( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-countries-eu.md b/examples/2.3.x/console-python/examples/locale/list-countries-eu.md index 7b70b948e..1924728db 100644 --- a/examples/2.3.x/console-python/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/console-python/examples/locale/list-countries-eu.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: CountryList = locale.list_countries_eu() +result: CountryList = locale.list_countries_eu( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-countries-phones.md b/examples/2.3.x/console-python/examples/locale/list-countries-phones.md index 2b9c8233c..b9ebcbc0d 100644 --- a/examples/2.3.x/console-python/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/console-python/examples/locale/list-countries-phones.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: PhoneList = locale.list_countries_phones() +result: PhoneList = locale.list_countries_phones( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-countries.md b/examples/2.3.x/console-python/examples/locale/list-countries.md index 096755844..c9edb0e69 100644 --- a/examples/2.3.x/console-python/examples/locale/list-countries.md +++ b/examples/2.3.x/console-python/examples/locale/list-countries.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: CountryList = locale.list_countries() +result: CountryList = locale.list_countries( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-currencies.md b/examples/2.3.x/console-python/examples/locale/list-currencies.md index 8d523fb68..8e4f0dbbd 100644 --- a/examples/2.3.x/console-python/examples/locale/list-currencies.md +++ b/examples/2.3.x/console-python/examples/locale/list-currencies.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: CurrencyList = locale.list_currencies() +result: CurrencyList = locale.list_currencies( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/locale/list-languages.md b/examples/2.3.x/console-python/examples/locale/list-languages.md index e1ef07e7b..01bc58708 100644 --- a/examples/2.3.x/console-python/examples/locale/list-languages.md +++ b/examples/2.3.x/console-python/examples/locale/list-languages.md @@ -9,7 +9,9 @@ client.set_project('') # Your project ID locale = Locale(client) -result: LanguageList = locale.list_languages() +result: LanguageList = locale.list_languages( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/messaging/create-push.md b/examples/2.3.x/console-python/examples/messaging/create-push.md index 6843674be..d5cf8e090 100644 --- a/examples/2.3.x/console-python/examples/messaging/create-push.md +++ b/examples/2.3.x/console-python/examples/messaging/create-push.md @@ -29,7 +29,8 @@ result: Message = messaging.create_push( scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional content_available = False, # optional critical = False, # optional - priority = MessagePriority.NORMAL # optional + priority = MessagePriority.NORMAL, # optional + channel_id = '' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/messaging/update-email.md b/examples/2.3.x/console-python/examples/messaging/update-email.md index 2a60946db..9f850c8d1 100644 --- a/examples/2.3.x/console-python/examples/messaging/update-email.md +++ b/examples/2.3.x/console-python/examples/messaging/update-email.md @@ -11,19 +11,19 @@ messaging = Messaging(client) result: Message = messaging.update_email( message_id = '', + subject = '', # optional + content = '', # optional topics = [], # optional users = [], # optional targets = [], # optional - subject = '', # optional - content = '', # optional - draft = False, # optional - html = False, # optional cc = [], # optional bcc = [], # optional + attachments = [], # optional reply_to_email = 'email@example.com', # optional reply_to_name = '', # optional - scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional - attachments = [] # optional + draft = False, # optional + html = False, # optional + scheduled_at = '2020-10-15T06:38:00.000+00:00' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/messaging/update-push.md b/examples/2.3.x/console-python/examples/messaging/update-push.md index 1adf64f8d..e7532b6c6 100644 --- a/examples/2.3.x/console-python/examples/messaging/update-push.md +++ b/examples/2.3.x/console-python/examples/messaging/update-push.md @@ -12,11 +12,11 @@ messaging = Messaging(client) result: Message = messaging.update_push( message_id = '', + title = '', # optional + body = '<BODY>', # optional topics = [], # optional users = [], # optional targets = [], # optional - title = '<TITLE>', # optional - body = '<BODY>', # optional data = {}, # optional action = '<ACTION>', # optional image = '<ID1:ID2>', # optional @@ -29,7 +29,8 @@ result: Message = messaging.update_push( scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional content_available = False, # optional critical = False, # optional - priority = MessagePriority.NORMAL # optional + priority = MessagePriority.NORMAL, # optional + channel_id = '<CHANNEL_ID>' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/messaging/update-sms.md b/examples/2.3.x/console-python/examples/messaging/update-sms.md index 8660189c7..d1cb88a3a 100644 --- a/examples/2.3.x/console-python/examples/messaging/update-sms.md +++ b/examples/2.3.x/console-python/examples/messaging/update-sms.md @@ -11,10 +11,10 @@ messaging = Messaging(client) result: Message = messaging.update_sms( message_id = '<MESSAGE_ID>', + content = '<CONTENT>', # optional topics = [], # optional users = [], # optional targets = [], # optional - content = '<CONTENT>', # optional draft = False, # optional scheduled_at = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/console-python/examples/notifications/list.md b/examples/2.3.x/console-python/examples/notifications/list.md index 378c548ad..86fd0daaa 100644 --- a/examples/2.3.x/console-python/examples/notifications/list.md +++ b/examples/2.3.x/console-python/examples/notifications/list.md @@ -10,7 +10,8 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID notifications = Notifications(client) result: NotificationList = notifications.list( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/console-python/examples/organization/create-ephemeral-project-key.md index 925f94809..e4980904d 100644 --- a/examples/2.3.x/console-python/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/console-python/examples/organization/create-ephemeral-project-key.md @@ -12,7 +12,7 @@ organization = Organization(client) result: EphemeralKey = organization.create_ephemeral_project_key( project_id = '<PROJECT_ID>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], duration = 600 ) diff --git a/examples/2.3.x/console-python/examples/organization/create-project-key.md b/examples/2.3.x/console-python/examples/organization/create-project-key.md index e0843bae1..1fe2e4e71 100644 --- a/examples/2.3.x/console-python/examples/organization/create-project-key.md +++ b/examples/2.3.x/console-python/examples/organization/create-project-key.md @@ -14,7 +14,7 @@ result: Key = organization.create_project_key( project_id = '<PROJECT_ID>', key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/console-python/examples/organization/update-project-key.md b/examples/2.3.x/console-python/examples/organization/update-project-key.md index b17a46a2d..79b162b37 100644 --- a/examples/2.3.x/console-python/examples/organization/update-project-key.md +++ b/examples/2.3.x/console-python/examples/organization/update-project-key.md @@ -14,7 +14,7 @@ result: Key = organization.update_project_key( project_id = '<PROJECT_ID>', key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/console-python/examples/project/create-ephemeral-key.md b/examples/2.3.x/console-python/examples/project/create-ephemeral-key.md index 41fb5da61..8125e78da 100644 --- a/examples/2.3.x/console-python/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/console-python/examples/project/create-ephemeral-key.md @@ -11,7 +11,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID project = Project(client) result: EphemeralKey = project.create_ephemeral_key( - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], duration = 600 ) diff --git a/examples/2.3.x/console-python/examples/project/create-key.md b/examples/2.3.x/console-python/examples/project/create-key.md index 75eed1da8..60d8d9b8a 100644 --- a/examples/2.3.x/console-python/examples/project/create-key.md +++ b/examples/2.3.x/console-python/examples/project/create-key.md @@ -13,7 +13,7 @@ project = Project(client) result: Key = project.create_key( key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/console-python/examples/project/create-smtp-test.md b/examples/2.3.x/console-python/examples/project/create-smtp-test.md index 6eb08cfb7..c95a30d80 100644 --- a/examples/2.3.x/console-python/examples/project/create-smtp-test.md +++ b/examples/2.3.x/console-python/examples/project/create-smtp-test.md @@ -9,6 +9,6 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID project = Project(client) result = project.create_smtp_test( - emails = [] + emails = ["recipient@example.com"] ) ``` diff --git a/examples/2.3.x/console-python/examples/project/get-o-auth-2-provider.md b/examples/2.3.x/console-python/examples/project/get-o-auth-2-provider.md index 031e2abcf..93afe8408 100644 --- a/examples/2.3.x/console-python/examples/project/get-o-auth-2-provider.md +++ b/examples/2.3.x/console-python/examples/project/get-o-auth-2-provider.md @@ -16,6 +16,7 @@ from appwrite_console.models import OAuth2Zoho from appwrite_console.models import OAuth2Yandex from appwrite_console.models import OAuth2X from appwrite_console.models import OAuth2WordPress +from appwrite_console.models import OAuth2Webflow from appwrite_console.models import OAuth2Twitch from appwrite_console.models import OAuth2Stripe from appwrite_console.models import OAuth2Spotify @@ -55,7 +56,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID project = Project(client) -result: Union[OAuth2Github, OAuth2Discord, OAuth2Figma, OAuth2Dropbox, OAuth2Dailymotion, OAuth2Bitbucket, OAuth2Bitly, OAuth2Box, OAuth2Autodesk, OAuth2Google, OAuth2Zoom, OAuth2Zoho, OAuth2Yandex, OAuth2X, OAuth2WordPress, OAuth2Twitch, OAuth2Stripe, OAuth2Spotify, OAuth2Slack, OAuth2Podio, OAuth2Notion, OAuth2Salesforce, OAuth2Yahoo, OAuth2HuggingFace, OAuth2Resend, OAuth2Cloudflare, OAuth2Linkedin, OAuth2Disqus, OAuth2Amazon, OAuth2Etsy, OAuth2Facebook, OAuth2Tradeshift, OAuth2Paypal, OAuth2Gitlab, OAuth2Authentik, OAuth2Auth0, OAuth2FusionAuth, OAuth2Keycloak, OAuth2Oidc, OAuth2Apple, OAuth2Okta, OAuth2Kick, OAuth2Microsoft, OAuth2TikTok, OAuth2Kakao] = project.get_o_auth2_provider( +result: Union[OAuth2Github, OAuth2Discord, OAuth2Figma, OAuth2Dropbox, OAuth2Dailymotion, OAuth2Bitbucket, OAuth2Bitly, OAuth2Box, OAuth2Autodesk, OAuth2Google, OAuth2Zoom, OAuth2Zoho, OAuth2Yandex, OAuth2X, OAuth2WordPress, OAuth2Webflow, OAuth2Twitch, OAuth2Stripe, OAuth2Spotify, OAuth2Slack, OAuth2Podio, OAuth2Notion, OAuth2Salesforce, OAuth2Yahoo, OAuth2HuggingFace, OAuth2Resend, OAuth2Cloudflare, OAuth2Linkedin, OAuth2Disqus, OAuth2Amazon, OAuth2Etsy, OAuth2Facebook, OAuth2Tradeshift, OAuth2Paypal, OAuth2Gitlab, OAuth2Authentik, OAuth2Auth0, OAuth2FusionAuth, OAuth2Keycloak, OAuth2Oidc, OAuth2Apple, OAuth2Okta, OAuth2Kick, OAuth2Microsoft, OAuth2TikTok, OAuth2Kakao] = project.get_o_auth2_provider( provider_id = ProjectOAuthProviderId.AMAZON ) diff --git a/examples/2.3.x/console-python/examples/project/update-key.md b/examples/2.3.x/console-python/examples/project/update-key.md index 2f948dde4..4842f952d 100644 --- a/examples/2.3.x/console-python/examples/project/update-key.md +++ b/examples/2.3.x/console-python/examples/project/update-key.md @@ -13,7 +13,7 @@ project = Project(client) result: Key = project.update_key( key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-labels.md b/examples/2.3.x/console-python/examples/project/update-labels.md index 32afbb13a..936b29294 100644 --- a/examples/2.3.x/console-python/examples/project/update-labels.md +++ b/examples/2.3.x/console-python/examples/project/update-labels.md @@ -10,7 +10,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID project = Project(client) result: ProjectModel = project.update_labels( - labels = [] + labels = ["production"] ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-auth-0.md index 27f4b0b88..6fe0631f5 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-auth-0.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Auth0 +from appwrite_console.enums import ProjectOAuth2Auth0Prompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ result: OAuth2Auth0 = project.update_o_auth2_auth0( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional endpoint = '<ENDPOINT>', # optional + prompt = [ProjectOAuth2Auth0Prompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-discord.md index 5487c5c00..b67864490 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-discord.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Discord +from appwrite_console.enums import ProjectOAuth2DiscordPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,6 +13,7 @@ project = Project(client) result: OAuth2Discord = project.update_o_auth2_discord( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2DiscordPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-git-hub.md index 4cd8a08c8..1fa6afbc4 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-git-hub.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Github +from appwrite_console.enums import ProjectOAuth2GitHubPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,6 +13,7 @@ project = Project(client) result: OAuth2Github = project.update_o_auth2_git_hub( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2GitHubPrompt.SELECT_ACCOUNT], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-kakao.md index 49da8ef7a..01b42d558 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-kakao.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Kakao +from appwrite_console.enums import ProjectOAuth2KakaoPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,6 +13,7 @@ project = Project(client) result: OAuth2Kakao = project.update_o_auth2_kakao( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2KakaoPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-microsoft.md index c70f3e974..d03411fa3 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-microsoft.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Microsoft +from appwrite_console.enums import ProjectOAuth2MicrosoftPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ result: OAuth2Microsoft = project.update_o_auth2_microsoft( application_id = '<APPLICATION_ID>', # optional application_secret = '<APPLICATION_SECRET>', # optional tenant = '<TENANT>', # optional + prompt = [ProjectOAuth2MicrosoftPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-okta.md index 459dac8da..1756c3844 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-okta.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Okta +from appwrite_console.enums import ProjectOAuth2OktaPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result: OAuth2Okta = project.update_o_auth2_okta( client_secret = '<CLIENT_SECRET>', # optional domain = 'example.com', # optional authorization_server_id = '<AUTHORIZATION_SERVER_ID>', # optional + prompt = [ProjectOAuth2OktaPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-salesforce.md index 3742515b8..a92e1bda4 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-salesforce.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Salesforce +from appwrite_console.enums import ProjectOAuth2SalesforcePrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,6 +13,7 @@ project = Project(client) result: OAuth2Salesforce = project.update_o_auth2_salesforce( customer_key = '<CUSTOMER_KEY>', # optional customer_secret = '<CUSTOMER_SECRET>', # optional + prompt = [ProjectOAuth2SalesforcePrompt.LOGIN], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..b2ef5387e --- /dev/null +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,19 @@ +```python +from appwrite_console.client import Client +from appwrite_console.services.project import Project +from appwrite_console.models import OAuth2Webflow + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID + +project = Project(client) + +result: OAuth2Webflow = project.update_o_auth2_webflow( + client_id = '<CLIENT_ID>', # optional + client_secret = '<CLIENT_SECRET>', # optional + enabled = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/console-python/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/console-python/examples/project/update-o-auth-2-zoho.md index 92f5ede73..2d36ddb08 100644 --- a/examples/2.3.x/console-python/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/console-python/examples/project/update-o-auth-2-zoho.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.project import Project from appwrite_console.models import OAuth2Zoho +from appwrite_console.enums import ProjectOAuth2ZohoPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -12,6 +13,7 @@ project = Project(client) result: OAuth2Zoho = project.update_o_auth2_zoho( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2ZohoPrompt.CONSENT], # optional enabled = False # optional ) diff --git a/examples/2.3.x/console-python/examples/sites/list-frameworks.md b/examples/2.3.x/console-python/examples/sites/list-frameworks.md index a765ccbdc..bb22e2500 100644 --- a/examples/2.3.x/console-python/examples/sites/list-frameworks.md +++ b/examples/2.3.x/console-python/examples/sites/list-frameworks.md @@ -9,7 +9,9 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID sites = Sites(client) -result: FrameworkList = sites.list_frameworks() +result: FrameworkList = sites.list_frameworks( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/console-python/examples/sites/list-specifications.md b/examples/2.3.x/console-python/examples/sites/list-specifications.md index 3ea154b3a..81e0371df 100644 --- a/examples/2.3.x/console-python/examples/sites/list-specifications.md +++ b/examples/2.3.x/console-python/examples/sites/list-specifications.md @@ -10,7 +10,8 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID sites = Sites(client) result: SpecificationList = sites.list_specifications( - type = 'runtimes' # optional + type = 'runtimes', # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/sites/list-templates.md b/examples/2.3.x/console-python/examples/sites/list-templates.md index 737df7edf..3a3f0e00b 100644 --- a/examples/2.3.x/console-python/examples/sites/list-templates.md +++ b/examples/2.3.x/console-python/examples/sites/list-templates.md @@ -15,7 +15,8 @@ result: TemplateSiteList = sites.list_templates( frameworks = [Framework.ANALOG], # optional use_cases = [SiteTemplateUseCase.PORTFOLIO], # optional limit = 1, # optional - offset = 0 # optional + offset = 0, # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/tablesdb/create-index.md b/examples/2.3.x/console-python/examples/tablesdb/create-index.md index c8c849d91..95b4223bc 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/create-index.md +++ b/examples/2.3.x/console-python/examples/tablesdb/create-index.md @@ -16,7 +16,7 @@ result: ColumnIndex = tables_db.create_index( table_id = '<TABLE_ID>', key = '<KEY>', type = TablesDBIndexType.KEY, - columns = [], + columns = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/console-python/examples/tablesdb/create-rows.md b/examples/2.3.x/console-python/examples/tablesdb/create-rows.md index 130cd62a0..60c8fc586 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/console-python/examples/tablesdb/create-rows.md @@ -12,7 +12,16 @@ tables_db = TablesDB(client) result: RowList = tables_db.create_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - rows = [], + rows = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/tablesdb/delete-rows.md b/examples/2.3.x/console-python/examples/tablesdb/delete-rows.md index 634996a45..c4a16229d 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/console-python/examples/tablesdb/delete-rows.md @@ -12,7 +12,7 @@ tables_db = TablesDB(client) result: RowList = tables_db.delete_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/tablesdb/get-column.md b/examples/2.3.x/console-python/examples/tablesdb/get-column.md index 74ed8ae34..e77e6867d 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/get-column.md +++ b/examples/2.3.x/console-python/examples/tablesdb/get-column.md @@ -2,6 +2,7 @@ from appwrite_console.client import Client from appwrite_console.services.tables_db import TablesDB from appwrite_console.models import ColumnBoolean +from appwrite_console.models import ColumnBigint from appwrite_console.models import ColumnInteger from appwrite_console.models import ColumnFloat from appwrite_console.models import ColumnEmail @@ -10,6 +11,13 @@ from appwrite_console.models import ColumnUrl from appwrite_console.models import ColumnIp from appwrite_console.models import ColumnDatetime from appwrite_console.models import ColumnRelationship +from appwrite_console.models import ColumnPoint +from appwrite_console.models import ColumnLine +from appwrite_console.models import ColumnPolygon +from appwrite_console.models import ColumnVarchar +from appwrite_console.models import ColumnText +from appwrite_console.models import ColumnMediumtext +from appwrite_console.models import ColumnLongtext from appwrite_console.models import ColumnString from typing import Union @@ -19,7 +27,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID tables_db = TablesDB(client) -result: Union[ColumnBoolean, ColumnInteger, ColumnFloat, ColumnEmail, ColumnEnum, ColumnUrl, ColumnIp, ColumnDatetime, ColumnRelationship, ColumnString] = tables_db.get_column( +result: Union[ColumnBoolean, ColumnBigint, ColumnInteger, ColumnFloat, ColumnEmail, ColumnEnum, ColumnUrl, ColumnIp, ColumnDatetime, ColumnRelationship, ColumnPoint, ColumnLine, ColumnPolygon, ColumnVarchar, ColumnText, ColumnMediumtext, ColumnLongtext, ColumnString] = tables_db.get_column( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', key = '<KEY>' diff --git a/examples/2.3.x/console-python/examples/tablesdb/list-transactions.md b/examples/2.3.x/console-python/examples/tablesdb/list-transactions.md index 9d4098d79..26ea13ee4 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/console-python/examples/tablesdb/list-transactions.md @@ -10,7 +10,8 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID tables_db = TablesDB(client) result: TransactionList = tables_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/tablesdb/upsert-rows.md b/examples/2.3.x/console-python/examples/tablesdb/upsert-rows.md index 3c4e91fa8..a819f8ca3 100644 --- a/examples/2.3.x/console-python/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/console-python/examples/tablesdb/upsert-rows.md @@ -12,7 +12,16 @@ tables_db = TablesDB(client) result: RowList = tables_db.upsert_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - rows = [], + rows = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/teams/create-membership.md b/examples/2.3.x/console-python/examples/teams/create-membership.md index 8b0d4dcd4..402afdb2d 100644 --- a/examples/2.3.x/console-python/examples/teams/create-membership.md +++ b/examples/2.3.x/console-python/examples/teams/create-membership.md @@ -11,7 +11,7 @@ teams = Teams(client) result: Membership = teams.create_membership( team_id = '<TEAM_ID>', - roles = [], + roles = ["editor"], email = 'email@example.com', # optional user_id = '<USER_ID>', # optional phone = '+12065550100', # optional diff --git a/examples/2.3.x/console-python/examples/teams/update-membership.md b/examples/2.3.x/console-python/examples/teams/update-membership.md index 17e59db8d..8756e9018 100644 --- a/examples/2.3.x/console-python/examples/teams/update-membership.md +++ b/examples/2.3.x/console-python/examples/teams/update-membership.md @@ -12,7 +12,7 @@ teams = Teams(client) result: Membership = teams.update_membership( team_id = '<TEAM_ID>', membership_id = '<MEMBERSHIP_ID>', - roles = [] + roles = ["editor"] ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/usage/list-events.md b/examples/2.3.x/console-python/examples/usage/list-events.md index aed1418db..a95303b1c 100644 --- a/examples/2.3.x/console-python/examples/usage/list-events.md +++ b/examples/2.3.x/console-python/examples/usage/list-events.md @@ -15,7 +15,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID usage = Usage(client) result: UsageEventList = usage.list_events( - metrics = [UsageEventMetric.NETWORK_REQUESTS], + metrics = [UsageEventMetric.ANALYTICS_EVENTS], queries = [], # optional interval = UsageInterval.ONE_MINUTE, # optional dimensions = [UsageEventDimension.PATH], # optional diff --git a/examples/2.3.x/console-python/examples/usage/list-gauges.md b/examples/2.3.x/console-python/examples/usage/list-gauges.md index dde34126c..ea8dc82a1 100644 --- a/examples/2.3.x/console-python/examples/usage/list-gauges.md +++ b/examples/2.3.x/console-python/examples/usage/list-gauges.md @@ -15,7 +15,7 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID usage = Usage(client) result: UsageGaugeList = usage.list_gauges( - metrics = [UsageGaugeMetric.TEAMS], + metrics = [UsageGaugeMetric.ANALYTICS_PROPERTIES], queries = [], # optional interval = UsageInterval.ONE_MINUTE, # optional dimensions = [UsageGaugeDimension.RESOURCEID], # optional diff --git a/examples/2.3.x/console-python/examples/users/update-labels.md b/examples/2.3.x/console-python/examples/users/update-labels.md index 2d6985024..da881e01b 100644 --- a/examples/2.3.x/console-python/examples/users/update-labels.md +++ b/examples/2.3.x/console-python/examples/users/update-labels.md @@ -11,7 +11,7 @@ users = Users(client) result: User = users.update_labels( user_id = '<USER_ID>', - labels = [] + labels = ["subscriber"] ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/vcs/list-namespaces.md b/examples/2.3.x/console-python/examples/vcs/list-namespaces.md index c0fd41ee5..b0fdf03be 100644 --- a/examples/2.3.x/console-python/examples/vcs/list-namespaces.md +++ b/examples/2.3.x/console-python/examples/vcs/list-namespaces.md @@ -12,7 +12,8 @@ vcs = Vcs(client) result: VcsNamespaceList = vcs.list_namespaces( installation_id = '<INSTALLATION_ID>', search = '<SEARCH>', # optional - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/vcs/list-repositories.md b/examples/2.3.x/console-python/examples/vcs/list-repositories.md index 40e097c5c..a58ccc3e1 100644 --- a/examples/2.3.x/console-python/examples/vcs/list-repositories.md +++ b/examples/2.3.x/console-python/examples/vcs/list-repositories.md @@ -16,7 +16,8 @@ result: Union[ProviderRepositoryRuntimeList, ProviderRepositoryFrameworkList] = installation_id = '<INSTALLATION_ID>', type = VCSDetectionType.RUNTIME, search = '<SEARCH>', # optional - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/vcs/list-repository-branches.md b/examples/2.3.x/console-python/examples/vcs/list-repository-branches.md index 604a2a17c..b06f23360 100644 --- a/examples/2.3.x/console-python/examples/vcs/list-repository-branches.md +++ b/examples/2.3.x/console-python/examples/vcs/list-repository-branches.md @@ -13,7 +13,8 @@ result: BranchList = vcs.list_repository_branches( installation_id = '<INSTALLATION_ID>', provider_repository_id = '<PROVIDER_REPOSITORY_ID>', search = '<SEARCH>', # optional - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/vectorsdb/create-collection.md b/examples/2.3.x/console-python/examples/vectorsdb/create-collection.md index 06934a98e..a1cd4395d 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/create-collection.md @@ -15,7 +15,7 @@ result: VectorsdbCollection = vectors_db.create_collection( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', name = '<NAME>', - dimension = 1, + dimension = 4, permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional diff --git a/examples/2.3.x/console-python/examples/vectorsdb/create-documents.md b/examples/2.3.x/console-python/examples/vectorsdb/create-documents.md index 6dbbfe5e0..7cb8e2a65 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/create-documents.md @@ -12,7 +12,20 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.create_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/vectorsdb/create-index.md b/examples/2.3.x/console-python/examples/vectorsdb/create-index.md index 9df8d59f8..3e552f076 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/create-index.md @@ -16,7 +16,7 @@ result: Index = vectors_db.create_index( collection_id = '<COLLECTION_ID>', key = '<KEY>', type = VectorsDBIndexType.HNSW_EUCLIDEAN, - attributes = [], + attributes = ["embeddings"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/console-python/examples/vectorsdb/create-operations.md b/examples/2.3.x/console-python/examples/vectorsdb/create-operations.md index 9cc0f70b1..1a4f04e9d 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/create-operations.md @@ -18,7 +18,15 @@ result: Transaction = vectors_db.create_operations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] # optional diff --git a/examples/2.3.x/console-python/examples/vectorsdb/delete-documents.md b/examples/2.3.x/console-python/examples/vectorsdb/delete-documents.md index 15c1e4741..60b094d69 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/delete-documents.md @@ -12,7 +12,7 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.delete_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/vectorsdb/list-transactions.md b/examples/2.3.x/console-python/examples/vectorsdb/list-transactions.md index c7e0655db..92e756c27 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/list-transactions.md @@ -10,7 +10,8 @@ client.set_project('<YOUR_PROJECT_ID>') # Your project ID vectors_db = VectorsDB(client) result: TransactionList = vectors_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/console-python/examples/vectorsdb/update-collection.md b/examples/2.3.x/console-python/examples/vectorsdb/update-collection.md index 8b34e235e..a2b71fffb 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/update-collection.md @@ -15,7 +15,7 @@ result: VectorsdbCollection = vectors_db.update_collection( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', name = '<NAME>', - dimension = 1, # optional + dimension = 4, # optional permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional diff --git a/examples/2.3.x/console-python/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/console-python/examples/vectorsdb/upsert-documents.md index 05b0d65f4..1ff772f45 100644 --- a/examples/2.3.x/console-python/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/console-python/examples/vectorsdb/upsert-documents.md @@ -12,7 +12,20 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.upsert_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/console-python/examples/webhooks/create.md b/examples/2.3.x/console-python/examples/webhooks/create.md index 4f4e69b23..83420e3cf 100644 --- a/examples/2.3.x/console-python/examples/webhooks/create.md +++ b/examples/2.3.x/console-python/examples/webhooks/create.md @@ -13,7 +13,7 @@ result: Webhook = webhooks.create( webhook_id = '<WEBHOOK_ID>', url = 'https://example.com/webhook', name = '<NAME>', - events = [], + events = ["users.*.create"], enabled = False, # optional tls = False, # optional auth_username = '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/console-python/examples/webhooks/update.md b/examples/2.3.x/console-python/examples/webhooks/update.md index c3f98e002..9592ea441 100644 --- a/examples/2.3.x/console-python/examples/webhooks/update.md +++ b/examples/2.3.x/console-python/examples/webhooks/update.md @@ -13,7 +13,7 @@ result: Webhook = webhooks.update( webhook_id = '<WEBHOOK_ID>', name = '<NAME>', url = 'https://example.com/webhook', - events = [], + events = ["users.*.create"], enabled = False, # optional tls = False, # optional auth_username = '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/console-web/examples/account/create-email-password-session.md b/examples/2.3.x/console-web/examples/account/create-email-password-session.md index e962d2a57..bf8caaac4 100644 --- a/examples/2.3.x/console-web/examples/account/create-email-password-session.md +++ b/examples/2.3.x/console-web/examples/account/create-email-password-session.md @@ -10,6 +10,7 @@ const account = new Account(client); const result = await account.createEmailPasswordSession({ email: 'email@example.com', password: 'password', + duration: 60, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/account/delete-sessions.md b/examples/2.3.x/console-web/examples/account/delete-sessions.md index b363c935c..ced40d6dd 100644 --- a/examples/2.3.x/console-web/examples/account/delete-sessions.md +++ b/examples/2.3.x/console-web/examples/account/delete-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.deleteSessions(); +const result = await account.deleteSessions({ + current: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/account/list-sessions.md b/examples/2.3.x/console-web/examples/account/list-sessions.md index 2270ddfdf..85fc4021b 100644 --- a/examples/2.3.x/console-web/examples/account/list-sessions.md +++ b/examples/2.3.x/console-web/examples/account/list-sessions.md @@ -7,7 +7,9 @@ const client = new Client() const account = new Account(client); -const result = await account.listSessions(); +const result = await account.listSessions({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/analytics/create-event.md b/examples/2.3.x/console-web/examples/analytics/create-event.md new file mode 100644 index 000000000..1fba7e580 --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/create-event.md @@ -0,0 +1,27 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.createEvent({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + url: 'https://example.com', + domain: '<DOMAIN>', // optional + referrer: '<REFERRER>', // optional + screenWidth: null, // optional + sessionHash: '<SESSION_HASH>', // optional + scrollDepth: 0, // optional + engagementTime: null, // optional + props: [], // optional + userId: '<USER_ID>', // optional + ip: '<IP>', // optional + userAgent: '<USER_AGENT>', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/create-property.md b/examples/2.3.x/console-web/examples/analytics/create-property.md new file mode 100644 index 000000000..6bd67cf26 --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/create-property.md @@ -0,0 +1,21 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.createProperty({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + xpublic: false, // optional + allowedOrigins: [], // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/delete-property.md b/examples/2.3.x/console-web/examples/analytics/delete-property.md new file mode 100644 index 000000000..390ec323f --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/delete-property.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.deleteProperty({ + propertyId: '<PROPERTY_ID>', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/get-property.md b/examples/2.3.x/console-web/examples/analytics/get-property.md new file mode 100644 index 000000000..9605b5227 --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/get-property.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.getProperty({ + propertyId: '<PROPERTY_ID>', +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/list-metrics.md b/examples/2.3.x/console-web/examples/analytics/list-metrics.md new file mode 100644 index 000000000..675da6f1b --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/list-metrics.md @@ -0,0 +1,27 @@ +```javascript +import { + Client, + Analytics, + AnalyticsInterval, + AnalyticsDimension, +} from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.listMetrics({ + propertyId: '<PROPERTY_ID>', + queries: [], // optional + interval: AnalyticsInterval.OneHour, // optional + dimensions: [AnalyticsDimension.Country], // optional + dateRange: '<DATE_RANGE>', // optional + startAt: '2020-10-15T06:38:00.000+00:00', // optional + endAt: '2020-10-15T06:38:00.000+00:00', // optional + limit: 1, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/list-properties.md b/examples/2.3.x/console-web/examples/analytics/list-properties.md new file mode 100644 index 000000000..d543a7d52 --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/list-properties.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.listProperties({ + queries: [], // optional + search: '<SEARCH>', // optional + total: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/analytics/update-property.md b/examples/2.3.x/console-web/examples/analytics/update-property.md new file mode 100644 index 000000000..e31b22739 --- /dev/null +++ b/examples/2.3.x/console-web/examples/analytics/update-property.md @@ -0,0 +1,21 @@ +```javascript +import { Client, Analytics } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const analytics = new Analytics(client); + +const result = await analytics.updateProperty({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', // optional + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + xpublic: false, // optional + allowedOrigins: [], // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/avatars/delete-photo.md b/examples/2.3.x/console-web/examples/avatars/delete-photo.md new file mode 100644 index 000000000..da8cc6e2b --- /dev/null +++ b/examples/2.3.x/console-web/examples/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```javascript +import { Client, Avatars } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.deletePhoto(); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/avatars/get-screenshot.md b/examples/2.3.x/console-web/examples/avatars/get-screenshot.md index 0869f5422..0d243b0d3 100644 --- a/examples/2.3.x/console-web/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/console-web/examples/avatars/get-screenshot.md @@ -17,8 +17,7 @@ const avatars = new Avatars(client); const result = avatars.getScreenshot({ url: 'https://example.com', headers: { - Authorization: 'Bearer token123', - 'X-Custom-Header': 'value', + 'Accept-Language': 'en-US,en;q=0.9', }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/console-web/examples/avatars/update-photo.md b/examples/2.3.x/console-web/examples/avatars/update-photo.md new file mode 100644 index 000000000..cc9abe103 --- /dev/null +++ b/examples/2.3.x/console-web/examples/avatars/update-photo.md @@ -0,0 +1,15 @@ +```javascript +import { Client, Avatars } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const avatars = new Avatars(client); + +const result = await avatars.updatePhoto({ + file: document.getElementById('uploader').files[0], +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/console/list-o-auth-2-providers.md b/examples/2.3.x/console-web/examples/console/list-o-auth-2-providers.md index 9270d3bb9..305b58fa1 100644 --- a/examples/2.3.x/console-web/examples/console/list-o-auth-2-providers.md +++ b/examples/2.3.x/console-web/examples/console/list-o-auth-2-providers.md @@ -7,7 +7,9 @@ const client = new Client() const xconsole = new Console(client); -const result = await xconsole.listOAuth2Providers(); +const result = await xconsole.listOAuth2Providers({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/console/list-organization-scopes.md b/examples/2.3.x/console-web/examples/console/list-organization-scopes.md index e6c927a03..95570113d 100644 --- a/examples/2.3.x/console-web/examples/console/list-organization-scopes.md +++ b/examples/2.3.x/console-web/examples/console/list-organization-scopes.md @@ -7,7 +7,9 @@ const client = new Client() const xconsole = new Console(client); -const result = await xconsole.listOrganizationScopes(); +const result = await xconsole.listOrganizationScopes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/console/list-project-scopes.md b/examples/2.3.x/console-web/examples/console/list-project-scopes.md index 6ae757839..1e29f7c25 100644 --- a/examples/2.3.x/console-web/examples/console/list-project-scopes.md +++ b/examples/2.3.x/console-web/examples/console/list-project-scopes.md @@ -7,7 +7,9 @@ const client = new Client() const xconsole = new Console(client); -const result = await xconsole.listProjectScopes(); +const result = await xconsole.listProjectScopes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/databases/create-documents.md b/examples/2.3.x/console-web/examples/databases/create-documents.md index e264c9297..3ba08ea38 100644 --- a/examples/2.3.x/console-web/examples/databases/create-documents.md +++ b/examples/2.3.x/console-web/examples/databases/create-documents.md @@ -10,7 +10,16 @@ const databases = new Databases(client); const result = await databases.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/databases/create-index.md b/examples/2.3.x/console-web/examples/databases/create-index.md index 01a86729b..788f5d2e6 100644 --- a/examples/2.3.x/console-web/examples/databases/create-index.md +++ b/examples/2.3.x/console-web/examples/databases/create-index.md @@ -17,7 +17,7 @@ const result = await databases.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: DatabasesIndexType.Key, - attributes: [], + attributes: ['username'], orders: [OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/console-web/examples/databases/delete-documents.md b/examples/2.3.x/console-web/examples/databases/delete-documents.md index fd68feeb7..08fca8a1d 100644 --- a/examples/2.3.x/console-web/examples/databases/delete-documents.md +++ b/examples/2.3.x/console-web/examples/databases/delete-documents.md @@ -10,7 +10,9 @@ const databases = new Databases(client); const result = await databases.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/databases/list-transactions.md b/examples/2.3.x/console-web/examples/databases/list-transactions.md index 37f2fde74..192e7aad6 100644 --- a/examples/2.3.x/console-web/examples/databases/list-transactions.md +++ b/examples/2.3.x/console-web/examples/databases/list-transactions.md @@ -9,6 +9,7 @@ const databases = new Databases(client); const result = await databases.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/databases/upsert-documents.md b/examples/2.3.x/console-web/examples/databases/upsert-documents.md index 5ee9d710e..5a62dd5c8 100644 --- a/examples/2.3.x/console-web/examples/databases/upsert-documents.md +++ b/examples/2.3.x/console-web/examples/databases/upsert-documents.md @@ -10,7 +10,16 @@ const databases = new Databases(client); const result = await databases.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/documentsdb/create-documents.md b/examples/2.3.x/console-web/examples/documentsdb/create-documents.md index 1c9613362..fc5fce8cc 100644 --- a/examples/2.3.x/console-web/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/console-web/examples/documentsdb/create-documents.md @@ -10,7 +10,16 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/documentsdb/create-index.md b/examples/2.3.x/console-web/examples/documentsdb/create-index.md index ec398d9df..ce61944a9 100644 --- a/examples/2.3.x/console-web/examples/documentsdb/create-index.md +++ b/examples/2.3.x/console-web/examples/documentsdb/create-index.md @@ -17,7 +17,7 @@ const result = await documentsDB.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: DocumentsDBIndexType.Key, - attributes: [], + attributes: ['username'], orders: [OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/console-web/examples/documentsdb/delete-documents.md b/examples/2.3.x/console-web/examples/documentsdb/delete-documents.md index f9e603c05..125cd5610 100644 --- a/examples/2.3.x/console-web/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/console-web/examples/documentsdb/delete-documents.md @@ -10,7 +10,9 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/documentsdb/list-transactions.md b/examples/2.3.x/console-web/examples/documentsdb/list-transactions.md index cf97fb49a..a0c739115 100644 --- a/examples/2.3.x/console-web/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/console-web/examples/documentsdb/list-transactions.md @@ -9,6 +9,7 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/documentsdb/upsert-documents.md b/examples/2.3.x/console-web/examples/documentsdb/upsert-documents.md index fb5a380a9..ec7d82515 100644 --- a/examples/2.3.x/console-web/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/console-web/examples/documentsdb/upsert-documents.md @@ -10,7 +10,16 @@ const documentsDB = new DocumentsDB(client); const result = await documentsDB.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/console-web/examples/embeddings/create-text-embeddings.md index 0b93299b5..36639a805 100644 --- a/examples/2.3.x/console-web/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/console-web/examples/embeddings/create-text-embeddings.md @@ -8,7 +8,10 @@ const client = new Client() const embeddings = new Embeddings(client); const result = await embeddings.createTextEmbeddings({ - texts: [], + texts: [ + 'Appwrite helps developers build applications.', + 'Find documents with semantic search.', + ], model: EmbeddingModel.NomicEmbedText, // optional }); diff --git a/examples/2.3.x/console-web/examples/functions/list-runtimes.md b/examples/2.3.x/console-web/examples/functions/list-runtimes.md index 634305df1..c63211011 100644 --- a/examples/2.3.x/console-web/examples/functions/list-runtimes.md +++ b/examples/2.3.x/console-web/examples/functions/list-runtimes.md @@ -7,7 +7,9 @@ const client = new Client() const functions = new Functions(client); -const result = await functions.listRuntimes(); +const result = await functions.listRuntimes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/functions/list-specifications.md b/examples/2.3.x/console-web/examples/functions/list-specifications.md index b67d111c1..55b3fdb56 100644 --- a/examples/2.3.x/console-web/examples/functions/list-specifications.md +++ b/examples/2.3.x/console-web/examples/functions/list-specifications.md @@ -9,6 +9,7 @@ const functions = new Functions(client); const result = await functions.listSpecifications({ type: 'runtimes', // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/graphql/mutation.md b/examples/2.3.x/console-web/examples/graphql/mutation.md index 25c0ffbdd..de2264045 100644 --- a/examples/2.3.x/console-web/examples/graphql/mutation.md +++ b/examples/2.3.x/console-web/examples/graphql/mutation.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.mutation({ - query: {}, + query: { + query: 'mutation { accountUpdateName(name: "Walter") { name } }', + }, }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/graphql/query.md b/examples/2.3.x/console-web/examples/graphql/query.md index 73b3da233..5773b8778 100644 --- a/examples/2.3.x/console-web/examples/graphql/query.md +++ b/examples/2.3.x/console-web/examples/graphql/query.md @@ -8,7 +8,9 @@ const client = new Client() const graphql = new Graphql(client); const result = await graphql.query({ - query: {}, + query: { + query: 'query { localeGet { ip } }', + }, }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/growth/create-conversation.md b/examples/2.3.x/console-web/examples/growth/create-conversation.md new file mode 100644 index 000000000..ad321dcc8 --- /dev/null +++ b/examples/2.3.x/console-web/examples/growth/create-conversation.md @@ -0,0 +1,23 @@ +```javascript +import { Client, Growth, ConversationType } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const growth = new Growth(client); + +const result = await growth.createConversation({ + type: ConversationType.Support, + email: 'email@example.com', // optional + name: '<NAME>', // optional + subject: '<SUBJECT>', // optional + message: '<MESSAGE>', // optional + organizationId: '<ORGANIZATION_ID>', // optional + projectId: '<PROJECT_ID>', // optional + attributes: {}, // optional + attachment: document.getElementById('uploader').files[0], // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/growth/create-installation.md b/examples/2.3.x/console-web/examples/growth/create-installation.md new file mode 100644 index 000000000..a4fb466c7 --- /dev/null +++ b/examples/2.3.x/console-web/examples/growth/create-installation.md @@ -0,0 +1,25 @@ +```javascript +import { Client, Growth } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const growth = new Growth(client); + +const result = await growth.createInstallation({ + email: 'email@example.com', // optional + name: '<NAME>', // optional + version: '<VERSION>', // optional + domain: '<DOMAIN>', // optional + database: '<DATABASE>', // optional + hostIp: '<HOST_IP>', // optional + userAgent: '<USER_AGENT>', // optional + os: '<OS>', // optional + arch: '<ARCH>', // optional + cpus: null, // optional + ram: null, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/locale/list-codes.md b/examples/2.3.x/console-web/examples/locale/list-codes.md index 815fc01ac..bfa65d2e7 100644 --- a/examples/2.3.x/console-web/examples/locale/list-codes.md +++ b/examples/2.3.x/console-web/examples/locale/list-codes.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCodes(); +const result = await locale.listCodes({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-continents.md b/examples/2.3.x/console-web/examples/locale/list-continents.md index 89bfc10a8..bb416b389 100644 --- a/examples/2.3.x/console-web/examples/locale/list-continents.md +++ b/examples/2.3.x/console-web/examples/locale/list-continents.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listContinents(); +const result = await locale.listContinents({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-countries-eu.md b/examples/2.3.x/console-web/examples/locale/list-countries-eu.md index 0223e0474..bb0cff5e8 100644 --- a/examples/2.3.x/console-web/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/console-web/examples/locale/list-countries-eu.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesEU(); +const result = await locale.listCountriesEU({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-countries-phones.md b/examples/2.3.x/console-web/examples/locale/list-countries-phones.md index e172ecf11..ba2153384 100644 --- a/examples/2.3.x/console-web/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/console-web/examples/locale/list-countries-phones.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountriesPhones(); +const result = await locale.listCountriesPhones({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-countries.md b/examples/2.3.x/console-web/examples/locale/list-countries.md index b40c2c642..d8151b6a9 100644 --- a/examples/2.3.x/console-web/examples/locale/list-countries.md +++ b/examples/2.3.x/console-web/examples/locale/list-countries.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCountries(); +const result = await locale.listCountries({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-currencies.md b/examples/2.3.x/console-web/examples/locale/list-currencies.md index ccdceeeaf..953ee024c 100644 --- a/examples/2.3.x/console-web/examples/locale/list-currencies.md +++ b/examples/2.3.x/console-web/examples/locale/list-currencies.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listCurrencies(); +const result = await locale.listCurrencies({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/locale/list-languages.md b/examples/2.3.x/console-web/examples/locale/list-languages.md index 26688ff74..e53adfaf8 100644 --- a/examples/2.3.x/console-web/examples/locale/list-languages.md +++ b/examples/2.3.x/console-web/examples/locale/list-languages.md @@ -7,7 +7,9 @@ const client = new Client() const locale = new Locale(client); -const result = await locale.listLanguages(); +const result = await locale.listLanguages({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/manager/update-organization-status.md b/examples/2.3.x/console-web/examples/manager/update-organization-status.md new file mode 100644 index 000000000..b1b1e19a2 --- /dev/null +++ b/examples/2.3.x/console-web/examples/manager/update-organization-status.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Manager } from '@appwrite.io/console'; + +const client = new Client().setEndpoint( + 'https://<REGION>.cloud.appwrite.io/v1', +); // Your API Endpoint + +const manager = new Manager(client); + +const result = await manager.updateOrganizationStatus({ + teamId: '<TEAM_ID>', + status: false, + reason: '<REASON>', // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/messaging/create-push.md b/examples/2.3.x/console-web/examples/messaging/create-push.md index 7235c19d9..02dc04654 100644 --- a/examples/2.3.x/console-web/examples/messaging/create-push.md +++ b/examples/2.3.x/console-web/examples/messaging/create-push.md @@ -27,6 +27,7 @@ const result = await messaging.createPush({ contentAvailable: false, // optional critical: false, // optional priority: MessagePriority.Normal, // optional + channelId: '<CHANNEL_ID>', // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/messaging/update-email.md b/examples/2.3.x/console-web/examples/messaging/update-email.md index a043d35e8..81cda404c 100644 --- a/examples/2.3.x/console-web/examples/messaging/update-email.md +++ b/examples/2.3.x/console-web/examples/messaging/update-email.md @@ -9,19 +9,19 @@ const messaging = new Messaging(client); const result = await messaging.updateEmail({ messageId: '<MESSAGE_ID>', + subject: '<SUBJECT>', // optional + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - subject: '<SUBJECT>', // optional - content: '<CONTENT>', // optional - draft: false, // optional - html: false, // optional cc: [], // optional bcc: [], // optional + attachments: [], // optional replyToEmail: 'email@example.com', // optional replyToName: '<REPLY_TO_NAME>', // optional + draft: false, // optional + html: false, // optional scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional - attachments: [], // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/messaging/update-push.md b/examples/2.3.x/console-web/examples/messaging/update-push.md index f7c46bcfa..fd95175f6 100644 --- a/examples/2.3.x/console-web/examples/messaging/update-push.md +++ b/examples/2.3.x/console-web/examples/messaging/update-push.md @@ -9,11 +9,11 @@ const messaging = new Messaging(client); const result = await messaging.updatePush({ messageId: '<MESSAGE_ID>', + title: '<TITLE>', // optional + body: '<BODY>', // optional topics: [], // optional users: [], // optional targets: [], // optional - title: '<TITLE>', // optional - body: '<BODY>', // optional data: {}, // optional action: '<ACTION>', // optional image: '<ID1:ID2>', // optional @@ -27,6 +27,7 @@ const result = await messaging.updatePush({ contentAvailable: false, // optional critical: false, // optional priority: MessagePriority.Normal, // optional + channelId: '<CHANNEL_ID>', // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/messaging/update-sms.md b/examples/2.3.x/console-web/examples/messaging/update-sms.md index a41f32269..68ec42c74 100644 --- a/examples/2.3.x/console-web/examples/messaging/update-sms.md +++ b/examples/2.3.x/console-web/examples/messaging/update-sms.md @@ -9,10 +9,10 @@ const messaging = new Messaging(client); const result = await messaging.updateSMS({ messageId: '<MESSAGE_ID>', + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - content: '<CONTENT>', // optional draft: false, // optional scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/console-web/examples/notifications/list.md b/examples/2.3.x/console-web/examples/notifications/list.md index 3c6575818..3861cf599 100644 --- a/examples/2.3.x/console-web/examples/notifications/list.md +++ b/examples/2.3.x/console-web/examples/notifications/list.md @@ -9,6 +9,7 @@ const notifications = new Notifications(client); const result = await notifications.list({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/console-web/examples/organization/create-ephemeral-project-key.md index d1cb12951..4cc1194ac 100644 --- a/examples/2.3.x/console-web/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/console-web/examples/organization/create-ephemeral-project-key.md @@ -9,7 +9,7 @@ const organization = new Organization(client); const result = await organization.createEphemeralProjectKey({ projectId: '<PROJECT_ID>', - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], duration: 600, }); diff --git a/examples/2.3.x/console-web/examples/organization/create-project-key.md b/examples/2.3.x/console-web/examples/organization/create-project-key.md index 2361bb94a..7e9786a8b 100644 --- a/examples/2.3.x/console-web/examples/organization/create-project-key.md +++ b/examples/2.3.x/console-web/examples/organization/create-project-key.md @@ -11,7 +11,7 @@ const result = await organization.createProjectKey({ projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/console-web/examples/organization/update-project-key.md b/examples/2.3.x/console-web/examples/organization/update-project-key.md index 550ecebd3..dbb0c7edf 100644 --- a/examples/2.3.x/console-web/examples/organization/update-project-key.md +++ b/examples/2.3.x/console-web/examples/organization/update-project-key.md @@ -11,7 +11,7 @@ const result = await organization.updateProjectKey({ projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/console-web/examples/project/create-ephemeral-key.md b/examples/2.3.x/console-web/examples/project/create-ephemeral-key.md index f5f76a425..f86455cf9 100644 --- a/examples/2.3.x/console-web/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/console-web/examples/project/create-ephemeral-key.md @@ -8,7 +8,7 @@ const client = new Client() const project = new Project(client); const result = await project.createEphemeralKey({ - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], duration: 600, }); diff --git a/examples/2.3.x/console-web/examples/project/create-key.md b/examples/2.3.x/console-web/examples/project/create-key.md index 5354d7329..d63412000 100644 --- a/examples/2.3.x/console-web/examples/project/create-key.md +++ b/examples/2.3.x/console-web/examples/project/create-key.md @@ -10,7 +10,7 @@ const project = new Project(client); const result = await project.createKey({ keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/console-web/examples/project/create-smtp-test.md b/examples/2.3.x/console-web/examples/project/create-smtp-test.md index 300e972c9..96653785a 100644 --- a/examples/2.3.x/console-web/examples/project/create-smtp-test.md +++ b/examples/2.3.x/console-web/examples/project/create-smtp-test.md @@ -8,7 +8,7 @@ const client = new Client() const project = new Project(client); const result = await project.createSMTPTest({ - emails: [], + emails: ['recipient@example.com'], }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/project/update-key.md b/examples/2.3.x/console-web/examples/project/update-key.md index 3bba96a0c..0be53efe0 100644 --- a/examples/2.3.x/console-web/examples/project/update-key.md +++ b/examples/2.3.x/console-web/examples/project/update-key.md @@ -10,7 +10,7 @@ const project = new Project(client); const result = await project.updateKey({ keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes.ProjectRead], + scopes: [ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-labels.md b/examples/2.3.x/console-web/examples/project/update-labels.md index 8df4ffb42..12f8fcebc 100644 --- a/examples/2.3.x/console-web/examples/project/update-labels.md +++ b/examples/2.3.x/console-web/examples/project/update-labels.md @@ -8,7 +8,7 @@ const client = new Client() const project = new Project(client); const result = await project.updateLabels({ - labels: [], + labels: ['production'], }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-auth-0.md index 7c2898e4c..01abc6ba8 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-auth-0.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2Auth0Prompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +15,7 @@ const result = await project.updateOAuth2Auth0({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional endpoint: '<ENDPOINT>', // optional + prompt: [ProjectOAuth2Auth0Prompt.None], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-discord.md index 1116db06e..fc7aaa091 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-discord.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2DiscordPrompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +14,7 @@ const project = new Project(client); const result = await project.updateOAuth2Discord({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2DiscordPrompt.None], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-git-hub.md index f3cc3b132..0c4e20458 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-git-hub.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2GitHubPrompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +14,7 @@ const project = new Project(client); const result = await project.updateOAuth2GitHub({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2GitHubPrompt.SelectAccount], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-kakao.md index b92e049df..cf304988e 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-kakao.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2KakaoPrompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +14,7 @@ const project = new Project(client); const result = await project.updateOAuth2Kakao({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2KakaoPrompt.None], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-microsoft.md index 18f21fe93..9bbbfa13c 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-microsoft.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2MicrosoftPrompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +15,7 @@ const result = await project.updateOAuth2Microsoft({ applicationId: '<APPLICATION_ID>', // optional applicationSecret: '<APPLICATION_SECRET>', // optional tenant: '<TENANT>', // optional + prompt: [ProjectOAuth2MicrosoftPrompt.None], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-okta.md index a94ad691e..da983aca1 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-okta.md @@ -1,5 +1,5 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { Client, Project, ProjectOAuth2OktaPrompt } from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +12,7 @@ const result = await project.updateOAuth2Okta({ clientSecret: '<CLIENT_SECRET>', // optional domain: 'example.com', // optional authorizationServerId: '<AUTHORIZATION_SERVER_ID>', // optional + prompt: [ProjectOAuth2OktaPrompt.None], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-salesforce.md index 04c3da125..8b19d7647 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-salesforce.md @@ -1,5 +1,9 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { + Client, + Project, + ProjectOAuth2SalesforcePrompt, +} from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +14,7 @@ const project = new Project(client); const result = await project.updateOAuth2Salesforce({ customerKey: '<CUSTOMER_KEY>', // optional customerSecret: '<CUSTOMER_SECRET>', // optional + prompt: [ProjectOAuth2SalesforcePrompt.Login], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..7a70451b9 --- /dev/null +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,17 @@ +```javascript +import { Client, Project } from '@appwrite.io/console'; + +const client = new Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>'); // Your project ID + +const project = new Project(client); + +const result = await project.updateOAuth2Webflow({ + clientId: '<CLIENT_ID>', // optional + clientSecret: '<CLIENT_SECRET>', // optional + enabled: false, // optional +}); + +console.log(result); +``` diff --git a/examples/2.3.x/console-web/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/console-web/examples/project/update-o-auth-2-zoho.md index 0a1ff8615..524d11855 100644 --- a/examples/2.3.x/console-web/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/console-web/examples/project/update-o-auth-2-zoho.md @@ -1,5 +1,5 @@ ```javascript -import { Client, Project } from '@appwrite.io/console'; +import { Client, Project, ProjectOAuth2ZohoPrompt } from '@appwrite.io/console'; const client = new Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -10,6 +10,7 @@ const project = new Project(client); const result = await project.updateOAuth2Zoho({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2ZohoPrompt.Consent], // optional enabled: false, // optional }); diff --git a/examples/2.3.x/console-web/examples/sites/list-frameworks.md b/examples/2.3.x/console-web/examples/sites/list-frameworks.md index 26d0e5325..ec1921b28 100644 --- a/examples/2.3.x/console-web/examples/sites/list-frameworks.md +++ b/examples/2.3.x/console-web/examples/sites/list-frameworks.md @@ -7,7 +7,9 @@ const client = new Client() const sites = new Sites(client); -const result = await sites.listFrameworks(); +const result = await sites.listFrameworks({ + total: false, // optional +}); console.log(result); ``` diff --git a/examples/2.3.x/console-web/examples/sites/list-specifications.md b/examples/2.3.x/console-web/examples/sites/list-specifications.md index 1d77721c9..a29beb0fe 100644 --- a/examples/2.3.x/console-web/examples/sites/list-specifications.md +++ b/examples/2.3.x/console-web/examples/sites/list-specifications.md @@ -9,6 +9,7 @@ const sites = new Sites(client); const result = await sites.listSpecifications({ type: 'runtimes', // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/sites/list-templates.md b/examples/2.3.x/console-web/examples/sites/list-templates.md index 4832803a9..4047cf9fd 100644 --- a/examples/2.3.x/console-web/examples/sites/list-templates.md +++ b/examples/2.3.x/console-web/examples/sites/list-templates.md @@ -17,6 +17,7 @@ const result = await sites.listTemplates({ useCases: [SiteTemplateUseCase.Portfolio], // optional limit: 1, // optional offset: 0, // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/tablesdb/create-index.md b/examples/2.3.x/console-web/examples/tablesdb/create-index.md index 1b4f0aba8..629a8ef16 100644 --- a/examples/2.3.x/console-web/examples/tablesdb/create-index.md +++ b/examples/2.3.x/console-web/examples/tablesdb/create-index.md @@ -17,7 +17,7 @@ const result = await tablesDB.createIndex({ tableId: '<TABLE_ID>', key: '<KEY>', type: TablesDBIndexType.Key, - columns: [], + columns: ['username'], orders: [OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/console-web/examples/tablesdb/create-rows.md b/examples/2.3.x/console-web/examples/tablesdb/create-rows.md index 2c0461357..cd3ca02a1 100644 --- a/examples/2.3.x/console-web/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/console-web/examples/tablesdb/create-rows.md @@ -10,7 +10,16 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.createRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/tablesdb/delete-rows.md b/examples/2.3.x/console-web/examples/tablesdb/delete-rows.md index 58df6f190..b528d434b 100644 --- a/examples/2.3.x/console-web/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/console-web/examples/tablesdb/delete-rows.md @@ -10,7 +10,7 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.deleteRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - queries: [], // optional + queries: ['{"method":"equal", "attribute":"$id", "values":["<ROW_ID>"]}'], // optional transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/tablesdb/list-transactions.md b/examples/2.3.x/console-web/examples/tablesdb/list-transactions.md index 2d616198b..9070e54e8 100644 --- a/examples/2.3.x/console-web/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/console-web/examples/tablesdb/list-transactions.md @@ -9,6 +9,7 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/tablesdb/upsert-rows.md b/examples/2.3.x/console-web/examples/tablesdb/upsert-rows.md index 005f7b4ee..e42d2d447 100644 --- a/examples/2.3.x/console-web/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/console-web/examples/tablesdb/upsert-rows.md @@ -10,7 +10,16 @@ const tablesDB = new TablesDB(client); const result = await tablesDB.upsertRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/teams/create-membership.md b/examples/2.3.x/console-web/examples/teams/create-membership.md index 35581d303..d06d4894d 100644 --- a/examples/2.3.x/console-web/examples/teams/create-membership.md +++ b/examples/2.3.x/console-web/examples/teams/create-membership.md @@ -9,7 +9,7 @@ const teams = new Teams(client); const result = await teams.createMembership({ teamId: '<TEAM_ID>', - roles: [], + roles: ['editor'], email: 'email@example.com', // optional userId: '<USER_ID>', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/console-web/examples/teams/update-membership.md b/examples/2.3.x/console-web/examples/teams/update-membership.md index 6ed365834..efa118100 100644 --- a/examples/2.3.x/console-web/examples/teams/update-membership.md +++ b/examples/2.3.x/console-web/examples/teams/update-membership.md @@ -10,7 +10,7 @@ const teams = new Teams(client); const result = await teams.updateMembership({ teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', - roles: [], + roles: ['editor'], }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/usage/list-events.md b/examples/2.3.x/console-web/examples/usage/list-events.md index 30b8d9755..fe672527c 100644 --- a/examples/2.3.x/console-web/examples/usage/list-events.md +++ b/examples/2.3.x/console-web/examples/usage/list-events.md @@ -16,7 +16,7 @@ const client = new Client() const usage = new Usage(client); const result = await usage.listEvents({ - metrics: [UsageEventMetric.NetworkRequests], + metrics: [UsageEventMetric.AnalyticsEvents], queries: [], // optional interval: UsageInterval.OneMinute, // optional dimensions: [UsageEventDimension.Path], // optional diff --git a/examples/2.3.x/console-web/examples/usage/list-gauges.md b/examples/2.3.x/console-web/examples/usage/list-gauges.md index 745ecf945..3cc965dc2 100644 --- a/examples/2.3.x/console-web/examples/usage/list-gauges.md +++ b/examples/2.3.x/console-web/examples/usage/list-gauges.md @@ -16,7 +16,7 @@ const client = new Client() const usage = new Usage(client); const result = await usage.listGauges({ - metrics: [UsageGaugeMetric.Teams], + metrics: [UsageGaugeMetric.AnalyticsProperties], queries: [], // optional interval: UsageInterval.OneMinute, // optional dimensions: [UsageGaugeDimension.ResourceId], // optional diff --git a/examples/2.3.x/console-web/examples/users/update-labels.md b/examples/2.3.x/console-web/examples/users/update-labels.md index bf287f366..62e2a7e71 100644 --- a/examples/2.3.x/console-web/examples/users/update-labels.md +++ b/examples/2.3.x/console-web/examples/users/update-labels.md @@ -9,7 +9,7 @@ const users = new Users(client); const result = await users.updateLabels({ userId: '<USER_ID>', - labels: [], + labels: ['subscriber'], }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/vcs/list-namespaces.md b/examples/2.3.x/console-web/examples/vcs/list-namespaces.md index a66ffdd03..758a60ab9 100644 --- a/examples/2.3.x/console-web/examples/vcs/list-namespaces.md +++ b/examples/2.3.x/console-web/examples/vcs/list-namespaces.md @@ -11,6 +11,7 @@ const result = await vcs.listNamespaces({ installationId: '<INSTALLATION_ID>', search: '<SEARCH>', // optional queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/vcs/list-repositories.md b/examples/2.3.x/console-web/examples/vcs/list-repositories.md index 1661cd8c5..dd5ea19f3 100644 --- a/examples/2.3.x/console-web/examples/vcs/list-repositories.md +++ b/examples/2.3.x/console-web/examples/vcs/list-repositories.md @@ -12,6 +12,7 @@ const result = await vcs.listRepositories({ type: VCSDetectionType.Runtime, search: '<SEARCH>', // optional queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/vcs/list-repository-branches.md b/examples/2.3.x/console-web/examples/vcs/list-repository-branches.md index 2efd905b2..75cc0f23a 100644 --- a/examples/2.3.x/console-web/examples/vcs/list-repository-branches.md +++ b/examples/2.3.x/console-web/examples/vcs/list-repository-branches.md @@ -12,6 +12,7 @@ const result = await vcs.listRepositoryBranches({ providerRepositoryId: '<PROVIDER_REPOSITORY_ID>', search: '<SEARCH>', // optional queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/vectorsdb/create-collection.md b/examples/2.3.x/console-web/examples/vectorsdb/create-collection.md index b69be570a..12996a2cf 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/create-collection.md @@ -11,7 +11,7 @@ const result = await vectorsDB.createCollection({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, + dimension: 4, permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false, // optional diff --git a/examples/2.3.x/console-web/examples/vectorsdb/create-documents.md b/examples/2.3.x/console-web/examples/vectorsdb/create-documents.md index 6bda5bf18..e49698e81 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/create-documents.md @@ -10,7 +10,15 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/vectorsdb/create-index.md b/examples/2.3.x/console-web/examples/vectorsdb/create-index.md index 1f8b422dc..d02efaebc 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/create-index.md @@ -17,7 +17,7 @@ const result = await vectorsDB.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: VectorsDBIndexType.HnswEuclidean, - attributes: [], + attributes: ['embeddings'], orders: [OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/console-web/examples/vectorsdb/create-operations.md b/examples/2.3.x/console-web/examples/vectorsdb/create-operations.md index fc90ed8bd..ce27bd39e 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/create-operations.md @@ -16,7 +16,10 @@ const result = await vectorsDB.createOperations({ collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', data: { - name: "Walter O'Brien", + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, }, }, ], // optional diff --git a/examples/2.3.x/console-web/examples/vectorsdb/delete-documents.md b/examples/2.3.x/console-web/examples/vectorsdb/delete-documents.md index e699485bd..98e2d1bf1 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/delete-documents.md @@ -10,7 +10,9 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/vectorsdb/list-transactions.md b/examples/2.3.x/console-web/examples/vectorsdb/list-transactions.md index 02da76869..4902f3e2d 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/list-transactions.md @@ -9,6 +9,7 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.listTransactions({ queries: [], // optional + total: false, // optional }); console.log(result); diff --git a/examples/2.3.x/console-web/examples/vectorsdb/update-collection.md b/examples/2.3.x/console-web/examples/vectorsdb/update-collection.md index 491024410..afa2d357d 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/update-collection.md @@ -11,7 +11,7 @@ const result = await vectorsDB.updateCollection({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, // optional + dimension: 4, // optional permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false, // optional diff --git a/examples/2.3.x/console-web/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/console-web/examples/vectorsdb/upsert-documents.md index af58d1d43..6f13ae74c 100644 --- a/examples/2.3.x/console-web/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/console-web/examples/vectorsdb/upsert-documents.md @@ -10,7 +10,15 @@ const vectorsDB = new VectorsDB(client); const result = await vectorsDB.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); diff --git a/examples/2.3.x/console-web/examples/webhooks/create.md b/examples/2.3.x/console-web/examples/webhooks/create.md index f5817fbe6..393013650 100644 --- a/examples/2.3.x/console-web/examples/webhooks/create.md +++ b/examples/2.3.x/console-web/examples/webhooks/create.md @@ -11,7 +11,7 @@ const result = await webhooks.create({ webhookId: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', - events: [], + events: ['users.*.create'], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/console-web/examples/webhooks/update.md b/examples/2.3.x/console-web/examples/webhooks/update.md index 78071ef4c..058f73e1e 100644 --- a/examples/2.3.x/console-web/examples/webhooks/update.md +++ b/examples/2.3.x/console-web/examples/webhooks/update.md @@ -11,7 +11,7 @@ const result = await webhooks.update({ webhookId: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', - events: [], + events: ['users.*.create'], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/server-dart/examples/account/create-email-password-session.md b/examples/2.3.x/server-dart/examples/account/create-email-password-session.md index bac35a125..feefb53c4 100644 --- a/examples/2.3.x/server-dart/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-dart/examples/account/create-email-password-session.md @@ -11,5 +11,6 @@ Account account = Account(client); Session result = await account.createEmailPasswordSession( email: 'email@example.com', password: 'password', + duration: 60, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/account/delete-sessions.md b/examples/2.3.x/server-dart/examples/account/delete-sessions.md index 2b7f5b819..e1f611e3c 100644 --- a/examples/2.3.x/server-dart/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-dart/examples/account/delete-sessions.md @@ -8,5 +8,7 @@ Client client = Client() Account account = Account(client); -await account.deleteSessions(); +await account.deleteSessions( + current: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/account/list-sessions.md b/examples/2.3.x/server-dart/examples/account/list-sessions.md index 53c0d220b..d582ecba6 100644 --- a/examples/2.3.x/server-dart/examples/account/list-sessions.md +++ b/examples/2.3.x/server-dart/examples/account/list-sessions.md @@ -8,5 +8,7 @@ Client client = Client() Account account = Account(client); -SessionList result = await account.listSessions(); +SessionList result = await account.listSessions( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/analytics/create-event.md b/examples/2.3.x/server-dart/examples/analytics/create-event.md new file mode 100644 index 000000000..05e6e4697 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/create-event.md @@ -0,0 +1,26 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +Analytics analytics = Analytics(client); + + result = await analytics.createEvent( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + url: 'https://example.com', + domain: '<DOMAIN>', // (optional) + referrer: '<REFERRER>', // (optional) + screenWidth: 0, // (optional) + sessionHash: '<SESSION_HASH>', // (optional) + scrollDepth: 0, // (optional) + engagementTime: 0, // (optional) + props: [], // (optional) + userId: '<USER_ID>', // (optional) + ip: '<IP>', // (optional) + userAgent: '<USER_AGENT>', // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/create-property.md b/examples/2.3.x/server-dart/examples/analytics/create-property.md new file mode 100644 index 000000000..7322912be --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/create-property.md @@ -0,0 +1,20 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +AnalyticsProperty result = await analytics.createProperty( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + domain: '<DOMAIN>', // (optional) + timezone: '<TIMEZONE>', // (optional) + enabled: false, // (optional) + public: false, // (optional) + allowedOrigins: [], // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/delete-property.md b/examples/2.3.x/server-dart/examples/analytics/delete-property.md new file mode 100644 index 000000000..f232a6893 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/delete-property.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +await analytics.deleteProperty( + propertyId: '<PROPERTY_ID>', +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/get-property.md b/examples/2.3.x/server-dart/examples/analytics/get-property.md new file mode 100644 index 000000000..b7379ee67 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/get-property.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +AnalyticsProperty result = await analytics.getProperty( + propertyId: '<PROPERTY_ID>', +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/list-metrics.md b/examples/2.3.x/server-dart/examples/analytics/list-metrics.md new file mode 100644 index 000000000..b1aaebfa9 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/list-metrics.md @@ -0,0 +1,22 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +AnalyticsMetricList result = await analytics.listMetrics( + propertyId: '<PROPERTY_ID>', + queries: [], // (optional) + interval: enums.AnalyticsInterval.oneHour, // (optional) + dimensions: [enums.AnalyticsDimension.country], // (optional) + dateRange: '<DATE_RANGE>', // (optional) + startAt: '2020-10-15T06:38:00.000+00:00', // (optional) + endAt: '2020-10-15T06:38:00.000+00:00', // (optional) + limit: 1, // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/list-properties.md b/examples/2.3.x/server-dart/examples/analytics/list-properties.md new file mode 100644 index 000000000..123a17c7a --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/list-properties.md @@ -0,0 +1,16 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +AnalyticsPropertyList result = await analytics.listProperties( + queries: [], // (optional) + search: '<SEARCH>', // (optional) + total: false, // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/analytics/update-property.md b/examples/2.3.x/server-dart/examples/analytics/update-property.md new file mode 100644 index 000000000..1516660b3 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/analytics/update-property.md @@ -0,0 +1,20 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Analytics analytics = Analytics(client); + +AnalyticsProperty result = await analytics.updateProperty( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', // (optional) + domain: '<DOMAIN>', // (optional) + timezone: '<TIMEZONE>', // (optional) + enabled: false, // (optional) + public: false, // (optional) + allowedOrigins: [], // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/avatars/delete-photo.md b/examples/2.3.x/server-dart/examples/avatars/delete-photo.md new file mode 100644 index 000000000..a30443821 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/avatars/delete-photo.md @@ -0,0 +1,12 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +Avatars avatars = Avatars(client); + +await avatars.deletePhoto(); +``` diff --git a/examples/2.3.x/server-dart/examples/avatars/get-screenshot.md b/examples/2.3.x/server-dart/examples/avatars/get-screenshot.md index b2c005e37..af9c2eced 100644 --- a/examples/2.3.x/server-dart/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-dart/examples/avatars/get-screenshot.md @@ -12,8 +12,7 @@ Avatars avatars = Avatars(client); Uint8List result = await avatars.getScreenshot( url: 'https://example.com', headers: { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" }, // (optional) viewportWidth: 1920, // (optional) viewportHeight: 1080, // (optional) diff --git a/examples/2.3.x/server-dart/examples/avatars/update-photo.md b/examples/2.3.x/server-dart/examples/avatars/update-photo.md new file mode 100644 index 000000000..118e1d459 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/avatars/update-photo.md @@ -0,0 +1,15 @@ +```dart +import 'dart:io'; +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +Avatars avatars = Avatars(client); + +Account result = await avatars.updatePhoto( + file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), +); +``` diff --git a/examples/2.3.x/server-dart/examples/databases/create-documents.md b/examples/2.3.x/server-dart/examples/databases/create-documents.md index dd0204676..0a7dad529 100644 --- a/examples/2.3.x/server-dart/examples/databases/create-documents.md +++ b/examples/2.3.x/server-dart/examples/databases/create-documents.md @@ -11,7 +11,16 @@ Databases databases = Databases(client); DocumentList result = await databases.createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/databases/create-index.md b/examples/2.3.x/server-dart/examples/databases/create-index.md index b1bfb5724..84a3a01a7 100644 --- a/examples/2.3.x/server-dart/examples/databases/create-index.md +++ b/examples/2.3.x/server-dart/examples/databases/create-index.md @@ -14,7 +14,7 @@ Index result = await databases.createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: enums.DatabasesIndexType.key, - attributes: [], + attributes: ["username"], orders: [enums.OrderBy.asc], // (optional) lengths: [], // (optional) ); diff --git a/examples/2.3.x/server-dart/examples/databases/delete-documents.md b/examples/2.3.x/server-dart/examples/databases/delete-documents.md index 6a8bd5a87..6e3c289f3 100644 --- a/examples/2.3.x/server-dart/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-dart/examples/databases/delete-documents.md @@ -11,7 +11,7 @@ Databases databases = Databases(client); await databases.deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/databases/list-transactions.md b/examples/2.3.x/server-dart/examples/databases/list-transactions.md index 07a73e26d..39b49d5eb 100644 --- a/examples/2.3.x/server-dart/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-dart/examples/databases/list-transactions.md @@ -10,5 +10,6 @@ Databases databases = Databases(client); TransactionList result = await databases.listTransactions( queries: [], // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/databases/upsert-documents.md b/examples/2.3.x/server-dart/examples/databases/upsert-documents.md index 95806e1ab..705131536 100644 --- a/examples/2.3.x/server-dart/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-dart/examples/databases/upsert-documents.md @@ -11,7 +11,16 @@ Databases databases = Databases(client); DocumentList result = await databases.upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/documentsdb/create-documents.md b/examples/2.3.x/server-dart/examples/documentsdb/create-documents.md index 6a76e7e0b..625b3eabd 100644 --- a/examples/2.3.x/server-dart/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-dart/examples/documentsdb/create-documents.md @@ -11,7 +11,16 @@ DocumentsDB documentsDB = DocumentsDB(client); DocumentList result = await documentsDB.createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/documentsdb/create-index.md b/examples/2.3.x/server-dart/examples/documentsdb/create-index.md index 3cfaea320..14b7a936a 100644 --- a/examples/2.3.x/server-dart/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-dart/examples/documentsdb/create-index.md @@ -14,7 +14,7 @@ Index result = await documentsDB.createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: enums.DocumentsDBIndexType.key, - attributes: [], + attributes: ["username"], orders: [enums.OrderBy.asc], // (optional) lengths: [], // (optional) ); diff --git a/examples/2.3.x/server-dart/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-dart/examples/documentsdb/delete-documents.md index 9218ccd6b..1934a1767 100644 --- a/examples/2.3.x/server-dart/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-dart/examples/documentsdb/delete-documents.md @@ -11,7 +11,7 @@ DocumentsDB documentsDB = DocumentsDB(client); await documentsDB.deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-dart/examples/documentsdb/list-transactions.md index 066ebfe5b..76c78ba5a 100644 --- a/examples/2.3.x/server-dart/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-dart/examples/documentsdb/list-transactions.md @@ -10,5 +10,6 @@ DocumentsDB documentsDB = DocumentsDB(client); TransactionList result = await documentsDB.listTransactions( queries: [], // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-dart/examples/documentsdb/upsert-documents.md index bbf864900..355835fb2 100644 --- a/examples/2.3.x/server-dart/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-dart/examples/documentsdb/upsert-documents.md @@ -11,7 +11,16 @@ DocumentsDB documentsDB = DocumentsDB(client); DocumentList result = await documentsDB.upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-dart/examples/embeddings/create-text-embeddings.md index b943468ad..5411e16f2 100644 --- a/examples/2.3.x/server-dart/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-dart/examples/embeddings/create-text-embeddings.md @@ -10,7 +10,7 @@ Client client = Client() Embeddings embeddings = Embeddings(client); EmbeddingList result = await embeddings.createTextEmbeddings( - texts: [], + texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: enums.EmbeddingModel.nomicEmbedText, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/functions/list-runtimes.md b/examples/2.3.x/server-dart/examples/functions/list-runtimes.md index 6325f4e4b..29b84b195 100644 --- a/examples/2.3.x/server-dart/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-dart/examples/functions/list-runtimes.md @@ -8,5 +8,7 @@ Client client = Client() Functions functions = Functions(client); -RuntimeList result = await functions.listRuntimes(); +RuntimeList result = await functions.listRuntimes( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/functions/list-specifications.md b/examples/2.3.x/server-dart/examples/functions/list-specifications.md index be35d601a..07d82f311 100644 --- a/examples/2.3.x/server-dart/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-dart/examples/functions/list-specifications.md @@ -10,5 +10,6 @@ Functions functions = Functions(client); SpecificationList result = await functions.listSpecifications( type: 'runtimes', // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/graphql/mutation.md b/examples/2.3.x/server-dart/examples/graphql/mutation.md index cd55d655e..36c626508 100644 --- a/examples/2.3.x/server-dart/examples/graphql/mutation.md +++ b/examples/2.3.x/server-dart/examples/graphql/mutation.md @@ -9,6 +9,8 @@ Client client = Client() Graphql graphql = Graphql(client); Any result = await graphql.mutation( - query: {}, + query: { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + }, ); ``` diff --git a/examples/2.3.x/server-dart/examples/graphql/query.md b/examples/2.3.x/server-dart/examples/graphql/query.md index 7d6fa1841..2d40bd78a 100644 --- a/examples/2.3.x/server-dart/examples/graphql/query.md +++ b/examples/2.3.x/server-dart/examples/graphql/query.md @@ -9,6 +9,8 @@ Client client = Client() Graphql graphql = Graphql(client); Any result = await graphql.query( - query: {}, + query: { + "query": "query { localeGet { ip } }" + }, ); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-codes.md b/examples/2.3.x/server-dart/examples/locale/list-codes.md index c8b2490d9..7b7530184 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-codes.md +++ b/examples/2.3.x/server-dart/examples/locale/list-codes.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -LocaleCodeList result = await locale.listCodes(); +LocaleCodeList result = await locale.listCodes( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-continents.md b/examples/2.3.x/server-dart/examples/locale/list-continents.md index 5d96631bc..09de6d83e 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-continents.md +++ b/examples/2.3.x/server-dart/examples/locale/list-continents.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -ContinentList result = await locale.listContinents(); +ContinentList result = await locale.listContinents( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-countries-eu.md b/examples/2.3.x/server-dart/examples/locale/list-countries-eu.md index 191be9496..cd49b0bd5 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-dart/examples/locale/list-countries-eu.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountriesEU(); +CountryList result = await locale.listCountriesEU( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-countries-phones.md b/examples/2.3.x/server-dart/examples/locale/list-countries-phones.md index 00ec7810b..771b6e5cd 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-dart/examples/locale/list-countries-phones.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -PhoneList result = await locale.listCountriesPhones(); +PhoneList result = await locale.listCountriesPhones( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-countries.md b/examples/2.3.x/server-dart/examples/locale/list-countries.md index 62da933f8..207732cde 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-countries.md +++ b/examples/2.3.x/server-dart/examples/locale/list-countries.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountries(); +CountryList result = await locale.listCountries( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-currencies.md b/examples/2.3.x/server-dart/examples/locale/list-currencies.md index c10296305..8bc09de28 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-dart/examples/locale/list-currencies.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CurrencyList result = await locale.listCurrencies(); +CurrencyList result = await locale.listCurrencies( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/locale/list-languages.md b/examples/2.3.x/server-dart/examples/locale/list-languages.md index 297128406..2142de0bf 100644 --- a/examples/2.3.x/server-dart/examples/locale/list-languages.md +++ b/examples/2.3.x/server-dart/examples/locale/list-languages.md @@ -8,5 +8,7 @@ Client client = Client() Locale locale = Locale(client); -LanguageList result = await locale.listLanguages(); +LanguageList result = await locale.listLanguages( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/messaging/create-push.md b/examples/2.3.x/server-dart/examples/messaging/create-push.md index 0e28197ba..0518f55f5 100644 --- a/examples/2.3.x/server-dart/examples/messaging/create-push.md +++ b/examples/2.3.x/server-dart/examples/messaging/create-push.md @@ -29,5 +29,6 @@ Message result = await messaging.createPush( contentAvailable: false, // (optional) critical: false, // (optional) priority: enums.MessagePriority.normal, // (optional) + channelId: '<CHANNEL_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/messaging/update-email.md b/examples/2.3.x/server-dart/examples/messaging/update-email.md index fec5affc8..479d97fbb 100644 --- a/examples/2.3.x/server-dart/examples/messaging/update-email.md +++ b/examples/2.3.x/server-dart/examples/messaging/update-email.md @@ -10,18 +10,18 @@ Messaging messaging = Messaging(client); Message result = await messaging.updateEmail( messageId: '<MESSAGE_ID>', + subject: '<SUBJECT>', // (optional) + content: '<CONTENT>', // (optional) topics: [], // (optional) users: [], // (optional) targets: [], // (optional) - subject: '<SUBJECT>', // (optional) - content: '<CONTENT>', // (optional) - draft: false, // (optional) - html: false, // (optional) cc: [], // (optional) bcc: [], // (optional) + attachments: [], // (optional) replyToEmail: 'email@example.com', // (optional) replyToName: '<REPLY_TO_NAME>', // (optional) + draft: false, // (optional) + html: false, // (optional) scheduledAt: '2020-10-15T06:38:00.000+00:00', // (optional) - attachments: [], // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/messaging/update-push.md b/examples/2.3.x/server-dart/examples/messaging/update-push.md index 17b347e41..a376cd7de 100644 --- a/examples/2.3.x/server-dart/examples/messaging/update-push.md +++ b/examples/2.3.x/server-dart/examples/messaging/update-push.md @@ -11,11 +11,11 @@ Messaging messaging = Messaging(client); Message result = await messaging.updatePush( messageId: '<MESSAGE_ID>', + title: '<TITLE>', // (optional) + body: '<BODY>', // (optional) topics: [], // (optional) users: [], // (optional) targets: [], // (optional) - title: '<TITLE>', // (optional) - body: '<BODY>', // (optional) data: {}, // (optional) action: '<ACTION>', // (optional) image: '<ID1:ID2>', // (optional) @@ -29,5 +29,6 @@ Message result = await messaging.updatePush( contentAvailable: false, // (optional) critical: false, // (optional) priority: enums.MessagePriority.normal, // (optional) + channelId: '<CHANNEL_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/messaging/update-sms.md b/examples/2.3.x/server-dart/examples/messaging/update-sms.md index b8197294a..4b0456135 100644 --- a/examples/2.3.x/server-dart/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-dart/examples/messaging/update-sms.md @@ -10,10 +10,10 @@ Messaging messaging = Messaging(client); Message result = await messaging.updateSMS( messageId: '<MESSAGE_ID>', + content: '<CONTENT>', // (optional) topics: [], // (optional) users: [], // (optional) targets: [], // (optional) - content: '<CONTENT>', // (optional) draft: false, // (optional) scheduledAt: '2020-10-15T06:38:00.000+00:00', // (optional) ); diff --git a/examples/2.3.x/server-dart/examples/oauth2/introspect.md b/examples/2.3.x/server-dart/examples/oauth2/introspect.md new file mode 100644 index 000000000..acb9ed0e2 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/oauth2/introspect.md @@ -0,0 +1,17 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Introspection result = await oauth2.introspect( + token: '<TOKEN>', + tokenTypeHint: 'access_token', // (optional) + clientId: '<CLIENT_ID>', // (optional) + clientSecret: '<CLIENT_SECRET>', // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-dart/examples/organization/create-ephemeral-project-key.md index 1ecc7ee52..3c0a1463f 100644 --- a/examples/2.3.x/server-dart/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-dart/examples/organization/create-ephemeral-project-key.md @@ -11,7 +11,7 @@ Organization organization = Organization(client); EphemeralKey result = await organization.createEphemeralProjectKey( projectId: '<PROJECT_ID>', - scopes: [enums.ProjectKeyScopes.projectRead], + scopes: [enums.ProjectKeyScopes.usersRead], duration: 600, ); ``` diff --git a/examples/2.3.x/server-dart/examples/organization/update-project-key.md b/examples/2.3.x/server-dart/examples/organization/update-project-key.md index 5ca9c8971..dfe84199d 100644 --- a/examples/2.3.x/server-dart/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-dart/examples/organization/update-project-key.md @@ -13,7 +13,7 @@ Key result = await organization.updateProjectKey( projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', - scopes: [enums.ProjectKeyScopes.projectRead], + scopes: [enums.ProjectKeyScopes.usersRead], expire: '2020-10-15T06:38:00.000+00:00', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-dart/examples/project/create-ephemeral-key.md index cdc4ab77d..0a4699a9b 100644 --- a/examples/2.3.x/server-dart/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-dart/examples/project/create-ephemeral-key.md @@ -10,7 +10,7 @@ Client client = Client() Project project = Project(client); EphemeralKey result = await project.createEphemeralKey( - scopes: [enums.ProjectKeyScopes.projectRead], + scopes: [enums.ProjectKeyScopes.usersRead], duration: 600, ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/create-smtp-test.md b/examples/2.3.x/server-dart/examples/project/create-smtp-test.md index fac73da88..a1cadb9be 100644 --- a/examples/2.3.x/server-dart/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-dart/examples/project/create-smtp-test.md @@ -9,6 +9,6 @@ Client client = Client() Project project = Project(client); result = await project.createSMTPTest( - emails: [], + emails: ["recipient@example.com"], ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-key.md b/examples/2.3.x/server-dart/examples/project/update-key.md index b15aa92f4..0f0a73058 100644 --- a/examples/2.3.x/server-dart/examples/project/update-key.md +++ b/examples/2.3.x/server-dart/examples/project/update-key.md @@ -12,7 +12,7 @@ Project project = Project(client); Key result = await project.updateKey( keyId: '<KEY_ID>', name: '<NAME>', - scopes: [enums.ProjectKeyScopes.projectRead], + scopes: [enums.ProjectKeyScopes.usersRead], expire: '2020-10-15T06:38:00.000+00:00', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-labels.md b/examples/2.3.x/server-dart/examples/project/update-labels.md index ec1b51ce3..a4a426c74 100644 --- a/examples/2.3.x/server-dart/examples/project/update-labels.md +++ b/examples/2.3.x/server-dart/examples/project/update-labels.md @@ -9,6 +9,6 @@ Client client = Client() Project project = Project(client); Project result = await project.updateLabels( - labels: [], + labels: ["production"], ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-auth-0.md index e00a59761..1e8d4e7c8 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-auth-0.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +13,7 @@ OAuth2Auth0 result = await project.updateOAuth2Auth0( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) endpoint: '<ENDPOINT>', // (optional) + prompt: [enums.ProjectOAuth2Auth0Prompt.none], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-discord.md index 7e06450d2..0f551981c 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-discord.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +12,7 @@ Project project = Project(client); OAuth2Discord result = await project.updateOAuth2Discord( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) + prompt: [enums.ProjectOAuth2DiscordPrompt.none], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-git-hub.md index e2830382e..d286b5bc5 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-git-hub.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +12,7 @@ Project project = Project(client); OAuth2Github result = await project.updateOAuth2GitHub( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) + prompt: [enums.ProjectOAuth2GitHubPrompt.selectAccount], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-kakao.md index 1a47e3871..9342c3e73 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-kakao.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +12,7 @@ Project project = Project(client); OAuth2Kakao result = await project.updateOAuth2Kakao( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) + prompt: [enums.ProjectOAuth2KakaoPrompt.none], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-microsoft.md index 7f1aa6ca9..a41245b67 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-microsoft.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -12,6 +13,7 @@ OAuth2Microsoft result = await project.updateOAuth2Microsoft( applicationId: '<APPLICATION_ID>', // (optional) applicationSecret: '<APPLICATION_SECRET>', // (optional) tenant: '<TENANT>', // (optional) + prompt: [enums.ProjectOAuth2MicrosoftPrompt.none], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-okta.md index cfd9f8cef..eca6d3e06 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-okta.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -13,6 +14,7 @@ OAuth2Okta result = await project.updateOAuth2Okta( clientSecret: '<CLIENT_SECRET>', // (optional) domain: 'example.com', // (optional) authorizationServerId: '<AUTHORIZATION_SERVER_ID>', // (optional) + prompt: [enums.ProjectOAuth2OktaPrompt.none], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-salesforce.md index 6be026b45..2120fb2a6 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-salesforce.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +12,7 @@ Project project = Project(client); OAuth2Salesforce result = await project.updateOAuth2Salesforce( customerKey: '<CUSTOMER_KEY>', // (optional) customerSecret: '<CUSTOMER_SECRET>', // (optional) + prompt: [enums.ProjectOAuth2SalesforcePrompt.login], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..c7e6f0af1 --- /dev/null +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,16 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Project project = Project(client); + +OAuth2Webflow result = await project.updateOAuth2Webflow( + clientId: '<CLIENT_ID>', // (optional) + clientSecret: '<CLIENT_SECRET>', // (optional) + enabled: false, // (optional) +); +``` diff --git a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-zoho.md index 69d44d8a2..f89791455 100644 --- a/examples/2.3.x/server-dart/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-dart/examples/project/update-o-auth-2-zoho.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -11,6 +12,7 @@ Project project = Project(client); OAuth2Zoho result = await project.updateOAuth2Zoho( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) + prompt: [enums.ProjectOAuth2ZohoPrompt.consent], // (optional) enabled: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/sites/list-frameworks.md b/examples/2.3.x/server-dart/examples/sites/list-frameworks.md index b3e9bd8b0..19475423d 100644 --- a/examples/2.3.x/server-dart/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-dart/examples/sites/list-frameworks.md @@ -8,5 +8,7 @@ Client client = Client() Sites sites = Sites(client); -FrameworkList result = await sites.listFrameworks(); +FrameworkList result = await sites.listFrameworks( + total: false, // (optional) +); ``` diff --git a/examples/2.3.x/server-dart/examples/sites/list-specifications.md b/examples/2.3.x/server-dart/examples/sites/list-specifications.md index 7c80f2aad..3335fbd99 100644 --- a/examples/2.3.x/server-dart/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-dart/examples/sites/list-specifications.md @@ -10,5 +10,6 @@ Sites sites = Sites(client); SpecificationList result = await sites.listSpecifications( type: 'runtimes', // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/tablesdb/create-index.md b/examples/2.3.x/server-dart/examples/tablesdb/create-index.md index 97f2e23a4..54979f52a 100644 --- a/examples/2.3.x/server-dart/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-dart/examples/tablesdb/create-index.md @@ -14,7 +14,7 @@ ColumnIndex result = await tablesDB.createIndex( tableId: '<TABLE_ID>', key: '<KEY>', type: enums.TablesDBIndexType.key, - columns: [], + columns: ["username"], orders: [enums.OrderBy.asc], // (optional) lengths: [], // (optional) ); diff --git a/examples/2.3.x/server-dart/examples/tablesdb/create-rows.md b/examples/2.3.x/server-dart/examples/tablesdb/create-rows.md index afa7629da..7bfed01e9 100644 --- a/examples/2.3.x/server-dart/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-dart/examples/tablesdb/create-rows.md @@ -11,7 +11,16 @@ TablesDB tablesDB = TablesDB(client); RowList result = await tablesDB.createRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-dart/examples/tablesdb/delete-rows.md index 443aee01f..b929cbad8 100644 --- a/examples/2.3.x/server-dart/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-dart/examples/tablesdb/delete-rows.md @@ -11,7 +11,7 @@ TablesDB tablesDB = TablesDB(client); await tablesDB.deleteRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - queries: [], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-dart/examples/tablesdb/list-transactions.md index fa4782b5b..ff0d673cb 100644 --- a/examples/2.3.x/server-dart/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-dart/examples/tablesdb/list-transactions.md @@ -10,5 +10,6 @@ TablesDB tablesDB = TablesDB(client); TransactionList result = await tablesDB.listTransactions( queries: [], // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-dart/examples/tablesdb/upsert-rows.md index a457f5e88..9f7dda64c 100644 --- a/examples/2.3.x/server-dart/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-dart/examples/tablesdb/upsert-rows.md @@ -11,7 +11,16 @@ TablesDB tablesDB = TablesDB(client); RowList result = await tablesDB.upsertRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/teams/create-membership.md b/examples/2.3.x/server-dart/examples/teams/create-membership.md index 8f95362a7..5afcbc407 100644 --- a/examples/2.3.x/server-dart/examples/teams/create-membership.md +++ b/examples/2.3.x/server-dart/examples/teams/create-membership.md @@ -10,7 +10,7 @@ Teams teams = Teams(client); Membership result = await teams.createMembership( teamId: '<TEAM_ID>', - roles: [], + roles: ["editor"], email: 'email@example.com', // (optional) userId: '<USER_ID>', // (optional) phone: '+12065550100', // (optional) diff --git a/examples/2.3.x/server-dart/examples/teams/update-membership.md b/examples/2.3.x/server-dart/examples/teams/update-membership.md index 961def983..96dc8034e 100644 --- a/examples/2.3.x/server-dart/examples/teams/update-membership.md +++ b/examples/2.3.x/server-dart/examples/teams/update-membership.md @@ -11,6 +11,6 @@ Teams teams = Teams(client); Membership result = await teams.updateMembership( teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', - roles: [], + roles: ["editor"], ); ``` diff --git a/examples/2.3.x/server-dart/examples/users/update-labels.md b/examples/2.3.x/server-dart/examples/users/update-labels.md index efbf657d3..a47cd2e74 100644 --- a/examples/2.3.x/server-dart/examples/users/update-labels.md +++ b/examples/2.3.x/server-dart/examples/users/update-labels.md @@ -10,6 +10,6 @@ Users users = Users(client); User result = await users.updateLabels( userId: '<USER_ID>', - labels: [], + labels: ["subscriber"], ); ``` diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-dart/examples/vectorsdb/create-collection.md index 373e42edd..2b9952b8d 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/create-collection.md @@ -14,7 +14,7 @@ VectorsdbCollection result = await vectorsDB.createCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, + dimension: 4, permissions: [Permission.read(Role.any())], // (optional) documentSecurity: false, // (optional) enabled: false, // (optional) diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-dart/examples/vectorsdb/create-documents.md index 61d28281a..9673b5c1d 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/create-documents.md @@ -11,7 +11,20 @@ VectorsDB vectorsDB = VectorsDB(client); DocumentList result = await vectorsDB.createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/create-index.md b/examples/2.3.x/server-dart/examples/vectorsdb/create-index.md index 497e69da4..4c277f702 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/create-index.md @@ -14,7 +14,7 @@ Index result = await vectorsDB.createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: enums.VectorsDBIndexType.hnswEuclidean, - attributes: [], + attributes: ["embeddings"], orders: [enums.OrderBy.asc], // (optional) lengths: [], // (optional) ); diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-dart/examples/vectorsdb/create-operations.md index 2736f79e3..c1f821da3 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/create-operations.md @@ -17,7 +17,15 @@ Transaction result = await vectorsDB.createOperations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ], // (optional) diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-dart/examples/vectorsdb/delete-documents.md index a2d7b1f9d..270074bca 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/delete-documents.md @@ -11,7 +11,7 @@ VectorsDB vectorsDB = VectorsDB(client); await vectorsDB.deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-dart/examples/vectorsdb/list-transactions.md index eb5058755..e23b48ea9 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/list-transactions.md @@ -10,5 +10,6 @@ VectorsDB vectorsDB = VectorsDB(client); TransactionList result = await vectorsDB.listTransactions( queries: [], // (optional) + total: false, // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-dart/examples/vectorsdb/update-collection.md index e7e90abe7..b1da6cfba 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/update-collection.md @@ -14,7 +14,7 @@ VectorsdbCollection result = await vectorsDB.updateCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, // (optional) + dimension: 4, // (optional) permissions: [Permission.read(Role.any())], // (optional) documentSecurity: false, // (optional) enabled: false, // (optional) diff --git a/examples/2.3.x/server-dart/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-dart/examples/vectorsdb/upsert-documents.md index d6bd3309a..37d1c97d0 100644 --- a/examples/2.3.x/server-dart/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-dart/examples/vectorsdb/upsert-documents.md @@ -11,7 +11,20 @@ VectorsDB vectorsDB = VectorsDB(client); DocumentList result = await vectorsDB.upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.3.x/server-dart/examples/webhooks/create.md b/examples/2.3.x/server-dart/examples/webhooks/create.md index fe07d9d6d..9f60e8cfc 100644 --- a/examples/2.3.x/server-dart/examples/webhooks/create.md +++ b/examples/2.3.x/server-dart/examples/webhooks/create.md @@ -12,7 +12,7 @@ Webhook result = await webhooks.create( webhookId: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', - events: [], + events: ["users.*.create"], enabled: false, // (optional) tls: false, // (optional) authUsername: '<AUTH_USERNAME>', // (optional) diff --git a/examples/2.3.x/server-dart/examples/webhooks/update.md b/examples/2.3.x/server-dart/examples/webhooks/update.md index 99bc21df8..e4f7fd293 100644 --- a/examples/2.3.x/server-dart/examples/webhooks/update.md +++ b/examples/2.3.x/server-dart/examples/webhooks/update.md @@ -12,7 +12,7 @@ Webhook result = await webhooks.update( webhookId: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', - events: [], + events: ["users.*.create"], enabled: false, // (optional) tls: false, // (optional) authUsername: '<AUTH_USERNAME>', // (optional) diff --git a/examples/2.3.x/server-dotnet/examples/account/create-anonymous-session.md b/examples/2.3.x/server-dotnet/examples/account/create-anonymous-session.md index 35b3aab46..81dc71b44 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-anonymous-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-anonymous-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.CreateAnonymousSession(); +Appwrite.Models.Session result = await account.CreateAnonymousSession(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/create-email-password-session.md b/examples/2.3.x/server-dotnet/examples/account/create-email-password-session.md index f24e35ca3..06f70f33f 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-email-password-session.md @@ -10,9 +10,10 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.CreateEmailPasswordSession( +Appwrite.Models.Session result = await account.CreateEmailPasswordSession( email: "email@example.com", - password: "password" + password: "password", + duration: 60 // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/create-email-token.md b/examples/2.3.x/server-dotnet/examples/account/create-email-token.md index be003ffe1..a43eb0bb3 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-email-token.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-email-token.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateEmailToken( +Appwrite.Models.Token result = await account.CreateEmailToken( userId: "<USER_ID>", email: "email@example.com", phrase: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/account/create-email-verification-otp.md b/examples/2.3.x/server-dotnet/examples/account/create-email-verification-otp.md index 537193b26..13e565432 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-email-verification-otp.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-email-verification-otp.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateEmailVerificationOTP( +Appwrite.Models.Token result = await account.CreateEmailVerificationOTP( phrase: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-email-verification.md b/examples/2.3.x/server-dotnet/examples/account/create-email-verification.md index b5c4aad48..b3b841bee 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-email-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-email-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateEmailVerification( +Appwrite.Models.Token result = await account.CreateEmailVerification( url: "https://example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-id-token-session.md b/examples/2.3.x/server-dotnet/examples/account/create-id-token-session.md index 121d06845..fd3945bad 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-id-token-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-id-token-session.md @@ -11,7 +11,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.CreateIdTokenSession( +Appwrite.Models.Session result = await account.CreateIdTokenSession( provider: IdTokenProvider.Apple, idToken: "<ID_TOKEN>", nonce: "<NONCE>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/account/create-magic-url-token.md b/examples/2.3.x/server-dotnet/examples/account/create-magic-url-token.md index 85e771646..845624310 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-magic-url-token.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-magic-url-token.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateMagicURLToken( +Appwrite.Models.Token result = await account.CreateMagicURLToken( userId: "<USER_ID>", email: "email@example.com", url: "https://example.com", // optional diff --git a/examples/2.3.x/server-dotnet/examples/account/create-mfa-authenticator.md b/examples/2.3.x/server-dotnet/examples/account/create-mfa-authenticator.md index 74e3d1053..8405427dc 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-mfa-authenticator.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-mfa-authenticator.md @@ -11,7 +11,7 @@ Client client = new Client() Account account = new Account(client); -MfaType result = await account.CreateMFAAuthenticator( +Appwrite.Models.MfaType result = await account.CreateMFAAuthenticator( type: AuthenticatorType.Totp ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-mfa-challenge.md b/examples/2.3.x/server-dotnet/examples/account/create-mfa-challenge.md index 8f7a9208b..7ca2d569d 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-mfa-challenge.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-mfa-challenge.md @@ -11,7 +11,7 @@ Client client = new Client() Account account = new Account(client); -MfaChallenge result = await account.CreateMFAChallenge( +Appwrite.Models.MfaChallenge result = await account.CreateMFAChallenge( factor: AuthenticationFactor.Email ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/account/create-mfa-recovery-codes.md index 6869828db..37dd3a899 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -MfaRecoveryCodes result = await account.CreateMFARecoveryCodes(); +Appwrite.Models.MfaRecoveryCodes result = await account.CreateMFARecoveryCodes(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/create-phone-token.md b/examples/2.3.x/server-dotnet/examples/account/create-phone-token.md index e296f8ed7..5f3e5bb56 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-phone-token.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-phone-token.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreatePhoneToken( +Appwrite.Models.Token result = await account.CreatePhoneToken( userId: "<USER_ID>", phone: "+12065550100" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-phone-verification.md b/examples/2.3.x/server-dotnet/examples/account/create-phone-verification.md index e5f1144da..f6cd2d1b9 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-phone-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-phone-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreatePhoneVerification(); +Appwrite.Models.Token result = await account.CreatePhoneVerification(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/create-recovery-otp.md b/examples/2.3.x/server-dotnet/examples/account/create-recovery-otp.md index db9dc0ce7..93602e463 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-recovery-otp.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-recovery-otp.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateRecoveryOTP( +Appwrite.Models.Token result = await account.CreateRecoveryOTP( email: "email@example.com", phrase: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-recovery.md b/examples/2.3.x/server-dotnet/examples/account/create-recovery.md index 7951fcb60..df9fba03b 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-recovery.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-recovery.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateRecovery( +Appwrite.Models.Token result = await account.CreateRecovery( email: "email@example.com", url: "https://example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-session.md b/examples/2.3.x/server-dotnet/examples/account/create-session.md index 9cd8558a9..b3a0cae63 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.CreateSession( +Appwrite.Models.Session result = await account.CreateSession( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create-verification.md b/examples/2.3.x/server-dotnet/examples/account/create-verification.md index a25aa0de2..c7b6112ff 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/create-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.CreateVerification( +Appwrite.Models.Token result = await account.CreateVerification( url: "https://example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/create.md b/examples/2.3.x/server-dotnet/examples/account/create.md index b068e0c36..4f136558b 100644 --- a/examples/2.3.x/server-dotnet/examples/account/create.md +++ b/examples/2.3.x/server-dotnet/examples/account/create.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.Create( +Appwrite.Models.User result = await account.Create( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/account/delete-sessions.md b/examples/2.3.x/server-dotnet/examples/account/delete-sessions.md index 31bd03a12..1dba1fce1 100644 --- a/examples/2.3.x/server-dotnet/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-dotnet/examples/account/delete-sessions.md @@ -10,7 +10,8 @@ Client client = new Client() Account account = new Account(client); -await account.DeleteSessions(); - +await account.DeleteSessions( + current: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/get-consent-token.md b/examples/2.3.x/server-dotnet/examples/account/get-consent-token.md index d348e155e..6e4df6d15 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get-consent-token.md +++ b/examples/2.3.x/server-dotnet/examples/account/get-consent-token.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Oauth2ConsentToken result = await account.GetConsentToken( +Appwrite.Models.Oauth2ConsentToken result = await account.GetConsentToken( consentId: "<CONSENT_ID>", tokenId: "<TOKEN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/get-consent.md b/examples/2.3.x/server-dotnet/examples/account/get-consent.md index 816f6d5e4..d5780f089 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get-consent.md +++ b/examples/2.3.x/server-dotnet/examples/account/get-consent.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Oauth2Consent result = await account.GetConsent( +Appwrite.Models.Oauth2Consent result = await account.GetConsent( consentId: "<CONSENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/get-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/account/get-mfa-recovery-codes.md index 54ffda453..479dea142 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/account/get-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -MfaRecoveryCodes result = await account.GetMFARecoveryCodes(); +Appwrite.Models.MfaRecoveryCodes result = await account.GetMFARecoveryCodes(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/get-prefs.md b/examples/2.3.x/server-dotnet/examples/account/get-prefs.md index fb891b6e2..b95905bfd 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/account/get-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Preferences result = await account.GetPrefs(); +Appwrite.Models.Preferences result = await account.GetPrefs(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/get-session.md b/examples/2.3.x/server-dotnet/examples/account/get-session.md index dee7ad1b1..6dcd4501a 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/get-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.GetSession( +Appwrite.Models.Session result = await account.GetSession( sessionId: "<SESSION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/get.md b/examples/2.3.x/server-dotnet/examples/account/get.md index ba7c848bf..bb80674a1 100644 --- a/examples/2.3.x/server-dotnet/examples/account/get.md +++ b/examples/2.3.x/server-dotnet/examples/account/get.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.Get(); +Appwrite.Models.User result = await account.Get(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/list-consent-tokens.md b/examples/2.3.x/server-dotnet/examples/account/list-consent-tokens.md index 5f1f36d49..38371315d 100644 --- a/examples/2.3.x/server-dotnet/examples/account/list-consent-tokens.md +++ b/examples/2.3.x/server-dotnet/examples/account/list-consent-tokens.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Oauth2ConsentTokenList result = await account.ListConsentTokens( +Appwrite.Models.Oauth2ConsentTokenList result = await account.ListConsentTokens( consentId: "<CONSENT_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/account/list-consents.md b/examples/2.3.x/server-dotnet/examples/account/list-consents.md index ca7eb65a2..475d93ff9 100644 --- a/examples/2.3.x/server-dotnet/examples/account/list-consents.md +++ b/examples/2.3.x/server-dotnet/examples/account/list-consents.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Oauth2ConsentList result = await account.ListConsents( +Appwrite.Models.Oauth2ConsentList result = await account.ListConsents( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/account/list-identities.md b/examples/2.3.x/server-dotnet/examples/account/list-identities.md index f64b03b0a..913d5b98d 100644 --- a/examples/2.3.x/server-dotnet/examples/account/list-identities.md +++ b/examples/2.3.x/server-dotnet/examples/account/list-identities.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -IdentityList result = await account.ListIdentities( +Appwrite.Models.IdentityList result = await account.ListIdentities( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/account/list-mfa-factors.md b/examples/2.3.x/server-dotnet/examples/account/list-mfa-factors.md index 5fa29c29e..8146e6445 100644 --- a/examples/2.3.x/server-dotnet/examples/account/list-mfa-factors.md +++ b/examples/2.3.x/server-dotnet/examples/account/list-mfa-factors.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -MfaFactors result = await account.ListMFAFactors(); +Appwrite.Models.MfaFactors result = await account.ListMFAFactors(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/list-sessions.md b/examples/2.3.x/server-dotnet/examples/account/list-sessions.md index 81402bccf..c24270ef8 100644 --- a/examples/2.3.x/server-dotnet/examples/account/list-sessions.md +++ b/examples/2.3.x/server-dotnet/examples/account/list-sessions.md @@ -10,7 +10,8 @@ Client client = new Client() Account account = new Account(client); -SessionList result = await account.ListSessions(); - +Appwrite.Models.SessionList result = await account.ListSessions( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/update-email-verification-otp.md b/examples/2.3.x/server-dotnet/examples/account/update-email-verification-otp.md index 384fdeeb9..988084bd0 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-email-verification-otp.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-email-verification-otp.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdateEmailVerificationOTP( +Appwrite.Models.Token result = await account.UpdateEmailVerificationOTP( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-email-verification.md b/examples/2.3.x/server-dotnet/examples/account/update-email-verification.md index 3b4214e6c..aa14f20b3 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-email-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-email-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdateEmailVerification( +Appwrite.Models.Token result = await account.UpdateEmailVerification( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-email.md b/examples/2.3.x/server-dotnet/examples/account/update-email.md index 9135dc1c1..30cefbc1a 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-email.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-email.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdateEmail( +Appwrite.Models.User result = await account.UpdateEmail( email: "email@example.com", password: "password" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-magic-url-session.md b/examples/2.3.x/server-dotnet/examples/account/update-magic-url-session.md index 06f707ee5..1c8d0b558 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-magic-url-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-magic-url-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.UpdateMagicURLSession( +Appwrite.Models.Session result = await account.UpdateMagicURLSession( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-mfa-authenticator.md b/examples/2.3.x/server-dotnet/examples/account/update-mfa-authenticator.md index a9cdba19d..40bd083ea 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-mfa-authenticator.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-mfa-authenticator.md @@ -11,7 +11,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdateMFAAuthenticator( +Appwrite.Models.User result = await account.UpdateMFAAuthenticator( type: AuthenticatorType.Totp, otp: "<OTP>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-mfa-challenge.md b/examples/2.3.x/server-dotnet/examples/account/update-mfa-challenge.md index d74d8d58c..918bc3f2b 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-mfa-challenge.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-mfa-challenge.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.UpdateMFAChallenge( +Appwrite.Models.Session result = await account.UpdateMFAChallenge( challengeId: "<CHALLENGE_ID>", otp: "<OTP>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/account/update-mfa-recovery-codes.md index eefede0f5..f4ac2db3c 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -MfaRecoveryCodes result = await account.UpdateMFARecoveryCodes(); +Appwrite.Models.MfaRecoveryCodes result = await account.UpdateMFARecoveryCodes(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/update-mfa.md b/examples/2.3.x/server-dotnet/examples/account/update-mfa.md index 449edcb39..21fda9c51 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-mfa.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-mfa.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdateMFA( +Appwrite.Models.User result = await account.UpdateMFA( mfa: false ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-name.md b/examples/2.3.x/server-dotnet/examples/account/update-name.md index bf88c6626..623e95841 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-name.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-name.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdateName( +Appwrite.Models.User result = await account.UpdateName( name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-password.md b/examples/2.3.x/server-dotnet/examples/account/update-password.md index 323934abc..78ddd2354 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-password.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-password.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdatePassword( +Appwrite.Models.User result = await account.UpdatePassword( password: "password", oldPassword: "password" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-phone-session.md b/examples/2.3.x/server-dotnet/examples/account/update-phone-session.md index dd7ab0487..ddd7759fb 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-phone-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-phone-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.UpdatePhoneSession( +Appwrite.Models.Session result = await account.UpdatePhoneSession( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-phone-verification.md b/examples/2.3.x/server-dotnet/examples/account/update-phone-verification.md index c2b7eebb5..587b51e5f 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-phone-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-phone-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdatePhoneVerification( +Appwrite.Models.Token result = await account.UpdatePhoneVerification( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-phone.md b/examples/2.3.x/server-dotnet/examples/account/update-phone.md index d2b7276b4..e4b03db91 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-phone.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-phone.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdatePhone( +Appwrite.Models.User result = await account.UpdatePhone( phone: "+12065550100", password: "password" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-prefs.md b/examples/2.3.x/server-dotnet/examples/account/update-prefs.md index 105e69888..db944690d 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdatePrefs( +Appwrite.Models.User result = await account.UpdatePrefs( prefs: new { language = "en", timezone = "UTC", diff --git a/examples/2.3.x/server-dotnet/examples/account/update-recovery-otp.md b/examples/2.3.x/server-dotnet/examples/account/update-recovery-otp.md index 9232fb371..ad31785eb 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-recovery-otp.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-recovery-otp.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdateRecoveryOTP( +Appwrite.Models.Token result = await account.UpdateRecoveryOTP( userId: "<USER_ID>", secret: "<SECRET>", password: "password" diff --git a/examples/2.3.x/server-dotnet/examples/account/update-recovery.md b/examples/2.3.x/server-dotnet/examples/account/update-recovery.md index 5875c5b09..c0e87c28c 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-recovery.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-recovery.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdateRecovery( +Appwrite.Models.Token result = await account.UpdateRecovery( userId: "<USER_ID>", secret: "<SECRET>", password: "password" diff --git a/examples/2.3.x/server-dotnet/examples/account/update-session.md b/examples/2.3.x/server-dotnet/examples/account/update-session.md index d49e556f0..b9bdd0f51 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-session.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-session.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Session result = await account.UpdateSession( +Appwrite.Models.Session result = await account.UpdateSession( sessionId: "<SESSION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/account/update-status.md b/examples/2.3.x/server-dotnet/examples/account/update-status.md index 95ac938dd..e6cf94968 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-status.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-status.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -User result = await account.UpdateStatus(); +Appwrite.Models.User result = await account.UpdateStatus(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/account/update-verification.md b/examples/2.3.x/server-dotnet/examples/account/update-verification.md index 16fbc2ce5..ab345bf16 100644 --- a/examples/2.3.x/server-dotnet/examples/account/update-verification.md +++ b/examples/2.3.x/server-dotnet/examples/account/update-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Account account = new Account(client); -Token result = await account.UpdateVerification( +Appwrite.Models.Token result = await account.UpdateVerification( userId: "<USER_ID>", secret: "<SECRET>" ); diff --git a/examples/2.3.x/server-dotnet/examples/activities/get-event.md b/examples/2.3.x/server-dotnet/examples/activities/get-event.md index 82e50a0b1..38bee825f 100644 --- a/examples/2.3.x/server-dotnet/examples/activities/get-event.md +++ b/examples/2.3.x/server-dotnet/examples/activities/get-event.md @@ -10,7 +10,7 @@ Client client = new Client() Activities activities = new Activities(client); -ActivityEvent result = await activities.GetEvent( +Appwrite.Models.ActivityEvent result = await activities.GetEvent( eventId: "<EVENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/activities/list-events.md b/examples/2.3.x/server-dotnet/examples/activities/list-events.md index c3d2ba2fd..2df308415 100644 --- a/examples/2.3.x/server-dotnet/examples/activities/list-events.md +++ b/examples/2.3.x/server-dotnet/examples/activities/list-events.md @@ -10,7 +10,7 @@ Client client = new Client() Activities activities = new Activities(client); -ActivityEventList result = await activities.ListEvents( +Appwrite.Models.ActivityEventList result = await activities.ListEvents( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/advisor/get-insight.md b/examples/2.3.x/server-dotnet/examples/advisor/get-insight.md index 29543bdc8..baa37a268 100644 --- a/examples/2.3.x/server-dotnet/examples/advisor/get-insight.md +++ b/examples/2.3.x/server-dotnet/examples/advisor/get-insight.md @@ -10,7 +10,7 @@ Client client = new Client() Advisor advisor = new Advisor(client); -Insight result = await advisor.GetInsight( +Appwrite.Models.Insight result = await advisor.GetInsight( reportId: "<REPORT_ID>", insightId: "<INSIGHT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/advisor/get-report.md b/examples/2.3.x/server-dotnet/examples/advisor/get-report.md index 2143cbc0a..41b8828fd 100644 --- a/examples/2.3.x/server-dotnet/examples/advisor/get-report.md +++ b/examples/2.3.x/server-dotnet/examples/advisor/get-report.md @@ -10,7 +10,7 @@ Client client = new Client() Advisor advisor = new Advisor(client); -Report result = await advisor.GetReport( +Appwrite.Models.Report result = await advisor.GetReport( reportId: "<REPORT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/advisor/list-insights.md b/examples/2.3.x/server-dotnet/examples/advisor/list-insights.md index 00322495d..eaae4c1c6 100644 --- a/examples/2.3.x/server-dotnet/examples/advisor/list-insights.md +++ b/examples/2.3.x/server-dotnet/examples/advisor/list-insights.md @@ -10,7 +10,7 @@ Client client = new Client() Advisor advisor = new Advisor(client); -InsightList result = await advisor.ListInsights( +Appwrite.Models.InsightList result = await advisor.ListInsights( reportId: "<REPORT_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/advisor/list-reports.md b/examples/2.3.x/server-dotnet/examples/advisor/list-reports.md index e610e521d..dcaf6415f 100644 --- a/examples/2.3.x/server-dotnet/examples/advisor/list-reports.md +++ b/examples/2.3.x/server-dotnet/examples/advisor/list-reports.md @@ -10,7 +10,7 @@ Client client = new Client() Advisor advisor = new Advisor(client); -ReportList result = await advisor.ListReports( +Appwrite.Models.ReportList result = await advisor.ListReports( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/analytics/create-event.md b/examples/2.3.x/server-dotnet/examples/analytics/create-event.md new file mode 100644 index 000000000..119fe1d74 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/create-event.md @@ -0,0 +1,29 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetSession(""); // The user session to authenticate with + +Analytics analytics = new Analytics(client); + +Appwrite.Models. result = await analytics.CreateEvent( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + url: "https://example.com", + domain: "<DOMAIN>", // optional + referrer: "<REFERRER>", // optional + screenWidth: 0, // optional + sessionHash: "<SESSION_HASH>", // optional + scrollDepth: 0, // optional + engagementTime: 0, // optional + props: new List<string>(), // optional + userId: "<USER_ID>", // optional + ip: "<IP>", // optional + userAgent: "<USER_AGENT>" // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/create-property.md b/examples/2.3.x/server-dotnet/examples/analytics/create-property.md new file mode 100644 index 000000000..a4d0e2965 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/create-property.md @@ -0,0 +1,23 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +Appwrite.Models.AnalyticsProperty result = await analytics.CreateProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + domain: "<DOMAIN>", // optional + timezone: "<TIMEZONE>", // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: new List<string>() // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/delete-property.md b/examples/2.3.x/server-dotnet/examples/analytics/delete-property.md new file mode 100644 index 000000000..11e934e06 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/delete-property.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +await analytics.DeleteProperty( + propertyId: "<PROPERTY_ID>" +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/get-property.md b/examples/2.3.x/server-dotnet/examples/analytics/get-property.md new file mode 100644 index 000000000..ad7aab331 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/get-property.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +Appwrite.Models.AnalyticsProperty result = await analytics.GetProperty( + propertyId: "<PROPERTY_ID>" +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/list-metrics.md b/examples/2.3.x/server-dotnet/examples/analytics/list-metrics.md new file mode 100644 index 000000000..12b194696 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/list-metrics.md @@ -0,0 +1,25 @@ +```csharp +using Appwrite; +using Appwrite.Enums; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +Appwrite.Models.AnalyticsMetricList result = await analytics.ListMetrics( + propertyId: "<PROPERTY_ID>", + queries: new List<string>(), // optional + interval: AnalyticsInterval.OneHour, // optional + dimensions: new List<AnalyticsDimension> { AnalyticsDimension.Country }, // optional + dateRange: "<DATE_RANGE>", // optional + startAt: "2020-10-15T06:38:00.000+00:00", // optional + endAt: "2020-10-15T06:38:00.000+00:00", // optional + limit: 1 // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/list-properties.md b/examples/2.3.x/server-dotnet/examples/analytics/list-properties.md new file mode 100644 index 000000000..4e5c7ca06 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/list-properties.md @@ -0,0 +1,19 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +Appwrite.Models.AnalyticsPropertyList result = await analytics.ListProperties( + queries: new List<string>(), // optional + search: "<SEARCH>", // optional + total: false // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/analytics/update-property.md b/examples/2.3.x/server-dotnet/examples/analytics/update-property.md new file mode 100644 index 000000000..3197e31eb --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/analytics/update-property.md @@ -0,0 +1,23 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +Appwrite.Models.AnalyticsProperty result = await analytics.UpdateProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", // optional + domain: "<DOMAIN>", // optional + timezone: "<TIMEZONE>", // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: new List<string>() // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/apps/create-installation-token.md b/examples/2.3.x/server-dotnet/examples/apps/create-installation-token.md index 0aabf4b1d..87d8cba11 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/create-installation-token.md +++ b/examples/2.3.x/server-dotnet/examples/apps/create-installation-token.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -Oauth2Token result = await apps.CreateInstallationToken( +Appwrite.Models.Oauth2Token result = await apps.CreateInstallationToken( appId: "<APP_ID>", installationId: "<INSTALLATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/create-key.md b/examples/2.3.x/server-dotnet/examples/apps/create-key.md index a4e53d1e4..f3fd184ce 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/create-key.md +++ b/examples/2.3.x/server-dotnet/examples/apps/create-key.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppKey result = await apps.CreateKey( +Appwrite.Models.AppKey result = await apps.CreateKey( appId: "<APP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/create-secret.md b/examples/2.3.x/server-dotnet/examples/apps/create-secret.md index 12553ab66..3a4327f6e 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/create-secret.md +++ b/examples/2.3.x/server-dotnet/examples/apps/create-secret.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppSecretPlaintext result = await apps.CreateSecret( +Appwrite.Models.AppSecretPlaintext result = await apps.CreateSecret( appId: "<APP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/create.md b/examples/2.3.x/server-dotnet/examples/apps/create.md index 18adab455..48ae90724 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/create.md +++ b/examples/2.3.x/server-dotnet/examples/apps/create.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -App result = await apps.Create( +Appwrite.Models.App result = await apps.Create( appId: "<APP_ID>", name: "<NAME>", redirectUris: new List<string>(), diff --git a/examples/2.3.x/server-dotnet/examples/apps/get-installation.md b/examples/2.3.x/server-dotnet/examples/apps/get-installation.md index 16221bdce..cc3aa7b26 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/get-installation.md +++ b/examples/2.3.x/server-dotnet/examples/apps/get-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppInstallation result = await apps.GetInstallation( +Appwrite.Models.AppInstallation result = await apps.GetInstallation( appId: "<APP_ID>", installationId: "<INSTALLATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/get-key.md b/examples/2.3.x/server-dotnet/examples/apps/get-key.md index 4bfe168c2..037a1f516 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/get-key.md +++ b/examples/2.3.x/server-dotnet/examples/apps/get-key.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppKey result = await apps.GetKey( +Appwrite.Models.AppKey result = await apps.GetKey( appId: "<APP_ID>", keyId: "<KEY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/get-secret.md b/examples/2.3.x/server-dotnet/examples/apps/get-secret.md index e1f6e4fc1..1ef7d29f5 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/get-secret.md +++ b/examples/2.3.x/server-dotnet/examples/apps/get-secret.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppSecret result = await apps.GetSecret( +Appwrite.Models.AppSecret result = await apps.GetSecret( appId: "<APP_ID>", secretId: "<SECRET_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/get.md b/examples/2.3.x/server-dotnet/examples/apps/get.md index df6aefd07..52df40d2c 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/get.md +++ b/examples/2.3.x/server-dotnet/examples/apps/get.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -App result = await apps.Get( +Appwrite.Models.App result = await apps.Get( appId: "<APP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/list-installation-scopes.md b/examples/2.3.x/server-dotnet/examples/apps/list-installation-scopes.md index 2ba341f0d..94de8be27 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list-installation-scopes.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list-installation-scopes.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppScopeList result = await apps.ListInstallationScopes(); +Appwrite.Models.AppScopeList result = await apps.ListInstallationScopes(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/apps/list-installations.md b/examples/2.3.x/server-dotnet/examples/apps/list-installations.md index 1a1bdf8d9..3176180ee 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list-installations.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list-installations.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppInstallationList result = await apps.ListInstallations( +Appwrite.Models.AppInstallationList result = await apps.ListInstallations( appId: "<APP_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/apps/list-keys.md b/examples/2.3.x/server-dotnet/examples/apps/list-keys.md index e6e8522f6..1a3f5b625 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list-keys.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list-keys.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppKeyList result = await apps.ListKeys( +Appwrite.Models.AppKeyList result = await apps.ListKeys( appId: "<APP_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/apps/list-o-auth-2-scopes.md b/examples/2.3.x/server-dotnet/examples/apps/list-o-auth-2-scopes.md index 6efd85034..ce048e46e 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list-o-auth-2-scopes.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list-o-auth-2-scopes.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppScopeList result = await apps.ListOAuth2Scopes(); +Appwrite.Models.AppScopeList result = await apps.ListOAuth2Scopes(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/apps/list-secrets.md b/examples/2.3.x/server-dotnet/examples/apps/list-secrets.md index ab831c0a5..d7be65ff0 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list-secrets.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list-secrets.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppSecretList result = await apps.ListSecrets( +Appwrite.Models.AppSecretList result = await apps.ListSecrets( appId: "<APP_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/apps/list.md b/examples/2.3.x/server-dotnet/examples/apps/list.md index 724cfd910..bfe493343 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/list.md +++ b/examples/2.3.x/server-dotnet/examples/apps/list.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -AppsList result = await apps.List( +Appwrite.Models.AppsList result = await apps.List( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/update-labels.md b/examples/2.3.x/server-dotnet/examples/apps/update-labels.md index 3a311d252..171321b1d 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/update-labels.md +++ b/examples/2.3.x/server-dotnet/examples/apps/update-labels.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -App result = await apps.UpdateLabels( +Appwrite.Models.App result = await apps.UpdateLabels( appId: "<APP_ID>", labels: new List<string>() ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/update-team.md b/examples/2.3.x/server-dotnet/examples/apps/update-team.md index ac6fc92d7..a7e185cbd 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/update-team.md +++ b/examples/2.3.x/server-dotnet/examples/apps/update-team.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -App result = await apps.UpdateTeam( +Appwrite.Models.App result = await apps.UpdateTeam( appId: "<APP_ID>", teamId: "<TEAM_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/apps/update.md b/examples/2.3.x/server-dotnet/examples/apps/update.md index 20de7ef0b..58d3f05e1 100644 --- a/examples/2.3.x/server-dotnet/examples/apps/update.md +++ b/examples/2.3.x/server-dotnet/examples/apps/update.md @@ -10,7 +10,7 @@ Client client = new Client() Apps apps = new Apps(client); -App result = await apps.Update( +Appwrite.Models.App result = await apps.Update( appId: "<APP_ID>", name: "<NAME>", description: "<DESCRIPTION>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/avatars/delete-photo.md b/examples/2.3.x/server-dotnet/examples/avatars/delete-photo.md new file mode 100644 index 000000000..b1a7e9a34 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/avatars/delete-photo.md @@ -0,0 +1,16 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetSession(""); // The user session to authenticate with + +Avatars avatars = new Avatars(client); + +await avatars.DeletePhoto(); + + +``` diff --git a/examples/2.3.x/server-dotnet/examples/avatars/get-screenshot.md b/examples/2.3.x/server-dotnet/examples/avatars/get-screenshot.md index 92828bf71..24481df2a 100644 --- a/examples/2.3.x/server-dotnet/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-dotnet/examples/avatars/get-screenshot.md @@ -13,10 +13,7 @@ Avatars avatars = new Avatars(client); byte[] result = await avatars.GetScreenshot( url: "https://example.com", - headers: new { - Authorization = "Bearer token123", - X-Custom-Header = "value" - }, // optional + headers: new { Accept-Language = "en-US,en;q=0.9" }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional scale: 2, // optional diff --git a/examples/2.3.x/server-dotnet/examples/avatars/update-photo.md b/examples/2.3.x/server-dotnet/examples/avatars/update-photo.md new file mode 100644 index 000000000..652d66184 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/avatars/update-photo.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetSession(""); // The user session to authenticate with + +Avatars avatars = new Avatars(client); + +Appwrite.Models.Account result = await avatars.UpdatePhoto( + file: InputFile.FromPath("./path-to-files/image.jpg") +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/backups/create-archive.md b/examples/2.3.x/server-dotnet/examples/backups/create-archive.md index 6cb210455..6d655cc40 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/create-archive.md +++ b/examples/2.3.x/server-dotnet/examples/backups/create-archive.md @@ -11,7 +11,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupArchive result = await backups.CreateArchive( +Appwrite.Models.BackupArchive result = await backups.CreateArchive( services: new List<BackupServices> { BackupServices.Databases }, resourceId: "<RESOURCE_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/create-policy.md b/examples/2.3.x/server-dotnet/examples/backups/create-policy.md index cee682ed9..708651cdb 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/create-policy.md +++ b/examples/2.3.x/server-dotnet/examples/backups/create-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupPolicy result = await backups.CreatePolicy( +Appwrite.Models.BackupPolicy result = await backups.CreatePolicy( policyId: "<POLICY_ID>", services: new List<BackupServices> { BackupServices.Databases }, retention: 1, diff --git a/examples/2.3.x/server-dotnet/examples/backups/create-restoration.md b/examples/2.3.x/server-dotnet/examples/backups/create-restoration.md index f3649c174..4fd80e471 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/create-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/backups/create-restoration.md @@ -11,7 +11,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupRestoration result = await backups.CreateRestoration( +Appwrite.Models.BackupRestoration result = await backups.CreateRestoration( archiveId: "<ARCHIVE_ID>", services: new List<BackupServices> { BackupServices.Databases }, newResourceId: "<NEW_RESOURCE_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/backups/get-archive.md b/examples/2.3.x/server-dotnet/examples/backups/get-archive.md index 15c9b83db..305887c20 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/get-archive.md +++ b/examples/2.3.x/server-dotnet/examples/backups/get-archive.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupArchive result = await backups.GetArchive( +Appwrite.Models.BackupArchive result = await backups.GetArchive( archiveId: "<ARCHIVE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/get-policy.md b/examples/2.3.x/server-dotnet/examples/backups/get-policy.md index 0fe94d970..e4867fbb8 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/get-policy.md +++ b/examples/2.3.x/server-dotnet/examples/backups/get-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupPolicy result = await backups.GetPolicy( +Appwrite.Models.BackupPolicy result = await backups.GetPolicy( policyId: "<POLICY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/get-restoration.md b/examples/2.3.x/server-dotnet/examples/backups/get-restoration.md index e48d04ee1..a1fb53b10 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/get-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/backups/get-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupRestoration result = await backups.GetRestoration( +Appwrite.Models.BackupRestoration result = await backups.GetRestoration( restorationId: "<RESTORATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/list-archives.md b/examples/2.3.x/server-dotnet/examples/backups/list-archives.md index 15f69c287..5c1eebbb9 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/list-archives.md +++ b/examples/2.3.x/server-dotnet/examples/backups/list-archives.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupArchiveList result = await backups.ListArchives( +Appwrite.Models.BackupArchiveList result = await backups.ListArchives( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/list-policies.md b/examples/2.3.x/server-dotnet/examples/backups/list-policies.md index f16955198..89da023f9 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/list-policies.md +++ b/examples/2.3.x/server-dotnet/examples/backups/list-policies.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupPolicyList result = await backups.ListPolicies( +Appwrite.Models.BackupPolicyList result = await backups.ListPolicies( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/list-restorations.md b/examples/2.3.x/server-dotnet/examples/backups/list-restorations.md index ee286a753..a579a1fba 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/list-restorations.md +++ b/examples/2.3.x/server-dotnet/examples/backups/list-restorations.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupRestorationList result = await backups.ListRestorations( +Appwrite.Models.BackupRestorationList result = await backups.ListRestorations( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/backups/update-policy.md b/examples/2.3.x/server-dotnet/examples/backups/update-policy.md index 93d1233b0..abce40132 100644 --- a/examples/2.3.x/server-dotnet/examples/backups/update-policy.md +++ b/examples/2.3.x/server-dotnet/examples/backups/update-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Backups backups = new Backups(client); -BackupPolicy result = await backups.UpdatePolicy( +Appwrite.Models.BackupPolicy result = await backups.UpdatePolicy( policyId: "<POLICY_ID>", name: "<NAME>", // optional retention: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-big-int-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-big-int-attribute.md index db06ba5d1..4ab2421e7 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-big-int-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-big-int-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeBigint result = await databases.CreateBigIntAttribute( +Appwrite.Models.AttributeBigint result = await databases.CreateBigIntAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-boolean-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-boolean-attribute.md index ba2df46c6..6354c2ff4 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-boolean-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-boolean-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeBoolean result = await databases.CreateBooleanAttribute( +Appwrite.Models.AttributeBoolean result = await databases.CreateBooleanAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-collection.md b/examples/2.3.x/server-dotnet/examples/databases/create-collection.md index 8fbf9538e..7ffe46bb4 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-collection.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-collection.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Collection result = await databases.CreateCollection( +Appwrite.Models.Collection result = await databases.CreateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-datetime-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-datetime-attribute.md index f9248808b..67aba7693 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-datetime-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-datetime-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeDatetime result = await databases.CreateDatetimeAttribute( +Appwrite.Models.AttributeDatetime result = await databases.CreateDatetimeAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-document.md b/examples/2.3.x/server-dotnet/examples/databases/create-document.md index 54730c8d0..6c65cedbc 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-document.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-document.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.CreateDocument( +Appwrite.Models.Document result = await databases.CreateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-documents.md b/examples/2.3.x/server-dotnet/examples/databases/create-documents.md index e490a0b89..6f278379f 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-documents.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-documents.md @@ -10,10 +10,19 @@ Client client = new Client() Databases databases = new Databases(client); -DocumentList result = await databases.CreateDocuments( +Appwrite.Models.DocumentList result = await databases.CreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-email-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-email-attribute.md index 94757f049..ef068ae83 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-email-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-email-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeEmail result = await databases.CreateEmailAttribute( +Appwrite.Models.AttributeEmail result = await databases.CreateEmailAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-enum-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-enum-attribute.md index d66cb3ac8..bb7d6ce70 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-enum-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-enum-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeEnum result = await databases.CreateEnumAttribute( +Appwrite.Models.AttributeEnum result = await databases.CreateEnumAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-float-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-float-attribute.md index 26fb95a76..22f21b62d 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-float-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-float-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeFloat result = await databases.CreateFloatAttribute( +Appwrite.Models.AttributeFloat result = await databases.CreateFloatAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-index.md b/examples/2.3.x/server-dotnet/examples/databases/create-index.md index 748394d95..95e878bca 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-index.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-index.md @@ -11,12 +11,12 @@ Client client = new Client() Databases databases = new Databases(client); -Index result = await databases.CreateIndex( +Appwrite.Models.Index result = await databases.CreateIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", type: DatabasesIndexType.Key, - attributes: new List<string>(), + attributes: ["username"], orders: new List<OrderBy> { OrderBy.Asc }, // optional lengths: new List<long>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-integer-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-integer-attribute.md index 04678b940..1b7075297 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-integer-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-integer-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeInteger result = await databases.CreateIntegerAttribute( +Appwrite.Models.AttributeInteger result = await databases.CreateIntegerAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-ip-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-ip-attribute.md index b5de19bed..7a1b824bc 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-ip-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-ip-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeIp result = await databases.CreateIpAttribute( +Appwrite.Models.AttributeIp result = await databases.CreateIpAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-line-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-line-attribute.md index 53f1ada4b..21931af33 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-line-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-line-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeLine result = await databases.CreateLineAttribute( +Appwrite.Models.AttributeLine result = await databases.CreateLineAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-longtext-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-longtext-attribute.md index 3bf127aa4..a75a41c02 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-longtext-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-longtext-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeLongtext result = await databases.CreateLongtextAttribute( +Appwrite.Models.AttributeLongtext result = await databases.CreateLongtextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-mediumtext-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-mediumtext-attribute.md index 2e758f7bd..4e176ac6e 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-mediumtext-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-mediumtext-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeMediumtext result = await databases.CreateMediumtextAttribute( +Appwrite.Models.AttributeMediumtext result = await databases.CreateMediumtextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-operations.md b/examples/2.3.x/server-dotnet/examples/databases/create-operations.md index 7b1501942..bc7204771 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-operations.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-operations.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Transaction result = await databases.CreateOperations( +Appwrite.Models.Transaction result = await databases.CreateOperations( transactionId: "<TRANSACTION_ID>", operations: [ { diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-point-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-point-attribute.md index a08e2b9a6..16c7e2344 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-point-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-point-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributePoint result = await databases.CreatePointAttribute( +Appwrite.Models.AttributePoint result = await databases.CreatePointAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-polygon-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-polygon-attribute.md index 917a45c98..f2ba53f1c 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-polygon-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-polygon-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributePolygon result = await databases.CreatePolygonAttribute( +Appwrite.Models.AttributePolygon result = await databases.CreatePolygonAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-relationship-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-relationship-attribute.md index 6f8ac6211..202e2bec4 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-relationship-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-relationship-attribute.md @@ -11,7 +11,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeRelationship result = await databases.CreateRelationshipAttribute( +Appwrite.Models.AttributeRelationship result = await databases.CreateRelationshipAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", relatedCollectionId: "<RELATED_COLLECTION_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-string-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-string-attribute.md index ea547aaa6..b11b5e474 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-string-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-string-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeString result = await databases.CreateStringAttribute( +Appwrite.Models.AttributeString result = await databases.CreateStringAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-text-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-text-attribute.md index dd6fe3cb1..0f8790a42 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-text-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-text-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeText result = await databases.CreateTextAttribute( +Appwrite.Models.AttributeText result = await databases.CreateTextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-transaction.md b/examples/2.3.x/server-dotnet/examples/databases/create-transaction.md index 29b18cd4b..592acce76 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Transaction result = await databases.CreateTransaction( +Appwrite.Models.Transaction result = await databases.CreateTransaction( ttl: 60 // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-url-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-url-attribute.md index dd0e356b9..a830e411b 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-url-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-url-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeUrl result = await databases.CreateUrlAttribute( +Appwrite.Models.AttributeUrl result = await databases.CreateUrlAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create-varchar-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/create-varchar-attribute.md index 4c3f3a1e5..85576fa4e 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create-varchar-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create-varchar-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeVarchar result = await databases.CreateVarcharAttribute( +Appwrite.Models.AttributeVarchar result = await databases.CreateVarcharAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/create.md b/examples/2.3.x/server-dotnet/examples/databases/create.md index 6d0a504c8..4e80d1a51 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/create.md +++ b/examples/2.3.x/server-dotnet/examples/databases/create.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Database result = await databases.Create( +Appwrite.Models.Database result = await databases.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/decrement-document-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/decrement-document-attribute.md index 46dd163d6..bf7ed4491 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/decrement-document-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/decrement-document-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.DecrementDocumentAttribute( +Appwrite.Models.Document result = await databases.DecrementDocumentAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/delete-documents.md b/examples/2.3.x/server-dotnet/examples/databases/delete-documents.md index 4b14b138a..f749abe15 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-dotnet/examples/databases/delete-documents.md @@ -13,7 +13,7 @@ Databases databases = new Databases(client); await databases.DeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: new List<string>(), // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/get-collection.md b/examples/2.3.x/server-dotnet/examples/databases/get-collection.md index 0798f68e5..36c364766 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/get-collection.md +++ b/examples/2.3.x/server-dotnet/examples/databases/get-collection.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Collection result = await databases.GetCollection( +Appwrite.Models.Collection result = await databases.GetCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/get-document.md b/examples/2.3.x/server-dotnet/examples/databases/get-document.md index 102cbb5b4..70625ad68 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/get-document.md +++ b/examples/2.3.x/server-dotnet/examples/databases/get-document.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.GetDocument( +Appwrite.Models.Document result = await databases.GetDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/get-index.md b/examples/2.3.x/server-dotnet/examples/databases/get-index.md index ad06f1fb3..b9f268698 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/get-index.md +++ b/examples/2.3.x/server-dotnet/examples/databases/get-index.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Index result = await databases.GetIndex( +Appwrite.Models.Index result = await databases.GetIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>" diff --git a/examples/2.3.x/server-dotnet/examples/databases/get-transaction.md b/examples/2.3.x/server-dotnet/examples/databases/get-transaction.md index fe449961f..f6e28c44b 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/get-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/databases/get-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Transaction result = await databases.GetTransaction( +Appwrite.Models.Transaction result = await databases.GetTransaction( transactionId: "<TRANSACTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/get.md b/examples/2.3.x/server-dotnet/examples/databases/get.md index 91d9a0ec1..454b1a0f0 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/get.md +++ b/examples/2.3.x/server-dotnet/examples/databases/get.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Database result = await databases.Get( +Appwrite.Models.Database result = await databases.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/databases/increment-document-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/increment-document-attribute.md index 230784d7f..7df9b120b 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/increment-document-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/increment-document-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.IncrementDocumentAttribute( +Appwrite.Models.Document result = await databases.IncrementDocumentAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/list-attributes.md b/examples/2.3.x/server-dotnet/examples/databases/list-attributes.md index ff57878ce..f704a63a6 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list-attributes.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list-attributes.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeList result = await databases.ListAttributes( +Appwrite.Models.AttributeList result = await databases.ListAttributes( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/list-collections.md b/examples/2.3.x/server-dotnet/examples/databases/list-collections.md index ed856f6eb..3b44d07ea 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list-collections.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list-collections.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -CollectionList result = await databases.ListCollections( +Appwrite.Models.CollectionList result = await databases.ListCollections( databaseId: "<DATABASE_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/list-documents.md b/examples/2.3.x/server-dotnet/examples/databases/list-documents.md index d8cdff0ab..414789aa4 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list-documents.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list-documents.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -DocumentList result = await databases.ListDocuments( +Appwrite.Models.DocumentList result = await databases.ListDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/list-indexes.md b/examples/2.3.x/server-dotnet/examples/databases/list-indexes.md index 80f4bcf2a..9eb8c0052 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list-indexes.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list-indexes.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -IndexList result = await databases.ListIndexes( +Appwrite.Models.IndexList result = await databases.ListIndexes( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/list-transactions.md b/examples/2.3.x/server-dotnet/examples/databases/list-transactions.md index fc1416744..c619c59d1 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list-transactions.md @@ -10,8 +10,9 @@ Client client = new Client() Databases databases = new Databases(client); -TransactionList result = await databases.ListTransactions( - queries: new List<string>() // optional +Appwrite.Models.TransactionList result = await databases.ListTransactions( + queries: new List<string>(), // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/databases/list.md b/examples/2.3.x/server-dotnet/examples/databases/list.md index 57095184a..f1d94f285 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/list.md +++ b/examples/2.3.x/server-dotnet/examples/databases/list.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -DatabaseList result = await databases.List( +Appwrite.Models.DatabaseList result = await databases.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-big-int-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-big-int-attribute.md index 7fea78b58..83b16f364 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-big-int-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-big-int-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeBigint result = await databases.UpdateBigIntAttribute( +Appwrite.Models.AttributeBigint result = await databases.UpdateBigIntAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-boolean-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-boolean-attribute.md index 52b0a767e..e096f73e6 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-boolean-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-boolean-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeBoolean result = await databases.UpdateBooleanAttribute( +Appwrite.Models.AttributeBoolean result = await databases.UpdateBooleanAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-collection.md b/examples/2.3.x/server-dotnet/examples/databases/update-collection.md index 7e3378faa..22e3bd591 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-collection.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-collection.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Collection result = await databases.UpdateCollection( +Appwrite.Models.Collection result = await databases.UpdateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-datetime-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-datetime-attribute.md index 2a1df23fb..08d000f83 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-datetime-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-datetime-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeDatetime result = await databases.UpdateDatetimeAttribute( +Appwrite.Models.AttributeDatetime result = await databases.UpdateDatetimeAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-document.md b/examples/2.3.x/server-dotnet/examples/databases/update-document.md index e18a6ef9e..e6c44e7b9 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-document.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-document.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.UpdateDocument( +Appwrite.Models.Document result = await databases.UpdateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-documents.md b/examples/2.3.x/server-dotnet/examples/databases/update-documents.md index db3133dfe..01b10915f 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-documents.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-documents.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -DocumentList result = await databases.UpdateDocuments( +Appwrite.Models.DocumentList result = await databases.UpdateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", data: new { diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-email-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-email-attribute.md index b1f0e37fa..98a5b6987 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-email-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-email-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeEmail result = await databases.UpdateEmailAttribute( +Appwrite.Models.AttributeEmail result = await databases.UpdateEmailAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-enum-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-enum-attribute.md index d009b5c79..e732660db 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-enum-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-enum-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeEnum result = await databases.UpdateEnumAttribute( +Appwrite.Models.AttributeEnum result = await databases.UpdateEnumAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-float-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-float-attribute.md index fd8dc4271..116e7c77f 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-float-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-float-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeFloat result = await databases.UpdateFloatAttribute( +Appwrite.Models.AttributeFloat result = await databases.UpdateFloatAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-integer-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-integer-attribute.md index 17a0cc8bd..5c13aa75e 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-integer-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-integer-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeInteger result = await databases.UpdateIntegerAttribute( +Appwrite.Models.AttributeInteger result = await databases.UpdateIntegerAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-ip-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-ip-attribute.md index 432bb4d43..b9c9982de 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-ip-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-ip-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeIp result = await databases.UpdateIpAttribute( +Appwrite.Models.AttributeIp result = await databases.UpdateIpAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-line-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-line-attribute.md index 11dc38400..c7c40756c 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-line-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-line-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeLine result = await databases.UpdateLineAttribute( +Appwrite.Models.AttributeLine result = await databases.UpdateLineAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-longtext-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-longtext-attribute.md index 2dba9171f..138dae8a7 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-longtext-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-longtext-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeLongtext result = await databases.UpdateLongtextAttribute( +Appwrite.Models.AttributeLongtext result = await databases.UpdateLongtextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-mediumtext-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-mediumtext-attribute.md index ba356254e..b8cedadf1 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-mediumtext-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-mediumtext-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeMediumtext result = await databases.UpdateMediumtextAttribute( +Appwrite.Models.AttributeMediumtext result = await databases.UpdateMediumtextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-point-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-point-attribute.md index 7bbf9fb6b..895443c3d 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-point-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-point-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributePoint result = await databases.UpdatePointAttribute( +Appwrite.Models.AttributePoint result = await databases.UpdatePointAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-polygon-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-polygon-attribute.md index f35fdcff3..c5fa13239 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-polygon-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-polygon-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributePolygon result = await databases.UpdatePolygonAttribute( +Appwrite.Models.AttributePolygon result = await databases.UpdatePolygonAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-relationship-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-relationship-attribute.md index aa7fd0308..c3d5cded0 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-relationship-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-relationship-attribute.md @@ -11,7 +11,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeRelationship result = await databases.UpdateRelationshipAttribute( +Appwrite.Models.AttributeRelationship result = await databases.UpdateRelationshipAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-string-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-string-attribute.md index 00bf4aed6..d683be9f9 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-string-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-string-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeString result = await databases.UpdateStringAttribute( +Appwrite.Models.AttributeString result = await databases.UpdateStringAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-text-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-text-attribute.md index e041f96e0..1c6861ac7 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-text-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-text-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeText result = await databases.UpdateTextAttribute( +Appwrite.Models.AttributeText result = await databases.UpdateTextAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-transaction.md b/examples/2.3.x/server-dotnet/examples/databases/update-transaction.md index b30589352..8ababfa13 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Transaction result = await databases.UpdateTransaction( +Appwrite.Models.Transaction result = await databases.UpdateTransaction( transactionId: "<TRANSACTION_ID>", commit: false, // optional rollback: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-url-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-url-attribute.md index 4beafd13a..07ae4efdc 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-url-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-url-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeUrl result = await databases.UpdateUrlAttribute( +Appwrite.Models.AttributeUrl result = await databases.UpdateUrlAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update-varchar-attribute.md b/examples/2.3.x/server-dotnet/examples/databases/update-varchar-attribute.md index 2d7215129..87b8955f9 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update-varchar-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update-varchar-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -AttributeVarchar result = await databases.UpdateVarcharAttribute( +Appwrite.Models.AttributeVarchar result = await databases.UpdateVarcharAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/update.md b/examples/2.3.x/server-dotnet/examples/databases/update.md index 1439c1cea..33831f359 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/update.md +++ b/examples/2.3.x/server-dotnet/examples/databases/update.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Database result = await databases.Update( +Appwrite.Models.Database result = await databases.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/databases/upsert-document.md b/examples/2.3.x/server-dotnet/examples/databases/upsert-document.md index 3eff270e4..31cd45806 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/upsert-document.md +++ b/examples/2.3.x/server-dotnet/examples/databases/upsert-document.md @@ -10,7 +10,7 @@ Client client = new Client() Databases databases = new Databases(client); -Document result = await databases.UpsertDocument( +Appwrite.Models.Document result = await databases.UpsertDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/databases/upsert-documents.md b/examples/2.3.x/server-dotnet/examples/databases/upsert-documents.md index d22184b8f..58b9e62da 100644 --- a/examples/2.3.x/server-dotnet/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-dotnet/examples/databases/upsert-documents.md @@ -10,10 +10,19 @@ Client client = new Client() Databases databases = new Databases(client); -DocumentList result = await databases.UpsertDocuments( +Appwrite.Models.DocumentList result = await databases.UpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-collection.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-collection.md index 5c42dc563..42dba6f60 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-collection.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-collection.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Collection result = await documentsDB.CreateCollection( +Appwrite.Models.Collection result = await documentsDB.CreateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-document.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-document.md index ccc8bc36b..ce6b3921d 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-document.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-document.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.CreateDocument( +Appwrite.Models.Document result = await documentsDB.CreateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-documents.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-documents.md index 6b98311b0..aa2ec5778 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-documents.md @@ -10,10 +10,19 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DocumentList result = await documentsDB.CreateDocuments( +Appwrite.Models.DocumentList result = await documentsDB.CreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-failover.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-failover.md index 5a22d1c77..2d0b75c4b 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DedicatedDatabase result = await documentsDB.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await documentsDB.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-index.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-index.md index 31a062921..c24bd4d01 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-index.md @@ -11,12 +11,12 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Index result = await documentsDB.CreateIndex( +Appwrite.Models.Index result = await documentsDB.CreateIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", type: DocumentsDBIndexType.Key, - attributes: new List<string>(), + attributes: ["username"], orders: new List<OrderBy> { OrderBy.Asc }, // optional lengths: new List<long>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-operations.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-operations.md index abe507f31..ca9d74d7a 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-operations.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-operations.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Transaction result = await documentsDB.CreateOperations( +Appwrite.Models.Transaction result = await documentsDB.CreateOperations( transactionId: "<TRANSACTION_ID>", operations: [ { diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create-transaction.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create-transaction.md index a948934b1..8d8c15764 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Transaction result = await documentsDB.CreateTransaction( +Appwrite.Models.Transaction result = await documentsDB.CreateTransaction( ttl: 60 // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/create.md b/examples/2.3.x/server-dotnet/examples/documentsdb/create.md index 8c1fa6b51..b4ed7ec69 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/create.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/create.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Database result = await documentsDB.Create( +Appwrite.Models.Database result = await documentsDB.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/decrement-document-attribute.md b/examples/2.3.x/server-dotnet/examples/documentsdb/decrement-document-attribute.md index 5ab49cdd7..4cce51d6f 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/decrement-document-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/decrement-document-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.DecrementDocumentAttribute( +Appwrite.Models.Document result = await documentsDB.DecrementDocumentAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-dotnet/examples/documentsdb/delete-documents.md index c1c885aa9..2cd23c631 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/delete-documents.md @@ -13,7 +13,7 @@ DocumentsDB documentsDB = new DocumentsDB(client); await documentsDB.DeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: new List<string>(), // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-collection.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-collection.md index f50e03a1b..32f93a1ad 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-collection.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-collection.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Collection result = await documentsDB.GetCollection( +Appwrite.Models.Collection result = await documentsDB.GetCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-document.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-document.md index 1e3bfa5c2..be8b0849d 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-document.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-document.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.GetDocument( +Appwrite.Models.Document result = await documentsDB.GetDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-index.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-index.md index e8c99e38c..58b080efa 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-index.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-index.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Index result = await documentsDB.GetIndex( +Appwrite.Models.Index result = await documentsDB.GetIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>" diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-replicas.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-replicas.md index abe669993..847b934a9 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DedicatedDatabaseReplicas result = await documentsDB.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await documentsDB.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-status.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-status.md index 418a76133..ed1f40b2d 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DatabaseStatus result = await documentsDB.GetStatus( +Appwrite.Models.DatabaseStatus result = await documentsDB.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get-transaction.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get-transaction.md index 800897c22..644380e76 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Transaction result = await documentsDB.GetTransaction( +Appwrite.Models.Transaction result = await documentsDB.GetTransaction( transactionId: "<TRANSACTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/get.md b/examples/2.3.x/server-dotnet/examples/documentsdb/get.md index f8d06919c..5e1d70475 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/get.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/get.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Database result = await documentsDB.Get( +Appwrite.Models.Database result = await documentsDB.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/increment-document-attribute.md b/examples/2.3.x/server-dotnet/examples/documentsdb/increment-document-attribute.md index fc9d0795c..1c8c69b6f 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/increment-document-attribute.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/increment-document-attribute.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.IncrementDocumentAttribute( +Appwrite.Models.Document result = await documentsDB.IncrementDocumentAttribute( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-collections.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-collections.md index 1227361b2..0cde0814a 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-collections.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-collections.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -CollectionList result = await documentsDB.ListCollections( +Appwrite.Models.CollectionList result = await documentsDB.ListCollections( databaseId: "<DATABASE_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-documents.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-documents.md index 0838c9c1a..cf6cdb580 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-documents.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-documents.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DocumentList result = await documentsDB.ListDocuments( +Appwrite.Models.DocumentList result = await documentsDB.ListDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-indexes.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-indexes.md index aa8435ca5..6a33ad696 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-indexes.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-indexes.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -IndexList result = await documentsDB.ListIndexes( +Appwrite.Models.IndexList result = await documentsDB.ListIndexes( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-operations.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-operations.md index 5e274792f..da845f735 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DedicatedDatabaseOperationList result = await documentsDB.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await documentsDB.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-specifications.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-specifications.md index 33e4c32a2..ba218f8cb 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DedicatedDatabaseSpecificationList result = await documentsDB.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await documentsDB.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list-transactions.md index 84539069c..d884292d7 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list-transactions.md @@ -10,8 +10,9 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -TransactionList result = await documentsDB.ListTransactions( - queries: new List<string>() // optional +Appwrite.Models.TransactionList result = await documentsDB.ListTransactions( + queries: new List<string>(), // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/list.md b/examples/2.3.x/server-dotnet/examples/documentsdb/list.md index 79bfce24d..34ef67fb8 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/list.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/list.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DatabaseList result = await documentsDB.List( +Appwrite.Models.DatabaseList result = await documentsDB.List( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/update-collection.md b/examples/2.3.x/server-dotnet/examples/documentsdb/update-collection.md index 093d9db90..97ee4643f 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/update-collection.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/update-collection.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Collection result = await documentsDB.UpdateCollection( +Appwrite.Models.Collection result = await documentsDB.UpdateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/update-document.md b/examples/2.3.x/server-dotnet/examples/documentsdb/update-document.md index 87172a6e5..be80182b2 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/update-document.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/update-document.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.UpdateDocument( +Appwrite.Models.Document result = await documentsDB.UpdateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/update-documents.md b/examples/2.3.x/server-dotnet/examples/documentsdb/update-documents.md index f325b2eac..7ba53e776 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/update-documents.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/update-documents.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DocumentList result = await documentsDB.UpdateDocuments( +Appwrite.Models.DocumentList result = await documentsDB.UpdateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", data: [object], // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/update-transaction.md b/examples/2.3.x/server-dotnet/examples/documentsdb/update-transaction.md index b4a306872..18a93bdfd 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/update-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/update-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Transaction result = await documentsDB.UpdateTransaction( +Appwrite.Models.Transaction result = await documentsDB.UpdateTransaction( transactionId: "<TRANSACTION_ID>", commit: false, // optional rollback: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/update.md b/examples/2.3.x/server-dotnet/examples/documentsdb/update.md index e9fd54c5e..61d5347dd 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/update.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/update.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Database result = await documentsDB.Update( +Appwrite.Models.Database result = await documentsDB.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-document.md b/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-document.md index a5de788f0..3fcdeda73 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-document.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-document.md @@ -10,7 +10,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -Document result = await documentsDB.UpsertDocument( +Appwrite.Models.Document result = await documentsDB.UpsertDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-documents.md index 66f738cf0..6a5cf7a53 100644 --- a/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-dotnet/examples/documentsdb/upsert-documents.md @@ -10,10 +10,19 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); -DocumentList result = await documentsDB.UpsertDocuments( +Appwrite.Models.DocumentList result = await documentsDB.UpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-google-workspace.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-google-workspace.md index cec5f5d09..03b72f3e9 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-google-workspace.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-google-workspace.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetGoogleWorkspace( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetGoogleWorkspace( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-i-cloud.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-i-cloud.md index d797ed424..bfbaab5d4 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-i-cloud.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-i-cloud.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetICloud( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetICloud( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-mailgun.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-mailgun.md index 256ceb709..053ca91ab 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-mailgun.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-mailgun.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetMailgun( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetMailgun( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-outlook.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-outlook.md index 4723c66a4..81fe1c687 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-outlook.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-outlook.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetOutlook( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetOutlook( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-proton-mail.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-proton-mail.md index 11906f93c..fbfa38275 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-proton-mail.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-proton-mail.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetProtonMail( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetProtonMail( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-preset-zoho.md b/examples/2.3.x/server-dotnet/examples/domains/create-preset-zoho.md index feaa2d453..e13ff80a5 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-preset-zoho.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-preset-zoho.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.CreatePresetZoho( +Appwrite.Models.DnsRecordsList result = await domains.CreatePresetZoho( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-a.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-a.md index 481c3b18c..c615a8985 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-a.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-a.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordA( +Appwrite.Models.DnsRecord result = await domains.CreateRecordA( domainId: "<DOMAIN_ID>", name: "", value: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-aaaa.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-aaaa.md index fafe52a3a..ffd800a50 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-aaaa.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-aaaa.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordAAAA( +Appwrite.Models.DnsRecord result = await domains.CreateRecordAAAA( domainId: "<DOMAIN_ID>", name: "", value: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-alias.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-alias.md index 938806372..3cea72b01 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-alias.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-alias.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordAlias( +Appwrite.Models.DnsRecord result = await domains.CreateRecordAlias( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-caa.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-caa.md index 46d868130..6f4834773 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-caa.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-caa.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordCAA( +Appwrite.Models.DnsRecord result = await domains.CreateRecordCAA( domainId: "<DOMAIN_ID>", name: "", value: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-cname.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-cname.md index 229b19e7f..c4057935e 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-cname.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-cname.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordCNAME( +Appwrite.Models.DnsRecord result = await domains.CreateRecordCNAME( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-https.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-https.md index 6421a4e8e..2a3c27c34 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-https.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-https.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordHTTPS( +Appwrite.Models.DnsRecord result = await domains.CreateRecordHTTPS( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-mx.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-mx.md index b7f1c0ffa..b1a7ba207 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-mx.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-mx.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordMX( +Appwrite.Models.DnsRecord result = await domains.CreateRecordMX( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-ns.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-ns.md index 05cf13218..9b77ed935 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-ns.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-ns.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordNS( +Appwrite.Models.DnsRecord result = await domains.CreateRecordNS( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-srv.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-srv.md index 001d9faa2..95ac8875e 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-srv.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-srv.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordSRV( +Appwrite.Models.DnsRecord result = await domains.CreateRecordSRV( domainId: "<DOMAIN_ID>", name: "", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/domains/create-record-txt.md b/examples/2.3.x/server-dotnet/examples/domains/create-record-txt.md index 269241728..9681d5e68 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create-record-txt.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create-record-txt.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.CreateRecordTXT( +Appwrite.Models.DnsRecord result = await domains.CreateRecordTXT( domainId: "<DOMAIN_ID>", name: "", ttl: 1, diff --git a/examples/2.3.x/server-dotnet/examples/domains/create.md b/examples/2.3.x/server-dotnet/examples/domains/create.md index 9c5acec0d..99fbdfab7 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/create.md +++ b/examples/2.3.x/server-dotnet/examples/domains/create.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.Create( +Appwrite.Models.XDomain result = await domains.Create( teamId: "<TEAM_ID>", domain: "example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-google-workspace.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-google-workspace.md index 92ead1166..cb5dbc120 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-google-workspace.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-google-workspace.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetGoogleWorkspace( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetGoogleWorkspace( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-i-cloud.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-i-cloud.md index 126597c93..04497d58e 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-i-cloud.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-i-cloud.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetICloud( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetICloud( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-mailgun.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-mailgun.md index 4d8ff21aa..3157168fd 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-mailgun.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-mailgun.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetMailgun( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetMailgun( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-outlook.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-outlook.md index 38c47e16b..d446cf848 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-outlook.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-outlook.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetOutlook( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetOutlook( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-proton-mail.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-proton-mail.md index de17c9f98..dbba99dd3 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-proton-mail.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-proton-mail.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetProtonMail( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetProtonMail( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-preset-zoho.md b/examples/2.3.x/server-dotnet/examples/domains/get-preset-zoho.md index a2a352485..8df965a37 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-preset-zoho.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-preset-zoho.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.GetPresetZoho( +Appwrite.Models.DnsRecordsList result = await domains.GetPresetZoho( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-price.md b/examples/2.3.x/server-dotnet/examples/domains/get-price.md index fec9cadc7..fb0d5c4c6 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-price.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-price.md @@ -11,7 +11,7 @@ Client client = new Client() Domains domains = new Domains(client); -DomainPrice result = await domains.GetPrice( +Appwrite.Models.DomainPrice result = await domains.GetPrice( domain: "example.com", periodYears: 0, // optional registrationType: DomainRegistrationType.New // optional diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-record.md b/examples/2.3.x/server-dotnet/examples/domains/get-record.md index 92d7faa6f..4cc61bb99 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-record.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-record.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.GetRecord( +Appwrite.Models.DnsRecord result = await domains.GetRecord( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-transfer-status.md b/examples/2.3.x/server-dotnet/examples/domains/get-transfer-status.md index 3ba0f2452..2b3552dbd 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-transfer-status.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-transfer-status.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DomainTransferStatus result = await domains.GetTransferStatus( +Appwrite.Models.DomainTransferStatus result = await domains.GetTransferStatus( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get-zone.md b/examples/2.3.x/server-dotnet/examples/domains/get-zone.md index 89bd6a2a0..98e321389 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get-zone.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get-zone.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); - result = await domains.GetZone( +string result = await domains.GetZone( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/get.md b/examples/2.3.x/server-dotnet/examples/domains/get.md index 871986ef3..9db5eba4a 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/get.md +++ b/examples/2.3.x/server-dotnet/examples/domains/get.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.Get( +Appwrite.Models.XDomain result = await domains.Get( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/list-prices.md b/examples/2.3.x/server-dotnet/examples/domains/list-prices.md index 55140596c..6f32123e3 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/list-prices.md +++ b/examples/2.3.x/server-dotnet/examples/domains/list-prices.md @@ -11,7 +11,7 @@ Client client = new Client() Domains domains = new Domains(client); -DomainPricesList result = await domains.ListPrices( +Appwrite.Models.DomainPricesList result = await domains.ListPrices( domains: new List<string>(), periodYears: 0, // optional registrationType: DomainRegistrationType.New // optional diff --git a/examples/2.3.x/server-dotnet/examples/domains/list-records.md b/examples/2.3.x/server-dotnet/examples/domains/list-records.md index 9c2985eb2..2376de7fd 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/list-records.md +++ b/examples/2.3.x/server-dotnet/examples/domains/list-records.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecordsList result = await domains.ListRecords( +Appwrite.Models.DnsRecordsList result = await domains.ListRecords( domainId: "<DOMAIN_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/list.md b/examples/2.3.x/server-dotnet/examples/domains/list.md index 3760f30a3..b92de6144 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/list.md +++ b/examples/2.3.x/server-dotnet/examples/domains/list.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DomainsList result = await domains.List( +Appwrite.Models.DomainsList result = await domains.List( queries: new List<string>(), // optional search: "<SEARCH>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-nameservers.md b/examples/2.3.x/server-dotnet/examples/domains/update-nameservers.md index f860d1486..fead4405c 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-nameservers.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-nameservers.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.UpdateNameservers( +Appwrite.Models.XDomain result = await domains.UpdateNameservers( domainId: "<DOMAIN_ID>", nameservers: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-a.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-a.md index d4fde3d71..54e0d4013 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-a.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-a.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordA( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordA( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-aaaa.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-aaaa.md index bd75bb2b4..0f9512660 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-aaaa.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-aaaa.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordAAAA( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordAAAA( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-alias.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-alias.md index af86dad22..cc877d2b7 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-alias.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-alias.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordAlias( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordAlias( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-caa.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-caa.md index f5f4d0274..9c824c2cd 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-caa.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-caa.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordCAA( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordCAA( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-cname.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-cname.md index 0ade67379..8044947d8 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-cname.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-cname.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordCNAME( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordCNAME( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-https.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-https.md index d7285b6b3..9c9f9ac71 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-https.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-https.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordHTTPS( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordHTTPS( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-mx.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-mx.md index e8c545c59..2c1951190 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-mx.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-mx.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordMX( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordMX( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-ns.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-ns.md index 193fe5551..b7a08392f 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-ns.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-ns.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordNS( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordNS( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-srv.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-srv.md index 8c865f73e..537c89a6c 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-srv.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-srv.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordSRV( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordSRV( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-record-txt.md b/examples/2.3.x/server-dotnet/examples/domains/update-record-txt.md index a9fd5090c..bfd734cf2 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-record-txt.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-record-txt.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -DnsRecord result = await domains.UpdateRecordTXT( +Appwrite.Models.DnsRecord result = await domains.UpdateRecordTXT( domainId: "<DOMAIN_ID>", recordId: "<RECORD_ID>", name: "", diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-team.md b/examples/2.3.x/server-dotnet/examples/domains/update-team.md index 49d81eac2..3481d46c2 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-team.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-team.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.UpdateTeam( +Appwrite.Models.XDomain result = await domains.UpdateTeam( domainId: "<DOMAIN_ID>", teamId: "<TEAM_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/update-zone.md b/examples/2.3.x/server-dotnet/examples/domains/update-zone.md index 908bc2339..0e4444e8d 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/update-zone.md +++ b/examples/2.3.x/server-dotnet/examples/domains/update-zone.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.UpdateZone( +Appwrite.Models.XDomain result = await domains.UpdateZone( domainId: "<DOMAIN_ID>", content: "<CONTENT>" ); diff --git a/examples/2.3.x/server-dotnet/examples/domains/verify-nameservers.md b/examples/2.3.x/server-dotnet/examples/domains/verify-nameservers.md index 67273c482..6857f8097 100644 --- a/examples/2.3.x/server-dotnet/examples/domains/verify-nameservers.md +++ b/examples/2.3.x/server-dotnet/examples/domains/verify-nameservers.md @@ -10,7 +10,7 @@ Client client = new Client() Domains domains = new Domains(client); -XDomain result = await domains.VerifyNameservers( +Appwrite.Models.XDomain result = await domains.VerifyNameservers( domainId: "<DOMAIN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-dotnet/examples/embeddings/create-text-embeddings.md index 95b97cc0d..1934363f1 100644 --- a/examples/2.3.x/server-dotnet/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-dotnet/examples/embeddings/create-text-embeddings.md @@ -11,8 +11,8 @@ Client client = new Client() Embeddings embeddings = new Embeddings(client); -EmbeddingList result = await embeddings.CreateTextEmbeddings( - texts: new List<string>(), +Appwrite.Models.EmbeddingList result = await embeddings.CreateTextEmbeddings( + texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: EmbeddingModel.NomicEmbedText // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/create-deployment.md index a445e35f8..cd3bcbca6 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.CreateDeployment( +Appwrite.Models.Deployment result = await functions.CreateDeployment( functionId: "<FUNCTION_ID>", code: InputFile.FromPath("./path-to-files/image.jpg"), activate: false, diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-duplicate-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/create-duplicate-deployment.md index 20ba6fabe..04ab5f1fb 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-duplicate-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-duplicate-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.CreateDuplicateDeployment( +Appwrite.Models.Deployment result = await functions.CreateDuplicateDeployment( functionId: "<FUNCTION_ID>", deploymentId: "<DEPLOYMENT_ID>", buildId: "<BUILD_ID>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-execution.md b/examples/2.3.x/server-dotnet/examples/functions/create-execution.md index 38e0b69b3..f497b2e3f 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-execution.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-execution.md @@ -11,7 +11,7 @@ Client client = new Client() Functions functions = new Functions(client); -Execution result = await functions.CreateExecution( +Appwrite.Models.Execution result = await functions.CreateExecution( functionId: "<FUNCTION_ID>", body: "<BODY>", // optional async: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-template-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/create-template-deployment.md index 47edfa96e..de916b4f1 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-template-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-template-deployment.md @@ -11,7 +11,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.CreateTemplateDeployment( +Appwrite.Models.Deployment result = await functions.CreateTemplateDeployment( functionId: "<FUNCTION_ID>", repository: "<REPOSITORY>", owner: "<OWNER>", diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-variable.md b/examples/2.3.x/server-dotnet/examples/functions/create-variable.md index 7e3d32f6f..a69d17dd2 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-variable.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Variable result = await functions.CreateVariable( +Appwrite.Models.Variable result = await functions.CreateVariable( functionId: "<FUNCTION_ID>", variableId: "<VARIABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/functions/create-vcs-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/create-vcs-deployment.md index bfc068889..a21acc9d4 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create-vcs-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create-vcs-deployment.md @@ -11,7 +11,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.CreateVcsDeployment( +Appwrite.Models.Deployment result = await functions.CreateVcsDeployment( functionId: "<FUNCTION_ID>", type: VCSReferenceType.Branch, reference: "<REFERENCE>", diff --git a/examples/2.3.x/server-dotnet/examples/functions/create.md b/examples/2.3.x/server-dotnet/examples/functions/create.md index 741a659a7..464c813a2 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/create.md +++ b/examples/2.3.x/server-dotnet/examples/functions/create.md @@ -11,7 +11,7 @@ Client client = new Client() Functions functions = new Functions(client); -Function result = await functions.Create( +Appwrite.Models.Function result = await functions.Create( functionId: "<FUNCTION_ID>", name: "<NAME>", runtime: Runtime.Node145, diff --git a/examples/2.3.x/server-dotnet/examples/functions/get-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/get-deployment.md index fb0905f58..e14da69de 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/get-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/get-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.GetDeployment( +Appwrite.Models.Deployment result = await functions.GetDeployment( functionId: "<FUNCTION_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/get-execution.md b/examples/2.3.x/server-dotnet/examples/functions/get-execution.md index 6f2871b4d..162f9e142 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/get-execution.md +++ b/examples/2.3.x/server-dotnet/examples/functions/get-execution.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Execution result = await functions.GetExecution( +Appwrite.Models.Execution result = await functions.GetExecution( functionId: "<FUNCTION_ID>", executionId: "<EXECUTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/get-variable.md b/examples/2.3.x/server-dotnet/examples/functions/get-variable.md index 7b383b0b7..61de1e4ad 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/get-variable.md +++ b/examples/2.3.x/server-dotnet/examples/functions/get-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Variable result = await functions.GetVariable( +Appwrite.Models.Variable result = await functions.GetVariable( functionId: "<FUNCTION_ID>", variableId: "<VARIABLE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/get.md b/examples/2.3.x/server-dotnet/examples/functions/get.md index 86ffaa29e..ae8147c1e 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/get.md +++ b/examples/2.3.x/server-dotnet/examples/functions/get.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Function result = await functions.Get( +Appwrite.Models.Function result = await functions.Get( functionId: "<FUNCTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/list-deployments.md b/examples/2.3.x/server-dotnet/examples/functions/list-deployments.md index 8e368f9fa..f3769d168 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list-deployments.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list-deployments.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -DeploymentList result = await functions.ListDeployments( +Appwrite.Models.DeploymentList result = await functions.ListDeployments( functionId: "<FUNCTION_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/list-executions.md b/examples/2.3.x/server-dotnet/examples/functions/list-executions.md index 85cc2ab48..ed7b9d428 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list-executions.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list-executions.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -ExecutionList result = await functions.ListExecutions( +Appwrite.Models.ExecutionList result = await functions.ListExecutions( functionId: "<FUNCTION_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/list-runtimes.md b/examples/2.3.x/server-dotnet/examples/functions/list-runtimes.md index b0b686256..391e345a7 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list-runtimes.md @@ -10,7 +10,8 @@ Client client = new Client() Functions functions = new Functions(client); -RuntimeList result = await functions.ListRuntimes(); - +Appwrite.Models.RuntimeList result = await functions.ListRuntimes( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/functions/list-specifications.md b/examples/2.3.x/server-dotnet/examples/functions/list-specifications.md index b97f4cf42..2cf4f3604 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list-specifications.md @@ -10,8 +10,9 @@ Client client = new Client() Functions functions = new Functions(client); -SpecificationList result = await functions.ListSpecifications( - type: "runtimes" // optional +Appwrite.Models.SpecificationList result = await functions.ListSpecifications( + type: "runtimes", // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/functions/list-variables.md b/examples/2.3.x/server-dotnet/examples/functions/list-variables.md index df8029e3f..fa78593e2 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list-variables.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list-variables.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -VariableList result = await functions.ListVariables( +Appwrite.Models.VariableList result = await functions.ListVariables( functionId: "<FUNCTION_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/list.md b/examples/2.3.x/server-dotnet/examples/functions/list.md index b09d8ee62..180de0856 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/list.md +++ b/examples/2.3.x/server-dotnet/examples/functions/list.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -FunctionList result = await functions.List( +Appwrite.Models.FunctionList result = await functions.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/update-deployment-status.md b/examples/2.3.x/server-dotnet/examples/functions/update-deployment-status.md index ee782aed6..ea1acd235 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/update-deployment-status.md +++ b/examples/2.3.x/server-dotnet/examples/functions/update-deployment-status.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Deployment result = await functions.UpdateDeploymentStatus( +Appwrite.Models.Deployment result = await functions.UpdateDeploymentStatus( functionId: "<FUNCTION_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/update-function-deployment.md b/examples/2.3.x/server-dotnet/examples/functions/update-function-deployment.md index 563d5a216..ee24e774d 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/update-function-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/functions/update-function-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Function result = await functions.UpdateFunctionDeployment( +Appwrite.Models.Function result = await functions.UpdateFunctionDeployment( functionId: "<FUNCTION_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/functions/update-variable.md b/examples/2.3.x/server-dotnet/examples/functions/update-variable.md index a1fd20ee2..af8f71edd 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/update-variable.md +++ b/examples/2.3.x/server-dotnet/examples/functions/update-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Functions functions = new Functions(client); -Variable result = await functions.UpdateVariable( +Appwrite.Models.Variable result = await functions.UpdateVariable( functionId: "<FUNCTION_ID>", variableId: "<VARIABLE_ID>", key: "<KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/functions/update.md b/examples/2.3.x/server-dotnet/examples/functions/update.md index 10d4a96bb..367b51bad 100644 --- a/examples/2.3.x/server-dotnet/examples/functions/update.md +++ b/examples/2.3.x/server-dotnet/examples/functions/update.md @@ -11,7 +11,7 @@ Client client = new Client() Functions functions = new Functions(client); -Function result = await functions.Update( +Appwrite.Models.Function result = await functions.Update( functionId: "<FUNCTION_ID>", name: "<NAME>", runtime: Runtime.Node145, // optional diff --git a/examples/2.3.x/server-dotnet/examples/graphql/mutation.md b/examples/2.3.x/server-dotnet/examples/graphql/mutation.md index 0145c03c7..cf72da6aa 100644 --- a/examples/2.3.x/server-dotnet/examples/graphql/mutation.md +++ b/examples/2.3.x/server-dotnet/examples/graphql/mutation.md @@ -10,8 +10,8 @@ Client client = new Client() Graphql graphql = new Graphql(client); -Any result = await graphql.Mutation( - query: [object] +Appwrite.Models.Any result = await graphql.Mutation( + query: new { query = "mutation { accountUpdateName(name: "Walter") { name } }" } ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/graphql/query.md b/examples/2.3.x/server-dotnet/examples/graphql/query.md index 88c82162b..8c5a28574 100644 --- a/examples/2.3.x/server-dotnet/examples/graphql/query.md +++ b/examples/2.3.x/server-dotnet/examples/graphql/query.md @@ -10,8 +10,8 @@ Client client = new Client() Graphql graphql = new Graphql(client); -Any result = await graphql.Query( - query: [object] +Appwrite.Models.Any result = await graphql.Query( + query: new { query = "query { localeGet { ip } }" } ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/get.md b/examples/2.3.x/server-dotnet/examples/locale/get.md index a1dcbcc94..045bbb063 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/get.md +++ b/examples/2.3.x/server-dotnet/examples/locale/get.md @@ -10,7 +10,7 @@ Client client = new Client() Locale locale = new Locale(client); -Locale result = await locale.Get(); +Appwrite.Models.Locale result = await locale.Get(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-codes.md b/examples/2.3.x/server-dotnet/examples/locale/list-codes.md index a3bfeff55..e99c1b421 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-codes.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-codes.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -LocaleCodeList result = await locale.ListCodes(); - +Appwrite.Models.LocaleCodeList result = await locale.ListCodes( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-continents.md b/examples/2.3.x/server-dotnet/examples/locale/list-continents.md index 02b861166..77c6a5c44 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-continents.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-continents.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -ContinentList result = await locale.ListContinents(); - +Appwrite.Models.ContinentList result = await locale.ListContinents( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-countries-eu.md b/examples/2.3.x/server-dotnet/examples/locale/list-countries-eu.md index 9452cd0e4..2446952cc 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-countries-eu.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -CountryList result = await locale.ListCountriesEU(); - +Appwrite.Models.CountryList result = await locale.ListCountriesEU( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-countries-phones.md b/examples/2.3.x/server-dotnet/examples/locale/list-countries-phones.md index e3b5346e1..9dedad0a9 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-countries-phones.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -PhoneList result = await locale.ListCountriesPhones(); - +Appwrite.Models.PhoneList result = await locale.ListCountriesPhones( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-countries.md b/examples/2.3.x/server-dotnet/examples/locale/list-countries.md index c9c1fb946..6f17e8053 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-countries.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-countries.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -CountryList result = await locale.ListCountries(); - +Appwrite.Models.CountryList result = await locale.ListCountries( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-currencies.md b/examples/2.3.x/server-dotnet/examples/locale/list-currencies.md index 18d04a69f..5e5f6ae49 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-currencies.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -CurrencyList result = await locale.ListCurrencies(); - +Appwrite.Models.CurrencyList result = await locale.ListCurrencies( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/locale/list-languages.md b/examples/2.3.x/server-dotnet/examples/locale/list-languages.md index 83ed0241c..1cafaa169 100644 --- a/examples/2.3.x/server-dotnet/examples/locale/list-languages.md +++ b/examples/2.3.x/server-dotnet/examples/locale/list-languages.md @@ -10,7 +10,8 @@ Client client = new Client() Locale locale = new Locale(client); -LanguageList result = await locale.ListLanguages(); - +Appwrite.Models.LanguageList result = await locale.ListLanguages( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-apns-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-apns-provider.md index 55be57aab..c52f54bce 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-apns-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-apns-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateAPNSProvider( +Appwrite.Models.Provider result = await messaging.CreateAPNSProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", authKey: "<AUTH_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-appwrite-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-appwrite-provider.md index 47d5596df..c030a5828 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-appwrite-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-appwrite-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateAppwriteProvider( +Appwrite.Models.Provider result = await messaging.CreateAppwriteProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-email.md b/examples/2.3.x/server-dotnet/examples/messaging/create-email.md index c9475204a..b1b5610ac 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-email.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-email.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.CreateEmail( +Appwrite.Models.Message result = await messaging.CreateEmail( messageId: "<MESSAGE_ID>", subject: "<SUBJECT>", content: "<CONTENT>", diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-fcm-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-fcm-provider.md index 4ef0b591f..7319e1b42 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-fcm-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-fcm-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateFCMProvider( +Appwrite.Models.Provider result = await messaging.CreateFCMProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", serviceAccountJSON: [object], // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-mailgun-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-mailgun-provider.md index ba278efe1..d4ff36689 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-mailgun-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-mailgun-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateMailgunProvider( +Appwrite.Models.Provider result = await messaging.CreateMailgunProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", apiKey: "<API_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-msg-91-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-msg-91-provider.md index e7638b6ec..d247aa8e8 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-msg-91-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-msg-91-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateMsg91Provider( +Appwrite.Models.Provider result = await messaging.CreateMsg91Provider( providerId: "<PROVIDER_ID>", name: "<NAME>", templateId: "<TEMPLATE_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-push.md b/examples/2.3.x/server-dotnet/examples/messaging/create-push.md index 3ee6e4230..e9c79a579 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-push.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-push.md @@ -11,7 +11,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.CreatePush( +Appwrite.Models.Message result = await messaging.CreatePush( messageId: "<MESSAGE_ID>", title: "<TITLE>", // optional body: "<BODY>", // optional @@ -30,7 +30,8 @@ Message result = await messaging.CreatePush( scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional contentAvailable: false, // optional critical: false, // optional - priority: MessagePriority.Normal // optional + priority: MessagePriority.Normal, // optional + channelId: "<CHANNEL_ID>" // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-resend-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-resend-provider.md index e2400c9f9..46d1d7552 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-resend-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-resend-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateResendProvider( +Appwrite.Models.Provider result = await messaging.CreateResendProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", apiKey: "<API_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-sendgrid-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-sendgrid-provider.md index f18e9a05c..682f15ef8 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-sendgrid-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-sendgrid-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateSendgridProvider( +Appwrite.Models.Provider result = await messaging.CreateSendgridProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", apiKey: "<API_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-ses-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-ses-provider.md index ef5697694..7505ba5fe 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-ses-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-ses-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateSesProvider( +Appwrite.Models.Provider result = await messaging.CreateSesProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", accessKey: "<ACCESS_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-sms.md b/examples/2.3.x/server-dotnet/examples/messaging/create-sms.md index 2756f28c9..40844cac1 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-sms.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-sms.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.CreateSMS( +Appwrite.Models.Message result = await messaging.CreateSMS( messageId: "<MESSAGE_ID>", content: "<CONTENT>", topics: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-smtp-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-smtp-provider.md index bbe343568..b7ac179e9 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-smtp-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-smtp-provider.md @@ -11,7 +11,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateSMTPProvider( +Appwrite.Models.Provider result = await messaging.CreateSMTPProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", host: "<HOST>", diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-subscriber.md b/examples/2.3.x/server-dotnet/examples/messaging/create-subscriber.md index 619abf20e..b48e65013 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-subscriber.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-subscriber.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Subscriber result = await messaging.CreateSubscriber( +Appwrite.Models.Subscriber result = await messaging.CreateSubscriber( topicId: "<TOPIC_ID>", subscriberId: "<SUBSCRIBER_ID>", targetId: "<TARGET_ID>" diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-telesign-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-telesign-provider.md index 68c37c332..34feffd8d 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-telesign-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-telesign-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateTelesignProvider( +Appwrite.Models.Provider result = await messaging.CreateTelesignProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", from: "+12065550100", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-textmagic-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-textmagic-provider.md index d549516ce..9ba1b6334 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-textmagic-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-textmagic-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateTextmagicProvider( +Appwrite.Models.Provider result = await messaging.CreateTextmagicProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", from: "+12065550100", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-topic.md b/examples/2.3.x/server-dotnet/examples/messaging/create-topic.md index 1f322933f..dc9f03384 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-topic.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-topic.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Topic result = await messaging.CreateTopic( +Appwrite.Models.Topic result = await messaging.CreateTopic( topicId: "<TOPIC_ID>", name: "<NAME>", subscribe: ["any"], // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-twilio-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-twilio-provider.md index 167d83e34..21a87211a 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-twilio-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-twilio-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateTwilioProvider( +Appwrite.Models.Provider result = await messaging.CreateTwilioProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", from: "<FROM>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/create-vonage-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/create-vonage-provider.md index 8fc8335b2..6e559e1e7 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/create-vonage-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/create-vonage-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.CreateVonageProvider( +Appwrite.Models.Provider result = await messaging.CreateVonageProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", from: "+12065550100", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/get-message.md b/examples/2.3.x/server-dotnet/examples/messaging/get-message.md index 535971270..506f4eecd 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/get-message.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/get-message.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.GetMessage( +Appwrite.Models.Message result = await messaging.GetMessage( messageId: "<MESSAGE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/messaging/get-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/get-provider.md index fb9c334e8..a4105c924 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/get-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/get-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.GetProvider( +Appwrite.Models.Provider result = await messaging.GetProvider( providerId: "<PROVIDER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/messaging/get-subscriber.md b/examples/2.3.x/server-dotnet/examples/messaging/get-subscriber.md index 79e6bb079..89906e50b 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/get-subscriber.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/get-subscriber.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Subscriber result = await messaging.GetSubscriber( +Appwrite.Models.Subscriber result = await messaging.GetSubscriber( topicId: "<TOPIC_ID>", subscriberId: "<SUBSCRIBER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/messaging/get-topic.md b/examples/2.3.x/server-dotnet/examples/messaging/get-topic.md index 6fc890d05..cea35bf78 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/get-topic.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/get-topic.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Topic result = await messaging.GetTopic( +Appwrite.Models.Topic result = await messaging.GetTopic( topicId: "<TOPIC_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/messaging/list-messages.md b/examples/2.3.x/server-dotnet/examples/messaging/list-messages.md index 6bc43ea9d..4fb4f60f4 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/list-messages.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/list-messages.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -MessageList result = await messaging.ListMessages( +Appwrite.Models.MessageList result = await messaging.ListMessages( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/list-providers.md b/examples/2.3.x/server-dotnet/examples/messaging/list-providers.md index 5d2867448..bef14a1ee 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/list-providers.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/list-providers.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -ProviderList result = await messaging.ListProviders( +Appwrite.Models.ProviderList result = await messaging.ListProviders( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/list-subscribers.md b/examples/2.3.x/server-dotnet/examples/messaging/list-subscribers.md index 15773d007..e9f1702b1 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/list-subscribers.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/list-subscribers.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -SubscriberList result = await messaging.ListSubscribers( +Appwrite.Models.SubscriberList result = await messaging.ListSubscribers( topicId: "<TOPIC_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/list-targets.md b/examples/2.3.x/server-dotnet/examples/messaging/list-targets.md index e5b2cd943..a64792325 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/list-targets.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/list-targets.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -TargetList result = await messaging.ListTargets( +Appwrite.Models.TargetList result = await messaging.ListTargets( messageId: "<MESSAGE_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/list-topics.md b/examples/2.3.x/server-dotnet/examples/messaging/list-topics.md index 4fa6f4df1..29f7d3124 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/list-topics.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/list-topics.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -TopicList result = await messaging.ListTopics( +Appwrite.Models.TopicList result = await messaging.ListTopics( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-apns-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-apns-provider.md index d8a04a49d..ae7df0d83 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-apns-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-apns-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateAPNSProvider( +Appwrite.Models.Provider result = await messaging.UpdateAPNSProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-appwrite-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-appwrite-provider.md index 4db615a0e..54969ff62 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-appwrite-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-appwrite-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateAppwriteProvider( +Appwrite.Models.Provider result = await messaging.UpdateAppwriteProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-email.md b/examples/2.3.x/server-dotnet/examples/messaging/update-email.md index 44accfc2a..4b268563c 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-email.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-email.md @@ -10,21 +10,21 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.UpdateEmail( +Appwrite.Models.Message result = await messaging.UpdateEmail( messageId: "<MESSAGE_ID>", + subject: "<SUBJECT>", // optional + content: "<CONTENT>", // optional topics: new List<string>(), // optional users: new List<string>(), // optional targets: new List<string>(), // optional - subject: "<SUBJECT>", // optional - content: "<CONTENT>", // optional - draft: false, // optional - html: false, // optional cc: new List<string>(), // optional bcc: new List<string>(), // optional + attachments: new List<string>(), // optional replyToEmail: "email@example.com", // optional replyToName: "<REPLY_TO_NAME>", // optional - scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional - attachments: new List<string>() // optional + draft: false, // optional + html: false, // optional + scheduledAt: "2020-10-15T06:38:00.000+00:00" // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-fcm-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-fcm-provider.md index c7381ed28..2245d5a02 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-fcm-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-fcm-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateFCMProvider( +Appwrite.Models.Provider result = await messaging.UpdateFCMProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-mailgun-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-mailgun-provider.md index 95b8466d2..fd46baf8c 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-mailgun-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-mailgun-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateMailgunProvider( +Appwrite.Models.Provider result = await messaging.UpdateMailgunProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional apiKey: "<API_KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-msg-91-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-msg-91-provider.md index 3652c6a0a..2e6382d59 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-msg-91-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-msg-91-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateMsg91Provider( +Appwrite.Models.Provider result = await messaging.UpdateMsg91Provider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-push.md b/examples/2.3.x/server-dotnet/examples/messaging/update-push.md index 6a151cca7..366c3f444 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-push.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-push.md @@ -11,13 +11,13 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.UpdatePush( +Appwrite.Models.Message result = await messaging.UpdatePush( messageId: "<MESSAGE_ID>", + title: "<TITLE>", // optional + body: "<BODY>", // optional topics: new List<string>(), // optional users: new List<string>(), // optional targets: new List<string>(), // optional - title: "<TITLE>", // optional - body: "<BODY>", // optional data: [object], // optional action: "<ACTION>", // optional image: "<ID1:ID2>", // optional @@ -30,7 +30,8 @@ Message result = await messaging.UpdatePush( scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional contentAvailable: false, // optional critical: false, // optional - priority: MessagePriority.Normal // optional + priority: MessagePriority.Normal, // optional + channelId: "<CHANNEL_ID>" // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-resend-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-resend-provider.md index 9bef411a5..ea4f2e5d9 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-resend-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-resend-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateResendProvider( +Appwrite.Models.Provider result = await messaging.UpdateResendProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-sendgrid-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-sendgrid-provider.md index b98feaa13..dbfe4d62b 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-sendgrid-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-sendgrid-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateSendgridProvider( +Appwrite.Models.Provider result = await messaging.UpdateSendgridProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-ses-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-ses-provider.md index 982cd5493..65350d1b8 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-ses-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-ses-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateSesProvider( +Appwrite.Models.Provider result = await messaging.UpdateSesProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-sms.md b/examples/2.3.x/server-dotnet/examples/messaging/update-sms.md index 3d38d9fb6..3699a49e9 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-sms.md @@ -10,12 +10,12 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Message result = await messaging.UpdateSMS( +Appwrite.Models.Message result = await messaging.UpdateSMS( messageId: "<MESSAGE_ID>", + content: "<CONTENT>", // optional topics: new List<string>(), // optional users: new List<string>(), // optional targets: new List<string>(), // optional - content: "<CONTENT>", // optional draft: false, // optional scheduledAt: "2020-10-15T06:38:00.000+00:00" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-smtp-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-smtp-provider.md index 2d9da6ca5..70b427e06 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-smtp-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-smtp-provider.md @@ -11,7 +11,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateSMTPProvider( +Appwrite.Models.Provider result = await messaging.UpdateSMTPProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional host: "<HOST>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-telesign-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-telesign-provider.md index 5a7048b1e..a285bc54b 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-telesign-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-telesign-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateTelesignProvider( +Appwrite.Models.Provider result = await messaging.UpdateTelesignProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-textmagic-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-textmagic-provider.md index 4f0a7a0dc..ce92a7f49 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-textmagic-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-textmagic-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateTextmagicProvider( +Appwrite.Models.Provider result = await messaging.UpdateTextmagicProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-topic.md b/examples/2.3.x/server-dotnet/examples/messaging/update-topic.md index a63f52e9c..aa80861b9 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-topic.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-topic.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Topic result = await messaging.UpdateTopic( +Appwrite.Models.Topic result = await messaging.UpdateTopic( topicId: "<TOPIC_ID>", name: "<NAME>", // optional subscribe: ["any"], // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-twilio-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-twilio-provider.md index a1d51e9e2..2b161d26f 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-twilio-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-twilio-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateTwilioProvider( +Appwrite.Models.Provider result = await messaging.UpdateTwilioProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/messaging/update-vonage-provider.md b/examples/2.3.x/server-dotnet/examples/messaging/update-vonage-provider.md index d26a17dd8..d154a90ba 100644 --- a/examples/2.3.x/server-dotnet/examples/messaging/update-vonage-provider.md +++ b/examples/2.3.x/server-dotnet/examples/messaging/update-vonage-provider.md @@ -10,7 +10,7 @@ Client client = new Client() Messaging messaging = new Messaging(client); -Provider result = await messaging.UpdateVonageProvider( +Appwrite.Models.Provider result = await messaging.UpdateVonageProvider( providerId: "<PROVIDER_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mongo/create-backup-policy.md index 41e2ed4b2..a43b84b31 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -BackupPolicy result = await mongo.CreateBackupPolicy( +Appwrite.Models.BackupPolicy result = await mongo.CreateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-backup.md b/examples/2.3.x/server-dotnet/examples/mongo/create-backup.md index e25efa993..96570471c 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-backup.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseBackup result = await mongo.CreateBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await mongo.CreateBackup( databaseId: "<DATABASE_ID>", type: "full" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-branch.md b/examples/2.3.x/server-dotnet/examples/mongo/create-branch.md index 8c01df43b..f3190494d 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-branch.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-branch.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.CreateBranch( +Appwrite.Models.DedicatedDatabase result = await mongo.CreateBranch( databaseId: "<DATABASE_ID>", branchId: "<BRANCH_ID>", // optional ttl: 300 // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-failover.md b/examples/2.3.x/server-dotnet/examples/mongo/create-failover.md index d4a6686e8..1bde932e6 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await mongo.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-migration.md b/examples/2.3.x/server-dotnet/examples/mongo/create-migration.md index b7fbcc7a5..7cc6a7c5b 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-migration.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-migration.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.CreateMigration( +Appwrite.Models.DedicatedDatabase result = await mongo.CreateMigration( databaseId: "<DATABASE_ID>", targetType: "shared", specification: "<SPECIFICATION>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-restoration.md b/examples/2.3.x/server-dotnet/examples/mongo/create-restoration.md index 8e9358eb1..999f0b094 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseRestoration result = await mongo.CreateRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await mongo.CreateRestoration( databaseId: "<DATABASE_ID>", type: "backup", // optional backupId: "<BACKUP_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create-upgrade.md b/examples/2.3.x/server-dotnet/examples/mongo/create-upgrade.md index c18e2d627..a7d17cef0 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create-upgrade.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create-upgrade.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.CreateUpgrade( +Appwrite.Models.DedicatedDatabase result = await mongo.CreateUpgrade( databaseId: "<DATABASE_ID>", targetVersion: "<TARGET_VERSION>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/create.md b/examples/2.3.x/server-dotnet/examples/mongo/create.md index c6ef970c5..a251a3dd4 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/create.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/create.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.Create( +Appwrite.Models.DedicatedDatabase result = await mongo.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", version: "17", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mongo/get-backup-policy.md index d05d979d2..c2256ff50 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -BackupPolicy result = await mongo.GetBackupPolicy( +Appwrite.Models.BackupPolicy result = await mongo.GetBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-backup.md b/examples/2.3.x/server-dotnet/examples/mongo/get-backup.md index ced57a21f..7969404c8 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-backup.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseBackup result = await mongo.GetBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await mongo.GetBackup( databaseId: "<DATABASE_ID>", backupId: "<BACKUP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-pitr.md b/examples/2.3.x/server-dotnet/examples/mongo/get-pitr.md index 55a1e64e8..28172a8bb 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-pitr.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-pitr.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabasePITRWindows result = await mongo.GetPitr( +Appwrite.Models.DedicatedDatabasePITRWindows result = await mongo.GetPitr( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-replicas.md b/examples/2.3.x/server-dotnet/examples/mongo/get-replicas.md index 7c52eceed..530186f24 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseReplicas result = await mongo.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await mongo.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-restoration.md b/examples/2.3.x/server-dotnet/examples/mongo/get-restoration.md index 32e830080..42de6a4ab 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseRestoration result = await mongo.GetRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await mongo.GetRestoration( databaseId: "<DATABASE_ID>", restorationId: "<RESTORATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get-status.md b/examples/2.3.x/server-dotnet/examples/mongo/get-status.md index 883f3b97c..f10d3b88d 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DatabaseStatus result = await mongo.GetStatus( +Appwrite.Models.DatabaseStatus result = await mongo.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/get.md b/examples/2.3.x/server-dotnet/examples/mongo/get.md index 86e0b80c8..a5a98afbc 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/get.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/get.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.Get( +Appwrite.Models.DedicatedDatabase result = await mongo.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-backup-policies.md b/examples/2.3.x/server-dotnet/examples/mongo/list-backup-policies.md index 9b56913a9..00b0781be 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-backup-policies.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-backup-policies.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -BackupPolicyList result = await mongo.ListBackupPolicies( +Appwrite.Models.BackupPolicyList result = await mongo.ListBackupPolicies( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-backups.md b/examples/2.3.x/server-dotnet/examples/mongo/list-backups.md index 6da449f88..5a0268346 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-backups.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-backups.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseBackupList result = await mongo.ListBackups( +Appwrite.Models.DedicatedDatabaseBackupList result = await mongo.ListBackups( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-branches.md b/examples/2.3.x/server-dotnet/examples/mongo/list-branches.md index f68102dca..40086f77b 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-branches.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-branches.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseBranchList result = await mongo.ListBranches( +Appwrite.Models.DedicatedDatabaseBranchList result = await mongo.ListBranches( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-operations.md b/examples/2.3.x/server-dotnet/examples/mongo/list-operations.md index c2dc679f1..dfea09218 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseOperationList result = await mongo.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await mongo.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-restorations.md b/examples/2.3.x/server-dotnet/examples/mongo/list-restorations.md index b5655c374..4ee274b9e 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-restorations.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-restorations.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseRestorationList result = await mongo.ListRestorations( +Appwrite.Models.DedicatedDatabaseRestorationList result = await mongo.ListRestorations( databaseId: "<DATABASE_ID>", status: "pending", // optional type: "backup", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list-specifications.md b/examples/2.3.x/server-dotnet/examples/mongo/list-specifications.md index 474e61230..77b66296e 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseSpecificationList result = await mongo.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await mongo.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/mongo/list.md b/examples/2.3.x/server-dotnet/examples/mongo/list.md index bd222419e..6f7eae353 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/list.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/list.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseList result = await mongo.List( +Appwrite.Models.DedicatedDatabaseList result = await mongo.List( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/update-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mongo/update-backup-policy.md index 7bec7bf3c..b58ad2660 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/update-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/update-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -BackupPolicy result = await mongo.UpdateBackupPolicy( +Appwrite.Models.BackupPolicy result = await mongo.UpdateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mongo/update-backup-storage.md b/examples/2.3.x/server-dotnet/examples/mongo/update-backup-storage.md index 27f365d41..24954f1a0 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/update-backup-storage.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/update-backup-storage.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseBackupStorage result = await mongo.UpdateBackupStorage( +Appwrite.Models.DedicatedDatabaseBackupStorage result = await mongo.UpdateBackupStorage( databaseId: "<DATABASE_ID>", provider: "s3", bucket: "<BUCKET>", diff --git a/examples/2.3.x/server-dotnet/examples/mongo/update-credentials.md b/examples/2.3.x/server-dotnet/examples/mongo/update-credentials.md index 9dafd042d..c28f62777 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/update-credentials.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/update-credentials.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabaseOperation result = await mongo.UpdateCredentials( +Appwrite.Models.DedicatedDatabaseOperation result = await mongo.UpdateCredentials( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mongo/update-maintenance.md b/examples/2.3.x/server-dotnet/examples/mongo/update-maintenance.md index e64faec63..a8fd32ba7 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/update-maintenance.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/update-maintenance.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.UpdateMaintenance( +Appwrite.Models.DedicatedDatabase result = await mongo.UpdateMaintenance( databaseId: "<DATABASE_ID>", day: "sun", hourUtc: 0 diff --git a/examples/2.3.x/server-dotnet/examples/mongo/update.md b/examples/2.3.x/server-dotnet/examples/mongo/update.md index 6c9b8d0a3..fea909c0d 100644 --- a/examples/2.3.x/server-dotnet/examples/mongo/update.md +++ b/examples/2.3.x/server-dotnet/examples/mongo/update.md @@ -10,7 +10,7 @@ Client client = new Client() Mongo mongo = new Mongo(client); -DedicatedDatabase result = await mongo.Update( +Appwrite.Models.DedicatedDatabase result = await mongo.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", // optional status: "ready", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mysql/create-backup-policy.md index ca410dc06..0239bf179 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -BackupPolicy result = await mysql.CreateBackupPolicy( +Appwrite.Models.BackupPolicy result = await mysql.CreateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-backup.md b/examples/2.3.x/server-dotnet/examples/mysql/create-backup.md index f5e271dfb..a2ecf9c22 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-backup.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseBackup result = await mysql.CreateBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await mysql.CreateBackup( databaseId: "<DATABASE_ID>", type: "full" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-branch.md b/examples/2.3.x/server-dotnet/examples/mysql/create-branch.md index a4d9283f1..1862572d7 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-branch.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-branch.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.CreateBranch( +Appwrite.Models.DedicatedDatabase result = await mysql.CreateBranch( databaseId: "<DATABASE_ID>", branchId: "<BRANCH_ID>", // optional ttl: 300 // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-execution.md b/examples/2.3.x/server-dotnet/examples/mysql/create-execution.md index 364fd3029..1f6362ed1 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-execution.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-execution.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseExecution result = await mysql.CreateExecution( +Appwrite.Models.DedicatedDatabaseExecution result = await mysql.CreateExecution( databaseId: "<DATABASE_ID>", sql: "<SQL>", bindings: [object], // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-failover.md b/examples/2.3.x/server-dotnet/examples/mysql/create-failover.md index e30720bad..6cf227068 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await mysql.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-migration.md b/examples/2.3.x/server-dotnet/examples/mysql/create-migration.md index c0b943c8f..38a4e807e 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-migration.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-migration.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.CreateMigration( +Appwrite.Models.DedicatedDatabase result = await mysql.CreateMigration( databaseId: "<DATABASE_ID>", targetType: "shared", specification: "<SPECIFICATION>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-restoration.md b/examples/2.3.x/server-dotnet/examples/mysql/create-restoration.md index d6f1fa35c..a240fc77e 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseRestoration result = await mysql.CreateRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await mysql.CreateRestoration( databaseId: "<DATABASE_ID>", type: "backup", // optional backupId: "<BACKUP_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create-upgrade.md b/examples/2.3.x/server-dotnet/examples/mysql/create-upgrade.md index 4b408cee5..cafd4c0b1 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create-upgrade.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create-upgrade.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.CreateUpgrade( +Appwrite.Models.DedicatedDatabase result = await mysql.CreateUpgrade( databaseId: "<DATABASE_ID>", targetVersion: "<TARGET_VERSION>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/create.md b/examples/2.3.x/server-dotnet/examples/mysql/create.md index 23bcc79e7..d679464f6 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/create.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/create.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.Create( +Appwrite.Models.DedicatedDatabase result = await mysql.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", version: "17", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mysql/get-backup-policy.md index 524bd066d..9ffda9028 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -BackupPolicy result = await mysql.GetBackupPolicy( +Appwrite.Models.BackupPolicy result = await mysql.GetBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-backup.md b/examples/2.3.x/server-dotnet/examples/mysql/get-backup.md index 1c81ffc41..ae5792a15 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-backup.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseBackup result = await mysql.GetBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await mysql.GetBackup( databaseId: "<DATABASE_ID>", backupId: "<BACKUP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-pitr.md b/examples/2.3.x/server-dotnet/examples/mysql/get-pitr.md index 3f1d3fcc4..81fbad52e 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-pitr.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-pitr.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabasePITRWindows result = await mysql.GetPitr( +Appwrite.Models.DedicatedDatabasePITRWindows result = await mysql.GetPitr( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-pooler.md b/examples/2.3.x/server-dotnet/examples/mysql/get-pooler.md index c88ec9c84..ac0433bfc 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-pooler.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-pooler.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabasePooler result = await mysql.GetPooler( +Appwrite.Models.DedicatedDatabasePooler result = await mysql.GetPooler( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-replicas.md b/examples/2.3.x/server-dotnet/examples/mysql/get-replicas.md index 4033dc586..76bb2aff4 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseReplicas result = await mysql.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await mysql.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-restoration.md b/examples/2.3.x/server-dotnet/examples/mysql/get-restoration.md index 11f18fc1b..84964a591 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseRestoration result = await mysql.GetRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await mysql.GetRestoration( databaseId: "<DATABASE_ID>", restorationId: "<RESTORATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get-status.md b/examples/2.3.x/server-dotnet/examples/mysql/get-status.md index a6adb9a2d..89bf24e65 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DatabaseStatus result = await mysql.GetStatus( +Appwrite.Models.DatabaseStatus result = await mysql.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/get.md b/examples/2.3.x/server-dotnet/examples/mysql/get.md index 0ae1db334..5f475751d 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/get.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/get.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.Get( +Appwrite.Models.DedicatedDatabase result = await mysql.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-backup-policies.md b/examples/2.3.x/server-dotnet/examples/mysql/list-backup-policies.md index 546c276a4..8993fdd40 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-backup-policies.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-backup-policies.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -BackupPolicyList result = await mysql.ListBackupPolicies( +Appwrite.Models.BackupPolicyList result = await mysql.ListBackupPolicies( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-backups.md b/examples/2.3.x/server-dotnet/examples/mysql/list-backups.md index 11fda3e8d..77d8aea75 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-backups.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-backups.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseBackupList result = await mysql.ListBackups( +Appwrite.Models.DedicatedDatabaseBackupList result = await mysql.ListBackups( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-branches.md b/examples/2.3.x/server-dotnet/examples/mysql/list-branches.md index 471fececd..1003ac29e 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-branches.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-branches.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseBranchList result = await mysql.ListBranches( +Appwrite.Models.DedicatedDatabaseBranchList result = await mysql.ListBranches( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-operations.md b/examples/2.3.x/server-dotnet/examples/mysql/list-operations.md index 5b3f342a9..2b3c60b31 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseOperationList result = await mysql.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await mysql.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-restorations.md b/examples/2.3.x/server-dotnet/examples/mysql/list-restorations.md index 0238c2ce5..3153c4b6e 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-restorations.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-restorations.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseRestorationList result = await mysql.ListRestorations( +Appwrite.Models.DedicatedDatabaseRestorationList result = await mysql.ListRestorations( databaseId: "<DATABASE_ID>", status: "pending", // optional type: "backup", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list-specifications.md b/examples/2.3.x/server-dotnet/examples/mysql/list-specifications.md index a469ff043..38153e47d 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseSpecificationList result = await mysql.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await mysql.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/mysql/list.md b/examples/2.3.x/server-dotnet/examples/mysql/list.md index f49707d1c..bac475709 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/list.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/list.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseList result = await mysql.List( +Appwrite.Models.DedicatedDatabaseList result = await mysql.List( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update-backup-policy.md b/examples/2.3.x/server-dotnet/examples/mysql/update-backup-policy.md index c812e9eae..bb0c9683a 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -BackupPolicy result = await mysql.UpdateBackupPolicy( +Appwrite.Models.BackupPolicy result = await mysql.UpdateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update-backup-storage.md b/examples/2.3.x/server-dotnet/examples/mysql/update-backup-storage.md index 6efbdc499..35eaf8fd5 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update-backup-storage.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update-backup-storage.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseBackupStorage result = await mysql.UpdateBackupStorage( +Appwrite.Models.DedicatedDatabaseBackupStorage result = await mysql.UpdateBackupStorage( databaseId: "<DATABASE_ID>", provider: "s3", bucket: "<BUCKET>", diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update-credentials.md b/examples/2.3.x/server-dotnet/examples/mysql/update-credentials.md index 7bf74cb37..4e027804b 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update-credentials.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update-credentials.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabaseOperation result = await mysql.UpdateCredentials( +Appwrite.Models.DedicatedDatabaseOperation result = await mysql.UpdateCredentials( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update-maintenance.md b/examples/2.3.x/server-dotnet/examples/mysql/update-maintenance.md index 4a28819ac..447c78cf5 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update-maintenance.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update-maintenance.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.UpdateMaintenance( +Appwrite.Models.DedicatedDatabase result = await mysql.UpdateMaintenance( databaseId: "<DATABASE_ID>", day: "sun", hourUtc: 0 diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update-pooler.md b/examples/2.3.x/server-dotnet/examples/mysql/update-pooler.md index 455b6d2b2..585ff5a7a 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update-pooler.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update-pooler.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabasePooler result = await mysql.UpdatePooler( +Appwrite.Models.DedicatedDatabasePooler result = await mysql.UpdatePooler( databaseId: "<DATABASE_ID>", mode: "transaction", // optional maxConnections: 10, // optional diff --git a/examples/2.3.x/server-dotnet/examples/mysql/update.md b/examples/2.3.x/server-dotnet/examples/mysql/update.md index 4e9e8adb6..287ca113a 100644 --- a/examples/2.3.x/server-dotnet/examples/mysql/update.md +++ b/examples/2.3.x/server-dotnet/examples/mysql/update.md @@ -10,7 +10,7 @@ Client client = new Client() Mysql mysql = new Mysql(client); -DedicatedDatabase result = await mysql.Update( +Appwrite.Models.DedicatedDatabase result = await mysql.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", // optional status: "ready", // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/approve.md b/examples/2.3.x/server-dotnet/examples/oauth2/approve.md index 0c832ff61..64ba33e63 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/approve.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/approve.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Approve result = await oauth2.Approve( +Appwrite.Models.Oauth2Approve result = await oauth2.Approve( grant_id: "<GRANT_ID>", authorization_details: "<AUTHORIZATION_DETAILS>", // optional scope: "<SCOPE>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/authorize-post.md b/examples/2.3.x/server-dotnet/examples/oauth2/authorize-post.md index d067b8346..7ef874c96 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/authorize-post.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/authorize-post.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Authorize result = await oauth2.AuthorizePost( +Appwrite.Models.Oauth2Authorize result = await oauth2.AuthorizePost( client_id: "<CLIENT_ID>", // optional redirect_uri: "https://example.com", // optional response_type: "", // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/authorize.md b/examples/2.3.x/server-dotnet/examples/oauth2/authorize.md index 77a0f3bc2..ab37830b8 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/authorize.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/authorize.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Authorize result = await oauth2.Authorize( +Appwrite.Models.Oauth2Authorize result = await oauth2.Authorize( client_id: "<CLIENT_ID>", // optional redirect_uri: "https://example.com", // optional response_type: "", // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/create-device-authorization.md b/examples/2.3.x/server-dotnet/examples/oauth2/create-device-authorization.md index a257690aa..94b4c3a1e 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/create-device-authorization.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/create-device-authorization.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2DeviceAuthorization result = await oauth2.CreateDeviceAuthorization( +Appwrite.Models.Oauth2DeviceAuthorization result = await oauth2.CreateDeviceAuthorization( client_id: "<CLIENT_ID>", // optional scope: "<SCOPE>", // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/create-grant.md b/examples/2.3.x/server-dotnet/examples/oauth2/create-grant.md index cf1ad6969..5f987551c 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/create-grant.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/create-grant.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Grant result = await oauth2.CreateGrant( +Appwrite.Models.Oauth2Grant result = await oauth2.CreateGrant( user_code: "<USER_CODE>" ); diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/create-par.md b/examples/2.3.x/server-dotnet/examples/oauth2/create-par.md index 214f85753..59858076b 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/create-par.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/create-par.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2PAR result = await oauth2.CreatePAR( +Appwrite.Models.Oauth2PAR result = await oauth2.CreatePAR( client_id: "<CLIENT_ID>", redirect_uri: "https://example.com", response_type: "code", diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/create-token.md b/examples/2.3.x/server-dotnet/examples/oauth2/create-token.md index 27639a8e6..32fb35134 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/create-token.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/create-token.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Token result = await oauth2.CreateToken( +Appwrite.Models.Oauth2Token result = await oauth2.CreateToken( grant_type: "<GRANT_TYPE>", code: "<CODE>", // optional refresh_token: "<REFRESH_TOKEN>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/get-grant.md b/examples/2.3.x/server-dotnet/examples/oauth2/get-grant.md index e289b80de..a64ac0077 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/get-grant.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/get-grant.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Grant result = await oauth2.GetGrant( +Appwrite.Models.Oauth2Grant result = await oauth2.GetGrant( grant_id: "<GRANT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/introspect.md b/examples/2.3.x/server-dotnet/examples/oauth2/introspect.md new file mode 100644 index 000000000..f74b57d67 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/oauth2/introspect.md @@ -0,0 +1,20 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Oauth2 oauth2 = new Oauth2(client); + +Appwrite.Models.Oauth2Introspection result = await oauth2.Introspect( + token: "<TOKEN>", + token_type_hint: "access_token", // optional + client_id: "<CLIENT_ID>", // optional + client_secret: "<CLIENT_SECRET>" // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/list-organizations.md b/examples/2.3.x/server-dotnet/examples/oauth2/list-organizations.md index dd5f160cf..b710dc6eb 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/list-organizations.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/list-organizations.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2OrganizationList result = await oauth2.ListOrganizations( +Appwrite.Models.Oauth2OrganizationList result = await oauth2.ListOrganizations( limit: 1, // optional offset: 0, // optional search: "<SEARCH>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/list-projects.md b/examples/2.3.x/server-dotnet/examples/oauth2/list-projects.md index 71472878e..c5760c133 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/list-projects.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/list-projects.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2ProjectList result = await oauth2.ListProjects( +Appwrite.Models.Oauth2ProjectList result = await oauth2.ListProjects( limit: 1, // optional offset: 0, // optional search: "<SEARCH>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/reject.md b/examples/2.3.x/server-dotnet/examples/oauth2/reject.md index 3bdc64573..9347771fc 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/reject.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/reject.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); -Oauth2Reject result = await oauth2.Reject( +Appwrite.Models.Oauth2Reject result = await oauth2.Reject( grant_id: "<GRANT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/oauth2/revoke.md b/examples/2.3.x/server-dotnet/examples/oauth2/revoke.md index 5f94763d3..f75a85b57 100644 --- a/examples/2.3.x/server-dotnet/examples/oauth2/revoke.md +++ b/examples/2.3.x/server-dotnet/examples/oauth2/revoke.md @@ -10,7 +10,7 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); - result = await oauth2.Revoke( +Appwrite.Models. result = await oauth2.Revoke( token: "<TOKEN>", token_type_hint: "access_token", // optional client_id: "<CLIENT_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-dotnet/examples/organization/create-ephemeral-project-key.md index 16a1950ef..d26654af7 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-dotnet/examples/organization/create-ephemeral-project-key.md @@ -11,9 +11,9 @@ Client client = new Client() Organization organization = new Organization(client); -EphemeralKey result = await organization.CreateEphemeralProjectKey( +Appwrite.Models.EphemeralKey result = await organization.CreateEphemeralProjectKey( projectId: "<PROJECT_ID>", - scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.ProjectRead }, + scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.UsersRead }, duration: 600 ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/create-installation.md b/examples/2.3.x/server-dotnet/examples/organization/create-installation.md index 78aa2c38c..75abe99ab 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/create-installation.md +++ b/examples/2.3.x/server-dotnet/examples/organization/create-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -AppInstallation result = await organization.CreateInstallation( +Appwrite.Models.AppInstallation result = await organization.CreateInstallation( appId: "<APP_ID>", authorizationDetails: "<AUTHORIZATION_DETAILS>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/create-membership.md b/examples/2.3.x/server-dotnet/examples/organization/create-membership.md index bbeb4a1f0..863e78b55 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/create-membership.md +++ b/examples/2.3.x/server-dotnet/examples/organization/create-membership.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Membership result = await organization.CreateMembership( +Appwrite.Models.Membership result = await organization.CreateMembership( roles: new List<string>(), email: "email@example.com", // optional userId: "<USER_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/create-project.md b/examples/2.3.x/server-dotnet/examples/organization/create-project.md index c4f2e6274..956b7b5ca 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/create-project.md +++ b/examples/2.3.x/server-dotnet/examples/organization/create-project.md @@ -11,7 +11,7 @@ Client client = new Client() Organization organization = new Organization(client); -Project result = await organization.CreateProject( +Appwrite.Models.Project result = await organization.CreateProject( projectId: "<PROJECT_ID>", name: "<NAME>", region: Region.Fra // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/get-installation.md b/examples/2.3.x/server-dotnet/examples/organization/get-installation.md index c324528b8..a9ea1c667 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/get-installation.md +++ b/examples/2.3.x/server-dotnet/examples/organization/get-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -AppInstallation result = await organization.GetInstallation( +Appwrite.Models.AppInstallation result = await organization.GetInstallation( installationId: "<INSTALLATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/get-membership.md b/examples/2.3.x/server-dotnet/examples/organization/get-membership.md index 44d6363e1..561fa51ba 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/get-membership.md +++ b/examples/2.3.x/server-dotnet/examples/organization/get-membership.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Membership result = await organization.GetMembership( +Appwrite.Models.Membership result = await organization.GetMembership( membershipId: "<MEMBERSHIP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/get-project-key.md b/examples/2.3.x/server-dotnet/examples/organization/get-project-key.md index d85c9acd3..af2b38ddd 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/get-project-key.md +++ b/examples/2.3.x/server-dotnet/examples/organization/get-project-key.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Key result = await organization.GetProjectKey( +Appwrite.Models.Key result = await organization.GetProjectKey( projectId: "<PROJECT_ID>", keyId: "<KEY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/get-project.md b/examples/2.3.x/server-dotnet/examples/organization/get-project.md index 3d64fe0c7..eb45c7c93 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/get-project.md +++ b/examples/2.3.x/server-dotnet/examples/organization/get-project.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Project result = await organization.GetProject( +Appwrite.Models.Project result = await organization.GetProject( projectId: "<PROJECT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/get.md b/examples/2.3.x/server-dotnet/examples/organization/get.md index 4c3c2b76a..99163f309 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/get.md +++ b/examples/2.3.x/server-dotnet/examples/organization/get.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Organization result = await organization.Get(); +Appwrite.Models.Organization result = await organization.Get(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/organization/list-installations.md b/examples/2.3.x/server-dotnet/examples/organization/list-installations.md index 2890e3367..e802baa3d 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/list-installations.md +++ b/examples/2.3.x/server-dotnet/examples/organization/list-installations.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -AppInstallationList result = await organization.ListInstallations( +Appwrite.Models.AppInstallationList result = await organization.ListInstallations( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/list-memberships.md b/examples/2.3.x/server-dotnet/examples/organization/list-memberships.md index 69c357b78..fc95861a0 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/list-memberships.md +++ b/examples/2.3.x/server-dotnet/examples/organization/list-memberships.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -MembershipList result = await organization.ListMemberships( +Appwrite.Models.MembershipList result = await organization.ListMemberships( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/list-project-keys.md b/examples/2.3.x/server-dotnet/examples/organization/list-project-keys.md index ab0f06d10..07b36f2d7 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/list-project-keys.md +++ b/examples/2.3.x/server-dotnet/examples/organization/list-project-keys.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -KeyList result = await organization.ListProjectKeys( +Appwrite.Models.KeyList result = await organization.ListProjectKeys( projectId: "<PROJECT_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/list-projects.md b/examples/2.3.x/server-dotnet/examples/organization/list-projects.md index c61a3341a..c1d9b20fa 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/list-projects.md +++ b/examples/2.3.x/server-dotnet/examples/organization/list-projects.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -ProjectList result = await organization.ListProjects( +Appwrite.Models.ProjectList result = await organization.ListProjects( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/organization/update-installation.md b/examples/2.3.x/server-dotnet/examples/organization/update-installation.md index c79ee8b52..d78ba1016 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/update-installation.md +++ b/examples/2.3.x/server-dotnet/examples/organization/update-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -AppInstallation result = await organization.UpdateInstallation( +Appwrite.Models.AppInstallation result = await organization.UpdateInstallation( installationId: "<INSTALLATION_ID>", authorizationDetails: "<AUTHORIZATION_DETAILS>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/update-membership.md b/examples/2.3.x/server-dotnet/examples/organization/update-membership.md index d1faf7f00..33105d9a3 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/update-membership.md +++ b/examples/2.3.x/server-dotnet/examples/organization/update-membership.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Membership result = await organization.UpdateMembership( +Appwrite.Models.Membership result = await organization.UpdateMembership( membershipId: "<MEMBERSHIP_ID>", roles: new List<string>() ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/update-project-key.md b/examples/2.3.x/server-dotnet/examples/organization/update-project-key.md index 265002909..541343b31 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-dotnet/examples/organization/update-project-key.md @@ -11,11 +11,11 @@ Client client = new Client() Organization organization = new Organization(client); -Key result = await organization.UpdateProjectKey( +Appwrite.Models.Key result = await organization.UpdateProjectKey( projectId: "<PROJECT_ID>", keyId: "<KEY_ID>", name: "<NAME>", - scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.ProjectRead }, + scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.UsersRead }, expire: "2020-10-15T06:38:00.000+00:00" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/update-project.md b/examples/2.3.x/server-dotnet/examples/organization/update-project.md index ae8e2664d..42abd5478 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/update-project.md +++ b/examples/2.3.x/server-dotnet/examples/organization/update-project.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Project result = await organization.UpdateProject( +Appwrite.Models.Project result = await organization.UpdateProject( projectId: "<PROJECT_ID>", name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/organization/update.md b/examples/2.3.x/server-dotnet/examples/organization/update.md index 8b559ce18..8ba851eab 100644 --- a/examples/2.3.x/server-dotnet/examples/organization/update.md +++ b/examples/2.3.x/server-dotnet/examples/organization/update.md @@ -10,7 +10,7 @@ Client client = new Client() Organization organization = new Organization(client); -Organization result = await organization.Update( +Appwrite.Models.Organization result = await organization.Update( name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-backup-policy.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-backup-policy.md index ba827ae71..80f7abc11 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -BackupPolicy result = await postgresql.CreateBackupPolicy( +Appwrite.Models.BackupPolicy result = await postgresql.CreateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-backup.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-backup.md index de70d5c5a..6e49fcc3c 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-backup.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseBackup result = await postgresql.CreateBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await postgresql.CreateBackup( databaseId: "<DATABASE_ID>", type: "full" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-branch.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-branch.md index f4e8d5663..29d694b4a 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-branch.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-branch.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.CreateBranch( +Appwrite.Models.DedicatedDatabase result = await postgresql.CreateBranch( databaseId: "<DATABASE_ID>", branchId: "<BRANCH_ID>", // optional ttl: 300 // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-execution.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-execution.md index 14804cc08..688714b15 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-execution.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-execution.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseExecution result = await postgresql.CreateExecution( +Appwrite.Models.DedicatedDatabaseExecution result = await postgresql.CreateExecution( databaseId: "<DATABASE_ID>", sql: "<SQL>", bindings: [object], // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-extension.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-extension.md index d7a6e6fdf..574f720e0 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-extension.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-extension.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.CreateExtension( +Appwrite.Models.DedicatedDatabase result = await postgresql.CreateExtension( databaseId: "<DATABASE_ID>", name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-failover.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-failover.md index b798844f1..f6019e77a 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await postgresql.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-migration.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-migration.md index 1868ba84c..0aa6d252f 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-migration.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-migration.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.CreateMigration( +Appwrite.Models.DedicatedDatabase result = await postgresql.CreateMigration( databaseId: "<DATABASE_ID>", targetType: "shared", specification: "<SPECIFICATION>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-restoration.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-restoration.md index fdd094844..ab018c303 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseRestoration result = await postgresql.CreateRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await postgresql.CreateRestoration( databaseId: "<DATABASE_ID>", type: "backup", // optional backupId: "<BACKUP_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create-upgrade.md b/examples/2.3.x/server-dotnet/examples/postgresql/create-upgrade.md index c81ca922b..18cf2369c 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create-upgrade.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create-upgrade.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.CreateUpgrade( +Appwrite.Models.DedicatedDatabase result = await postgresql.CreateUpgrade( databaseId: "<DATABASE_ID>", targetVersion: "<TARGET_VERSION>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/create.md b/examples/2.3.x/server-dotnet/examples/postgresql/create.md index b4c3a49bb..7177b4241 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/create.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/create.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.Create( +Appwrite.Models.DedicatedDatabase result = await postgresql.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", version: "17", // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-backup-policy.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-backup-policy.md index e58d4e215..e13bcc3fa 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -BackupPolicy result = await postgresql.GetBackupPolicy( +Appwrite.Models.BackupPolicy result = await postgresql.GetBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-backup.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-backup.md index 4091ac393..44af120cf 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-backup.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-backup.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseBackup result = await postgresql.GetBackup( +Appwrite.Models.DedicatedDatabaseBackup result = await postgresql.GetBackup( databaseId: "<DATABASE_ID>", backupId: "<BACKUP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-pitr.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-pitr.md index aaabade0a..aa56fbffd 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-pitr.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-pitr.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabasePITRWindows result = await postgresql.GetPitr( +Appwrite.Models.DedicatedDatabasePITRWindows result = await postgresql.GetPitr( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-pooler.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-pooler.md index b42fd7804..1f9301794 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-pooler.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-pooler.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabasePooler result = await postgresql.GetPooler( +Appwrite.Models.DedicatedDatabasePooler result = await postgresql.GetPooler( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-replicas.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-replicas.md index 62475f36f..be8a461d5 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseReplicas result = await postgresql.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await postgresql.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-restoration.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-restoration.md index 40a23f038..cafd36138 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-restoration.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-restoration.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseRestoration result = await postgresql.GetRestoration( +Appwrite.Models.DedicatedDatabaseRestoration result = await postgresql.GetRestoration( databaseId: "<DATABASE_ID>", restorationId: "<RESTORATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get-status.md b/examples/2.3.x/server-dotnet/examples/postgresql/get-status.md index 0101abcb5..423f902e1 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DatabaseStatus result = await postgresql.GetStatus( +Appwrite.Models.DatabaseStatus result = await postgresql.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/get.md b/examples/2.3.x/server-dotnet/examples/postgresql/get.md index 67bd780f3..351c81df6 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/get.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/get.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.Get( +Appwrite.Models.DedicatedDatabase result = await postgresql.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-backup-policies.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-backup-policies.md index 7fe5d3f71..93a26c183 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-backup-policies.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-backup-policies.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -BackupPolicyList result = await postgresql.ListBackupPolicies( +Appwrite.Models.BackupPolicyList result = await postgresql.ListBackupPolicies( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-backups.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-backups.md index f3b66895e..9fd5f8b7b 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-backups.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-backups.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseBackupList result = await postgresql.ListBackups( +Appwrite.Models.DedicatedDatabaseBackupList result = await postgresql.ListBackups( databaseId: "<DATABASE_ID>", queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-branches.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-branches.md index 1c092d456..b8572e603 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-branches.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-branches.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseBranchList result = await postgresql.ListBranches( +Appwrite.Models.DedicatedDatabaseBranchList result = await postgresql.ListBranches( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-extensions.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-extensions.md index a7ca3908d..b2a744fdc 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-extensions.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-extensions.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseExtensions result = await postgresql.ListExtensions( +Appwrite.Models.DedicatedDatabaseExtensions result = await postgresql.ListExtensions( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-operations.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-operations.md index cb745eaa4..7494343cb 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseOperationList result = await postgresql.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await postgresql.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-restorations.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-restorations.md index 2663a1f83..b94f14d3d 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-restorations.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-restorations.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseRestorationList result = await postgresql.ListRestorations( +Appwrite.Models.DedicatedDatabaseRestorationList result = await postgresql.ListRestorations( databaseId: "<DATABASE_ID>", status: "pending", // optional type: "backup", // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list-specifications.md b/examples/2.3.x/server-dotnet/examples/postgresql/list-specifications.md index da1539be7..e6117b11d 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseSpecificationList result = await postgresql.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await postgresql.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/list.md b/examples/2.3.x/server-dotnet/examples/postgresql/list.md index eb2e0e06f..ba8b1ef33 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/list.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/list.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseList result = await postgresql.List( +Appwrite.Models.DedicatedDatabaseList result = await postgresql.List( queries: new List<string>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-policy.md b/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-policy.md index c1faaa09c..f132a200e 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-policy.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -BackupPolicy result = await postgresql.UpdateBackupPolicy( +Appwrite.Models.BackupPolicy result = await postgresql.UpdateBackupPolicy( databaseId: "<DATABASE_ID>", policyId: "<POLICY_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-storage.md b/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-storage.md index 88d946e13..88e84f1fe 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-storage.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update-backup-storage.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseBackupStorage result = await postgresql.UpdateBackupStorage( +Appwrite.Models.DedicatedDatabaseBackupStorage result = await postgresql.UpdateBackupStorage( databaseId: "<DATABASE_ID>", provider: "s3", bucket: "<BUCKET>", diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update-credentials.md b/examples/2.3.x/server-dotnet/examples/postgresql/update-credentials.md index 75f8f3383..bb714ecb4 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update-credentials.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update-credentials.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabaseOperation result = await postgresql.UpdateCredentials( +Appwrite.Models.DedicatedDatabaseOperation result = await postgresql.UpdateCredentials( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update-maintenance.md b/examples/2.3.x/server-dotnet/examples/postgresql/update-maintenance.md index ed6fa91a4..01f682c79 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update-maintenance.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update-maintenance.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.UpdateMaintenance( +Appwrite.Models.DedicatedDatabase result = await postgresql.UpdateMaintenance( databaseId: "<DATABASE_ID>", day: "sun", hourUtc: 0 diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update-pooler.md b/examples/2.3.x/server-dotnet/examples/postgresql/update-pooler.md index bc77771f0..202dd354c 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update-pooler.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update-pooler.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabasePooler result = await postgresql.UpdatePooler( +Appwrite.Models.DedicatedDatabasePooler result = await postgresql.UpdatePooler( databaseId: "<DATABASE_ID>", mode: "transaction", // optional maxConnections: 10, // optional diff --git a/examples/2.3.x/server-dotnet/examples/postgresql/update.md b/examples/2.3.x/server-dotnet/examples/postgresql/update.md index c6e5d48a6..c942e330c 100644 --- a/examples/2.3.x/server-dotnet/examples/postgresql/update.md +++ b/examples/2.3.x/server-dotnet/examples/postgresql/update.md @@ -10,7 +10,7 @@ Client client = new Client() Postgresql postgresql = new Postgresql(client); -DedicatedDatabase result = await postgresql.Update( +Appwrite.Models.DedicatedDatabase result = await postgresql.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", // optional status: "ready", // optional diff --git a/examples/2.3.x/server-dotnet/examples/presences/get.md b/examples/2.3.x/server-dotnet/examples/presences/get.md index 85e7287ea..b1c42215d 100644 --- a/examples/2.3.x/server-dotnet/examples/presences/get.md +++ b/examples/2.3.x/server-dotnet/examples/presences/get.md @@ -10,7 +10,7 @@ Client client = new Client() Presences presences = new Presences(client); -Presence result = await presences.Get( +Appwrite.Models.Presence result = await presences.Get( presenceId: "<PRESENCE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/presences/list.md b/examples/2.3.x/server-dotnet/examples/presences/list.md index 8285644ef..7e46168c5 100644 --- a/examples/2.3.x/server-dotnet/examples/presences/list.md +++ b/examples/2.3.x/server-dotnet/examples/presences/list.md @@ -10,7 +10,7 @@ Client client = new Client() Presences presences = new Presences(client); -PresenceList result = await presences.List( +Appwrite.Models.PresenceList result = await presences.List( queries: new List<string>(), // optional total: false, // optional ttl: 0 // optional diff --git a/examples/2.3.x/server-dotnet/examples/presences/update.md b/examples/2.3.x/server-dotnet/examples/presences/update.md index ed55483b9..3efa3244e 100644 --- a/examples/2.3.x/server-dotnet/examples/presences/update.md +++ b/examples/2.3.x/server-dotnet/examples/presences/update.md @@ -10,7 +10,7 @@ Client client = new Client() Presences presences = new Presences(client); -Presence result = await presences.Update( +Appwrite.Models.Presence result = await presences.Update( presenceId: "<PRESENCE_ID>", userId: "<USER_ID>", status: "<STATUS>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/presences/upsert.md b/examples/2.3.x/server-dotnet/examples/presences/upsert.md index b7868248a..b87c35ecb 100644 --- a/examples/2.3.x/server-dotnet/examples/presences/upsert.md +++ b/examples/2.3.x/server-dotnet/examples/presences/upsert.md @@ -10,7 +10,7 @@ Client client = new Client() Presences presences = new Presences(client); -Presence result = await presences.Upsert( +Appwrite.Models.Presence result = await presences.Upsert( presenceId: "<PRESENCE_ID>", userId: "<USER_ID>", status: "<STATUS>", diff --git a/examples/2.3.x/server-dotnet/examples/project/create-android-platform.md b/examples/2.3.x/server-dotnet/examples/project/create-android-platform.md index df8dd6e0f..bb6012942 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-android-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-android-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformAndroid result = await project.CreateAndroidPlatform( +Appwrite.Models.PlatformAndroid result = await project.CreateAndroidPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", applicationId: "<APPLICATION_ID>" diff --git a/examples/2.3.x/server-dotnet/examples/project/create-apple-platform.md b/examples/2.3.x/server-dotnet/examples/project/create-apple-platform.md index 10dc58da1..fa2bcc497 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-apple-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-apple-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformApple result = await project.CreateApplePlatform( +Appwrite.Models.PlatformApple result = await project.CreateApplePlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", bundleIdentifier: "<BUNDLE_IDENTIFIER>" diff --git a/examples/2.3.x/server-dotnet/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-dotnet/examples/project/create-ephemeral-key.md index 5b6226bb8..683241c34 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-ephemeral-key.md @@ -11,8 +11,8 @@ Client client = new Client() Project project = new Project(client); -EphemeralKey result = await project.CreateEphemeralKey( - scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.ProjectRead }, +Appwrite.Models.EphemeralKey result = await project.CreateEphemeralKey( + scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.UsersRead }, duration: 600 ); diff --git a/examples/2.3.x/server-dotnet/examples/project/create-linux-platform.md b/examples/2.3.x/server-dotnet/examples/project/create-linux-platform.md index 7037a09c8..ee52c8def 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-linux-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-linux-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformLinux result = await project.CreateLinuxPlatform( +Appwrite.Models.PlatformLinux result = await project.CreateLinuxPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", packageName: "<PACKAGE_NAME>" diff --git a/examples/2.3.x/server-dotnet/examples/project/create-mock-phone.md b/examples/2.3.x/server-dotnet/examples/project/create-mock-phone.md index f8bb1bf57..b907e263b 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-mock-phone.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-mock-phone.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -MockNumber result = await project.CreateMockPhone( +Appwrite.Models.MockNumber result = await project.CreateMockPhone( number: "+12065550100", otp: "<OTP>" ); diff --git a/examples/2.3.x/server-dotnet/examples/project/create-smtp-test.md b/examples/2.3.x/server-dotnet/examples/project/create-smtp-test.md index d461c0cde..1070cfdf6 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-smtp-test.md @@ -10,8 +10,8 @@ Client client = new Client() Project project = new Project(client); - result = await project.CreateSMTPTest( - emails: new List<string>() +Appwrite.Models. result = await project.CreateSMTPTest( + emails: ["recipient@example.com"] ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/project/create-variable.md b/examples/2.3.x/server-dotnet/examples/project/create-variable.md index 1e361c54b..118c12baa 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-variable.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Variable result = await project.CreateVariable( +Appwrite.Models.Variable result = await project.CreateVariable( variableId: "<VARIABLE_ID>", key: "<KEY>", value: "<VALUE>", diff --git a/examples/2.3.x/server-dotnet/examples/project/create-web-platform.md b/examples/2.3.x/server-dotnet/examples/project/create-web-platform.md index 83f148a03..3a77a0146 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-web-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-web-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformWeb result = await project.CreateWebPlatform( +Appwrite.Models.PlatformWeb result = await project.CreateWebPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", hostname: "app.example.com" diff --git a/examples/2.3.x/server-dotnet/examples/project/create-windows-platform.md b/examples/2.3.x/server-dotnet/examples/project/create-windows-platform.md index 01eb5b90f..851b10e70 100644 --- a/examples/2.3.x/server-dotnet/examples/project/create-windows-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/create-windows-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformWindows result = await project.CreateWindowsPlatform( +Appwrite.Models.PlatformWindows result = await project.CreateWindowsPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", packageIdentifierName: "<PACKAGE_IDENTIFIER_NAME>" diff --git a/examples/2.3.x/server-dotnet/examples/project/get-email-template.md b/examples/2.3.x/server-dotnet/examples/project/get-email-template.md index 11a331a21..ca99baed0 100644 --- a/examples/2.3.x/server-dotnet/examples/project/get-email-template.md +++ b/examples/2.3.x/server-dotnet/examples/project/get-email-template.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -EmailTemplate result = await project.GetEmailTemplate( +Appwrite.Models.EmailTemplate result = await project.GetEmailTemplate( templateId: ProjectEmailTemplateId.Verification, locale: ProjectEmailTemplateLocale.Af // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/get-key.md b/examples/2.3.x/server-dotnet/examples/project/get-key.md index a84c4602f..c672e1a56 100644 --- a/examples/2.3.x/server-dotnet/examples/project/get-key.md +++ b/examples/2.3.x/server-dotnet/examples/project/get-key.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Key result = await project.GetKey( +Appwrite.Models.Key result = await project.GetKey( keyId: "<KEY_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/project/get-mock-phone.md b/examples/2.3.x/server-dotnet/examples/project/get-mock-phone.md index 43fea545d..33e64f11c 100644 --- a/examples/2.3.x/server-dotnet/examples/project/get-mock-phone.md +++ b/examples/2.3.x/server-dotnet/examples/project/get-mock-phone.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -MockNumber result = await project.GetMockPhone( +Appwrite.Models.MockNumber result = await project.GetMockPhone( number: "+12065550100" ); diff --git a/examples/2.3.x/server-dotnet/examples/project/get-variable.md b/examples/2.3.x/server-dotnet/examples/project/get-variable.md index bda49739d..13f24c439 100644 --- a/examples/2.3.x/server-dotnet/examples/project/get-variable.md +++ b/examples/2.3.x/server-dotnet/examples/project/get-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Variable result = await project.GetVariable( +Appwrite.Models.Variable result = await project.GetVariable( variableId: "<VARIABLE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/project/get.md b/examples/2.3.x/server-dotnet/examples/project/get.md index 8dbf5a582..e1cb06371 100644 --- a/examples/2.3.x/server-dotnet/examples/project/get.md +++ b/examples/2.3.x/server-dotnet/examples/project/get.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.Get(); +Appwrite.Models.Project result = await project.Get(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/project/list-email-templates.md b/examples/2.3.x/server-dotnet/examples/project/list-email-templates.md index 0cd3cad12..e8ebd1aa8 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-email-templates.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-email-templates.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -EmailTemplateList result = await project.ListEmailTemplates( +Appwrite.Models.EmailTemplateList result = await project.ListEmailTemplates( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-keys.md b/examples/2.3.x/server-dotnet/examples/project/list-keys.md index f006dd194..45111a31c 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-keys.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-keys.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -KeyList result = await project.ListKeys( +Appwrite.Models.KeyList result = await project.ListKeys( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-mock-phones.md b/examples/2.3.x/server-dotnet/examples/project/list-mock-phones.md index 3fa07bdcb..d323abb73 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-mock-phones.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-mock-phones.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -MockNumberList result = await project.ListMockPhones( +Appwrite.Models.MockNumberList result = await project.ListMockPhones( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-o-auth-2-providers.md b/examples/2.3.x/server-dotnet/examples/project/list-o-auth-2-providers.md index 9d0e7eae9..f27c64dc7 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-o-auth-2-providers.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-o-auth-2-providers.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2ProviderList result = await project.ListOAuth2Providers( +Appwrite.Models.OAuth2ProviderList result = await project.ListOAuth2Providers( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-platforms.md b/examples/2.3.x/server-dotnet/examples/project/list-platforms.md index 2a507c274..2cd00be50 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-platforms.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-platforms.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformList result = await project.ListPlatforms( +Appwrite.Models.PlatformList result = await project.ListPlatforms( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-policies.md b/examples/2.3.x/server-dotnet/examples/project/list-policies.md index bbd49b4c6..6c22f716e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-policies.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-policies.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PolicyList result = await project.ListPolicies( +Appwrite.Models.PolicyList result = await project.ListPolicies( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/list-variables.md b/examples/2.3.x/server-dotnet/examples/project/list-variables.md index e8107ab6c..8fc250379 100644 --- a/examples/2.3.x/server-dotnet/examples/project/list-variables.md +++ b/examples/2.3.x/server-dotnet/examples/project/list-variables.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -VariableList result = await project.ListVariables( +Appwrite.Models.VariableList result = await project.ListVariables( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-android-platform.md b/examples/2.3.x/server-dotnet/examples/project/update-android-platform.md index 77b78b571..d56913a54 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-android-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-android-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformAndroid result = await project.UpdateAndroidPlatform( +Appwrite.Models.PlatformAndroid result = await project.UpdateAndroidPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", applicationId: "<APPLICATION_ID>" diff --git a/examples/2.3.x/server-dotnet/examples/project/update-apple-platform.md b/examples/2.3.x/server-dotnet/examples/project/update-apple-platform.md index fa9ec4623..d48e1a2d1 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-apple-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-apple-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformApple result = await project.UpdateApplePlatform( +Appwrite.Models.PlatformApple result = await project.UpdateApplePlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", bundleIdentifier: "<BUNDLE_IDENTIFIER>" diff --git a/examples/2.3.x/server-dotnet/examples/project/update-auth-method.md b/examples/2.3.x/server-dotnet/examples/project/update-auth-method.md index 0b180be24..909814771 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-auth-method.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-auth-method.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateAuthMethod( +Appwrite.Models.Project result = await project.UpdateAuthMethod( methodId: ProjectAuthMethodId.EmailPassword, enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-deny-aliased-email-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-deny-aliased-email-policy.md index 50d622ea7..aacc20172 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-deny-aliased-email-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-deny-aliased-email-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateDenyAliasedEmailPolicy( +Appwrite.Models.Project result = await project.UpdateDenyAliasedEmailPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-deny-corporate-email-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-deny-corporate-email-policy.md index 13e204eb2..169f8e025 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-deny-corporate-email-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-deny-corporate-email-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateDenyCorporateEmailPolicy( +Appwrite.Models.Project result = await project.UpdateDenyCorporateEmailPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-deny-disposable-email-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-deny-disposable-email-policy.md index 7e22b31a3..d1f6122bc 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-deny-disposable-email-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-deny-disposable-email-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateDenyDisposableEmailPolicy( +Appwrite.Models.Project result = await project.UpdateDenyDisposableEmailPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-deny-free-email-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-deny-free-email-policy.md index 49ba67670..6da6853db 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-deny-free-email-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-deny-free-email-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateDenyFreeEmailPolicy( +Appwrite.Models.Project result = await project.UpdateDenyFreeEmailPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-email-template.md b/examples/2.3.x/server-dotnet/examples/project/update-email-template.md index 2c4c747d2..dd1ae5d6b 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-email-template.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-email-template.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -EmailTemplate result = await project.UpdateEmailTemplate( +Appwrite.Models.EmailTemplate result = await project.UpdateEmailTemplate( templateId: ProjectEmailTemplateId.Verification, locale: ProjectEmailTemplateLocale.Af, // optional subject: "<SUBJECT>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-key.md b/examples/2.3.x/server-dotnet/examples/project/update-key.md index 619fca4b9..6097e49a0 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-key.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-key.md @@ -11,10 +11,10 @@ Client client = new Client() Project project = new Project(client); -Key result = await project.UpdateKey( +Appwrite.Models.Key result = await project.UpdateKey( keyId: "<KEY_ID>", name: "<NAME>", - scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.ProjectRead }, + scopes: new List<ProjectKeyScopes> { ProjectKeyScopes.UsersRead }, expire: "2020-10-15T06:38:00.000+00:00" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-labels.md b/examples/2.3.x/server-dotnet/examples/project/update-labels.md index 2dfe3ea86..76e8304db 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-labels.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-labels.md @@ -10,8 +10,8 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateLabels( - labels: new List<string>() +Appwrite.Models.Project result = await project.UpdateLabels( + labels: ["production"] ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/project/update-linux-platform.md b/examples/2.3.x/server-dotnet/examples/project/update-linux-platform.md index 0e0be47d5..b0a4e359e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-linux-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-linux-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformLinux result = await project.UpdateLinuxPlatform( +Appwrite.Models.PlatformLinux result = await project.UpdateLinuxPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", packageName: "<PACKAGE_NAME>" diff --git a/examples/2.3.x/server-dotnet/examples/project/update-membership-privacy-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-membership-privacy-policy.md index 3e6102f6d..8f508a40f 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-membership-privacy-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-membership-privacy-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateMembershipPrivacyPolicy( +Appwrite.Models.Project result = await project.UpdateMembershipPrivacyPolicy( userId: false, // optional userEmail: false, // optional userPhone: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-mfa-factors-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-mfa-factors-policy.md index aa9ed2a54..8521251e4 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-mfa-factors-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-mfa-factors-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateMFAFactorsPolicy( +Appwrite.Models.Project result = await project.UpdateMFAFactorsPolicy( totp: false, // optional email: false, // optional phone: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-mock-phone.md b/examples/2.3.x/server-dotnet/examples/project/update-mock-phone.md index e2c699e2b..c7f7c82e7 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-mock-phone.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-mock-phone.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -MockNumber result = await project.UpdateMockPhone( +Appwrite.Models.MockNumber result = await project.UpdateMockPhone( number: "+12065550100", otp: "<OTP>" ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-amazon.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-amazon.md index b104edf02..08d858f13 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-amazon.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-amazon.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Amazon result = await project.UpdateOAuth2Amazon( +Appwrite.Models.OAuth2Amazon result = await project.UpdateOAuth2Amazon( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-apple.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-apple.md index aa455efa7..09a03e3a3 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-apple.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-apple.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Apple result = await project.UpdateOAuth2Apple( +Appwrite.Models.OAuth2Apple result = await project.UpdateOAuth2Apple( serviceId: "<SERVICE_ID>", // optional keyId: "<KEY_ID>", // optional teamId: "<TEAM_ID>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md index cb38c52d7..181cd8069 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-appwrite.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Appwrite result = await project.UpdateOAuth2Appwrite( +Appwrite.Models.OAuth2Appwrite result = await project.UpdateOAuth2Appwrite( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-auth-0.md index 081f83231..f9e3c83a6 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-auth-0.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,10 +11,11 @@ Client client = new Client() Project project = new Project(client); -OAuth2Auth0 result = await project.UpdateOAuth2Auth0( +Appwrite.Models.OAuth2Auth0 result = await project.UpdateOAuth2Auth0( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional endpoint: "<ENDPOINT>", // optional + prompt: new List<ProjectOAuth2Auth0Prompt> { ProjectOAuth2Auth0Prompt.None }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-authentik.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-authentik.md index 75107594c..a03f9fc51 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-authentik.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-authentik.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Authentik result = await project.UpdateOAuth2Authentik( +Appwrite.Models.OAuth2Authentik result = await project.UpdateOAuth2Authentik( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional endpoint: "<ENDPOINT>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-autodesk.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-autodesk.md index 836fcc553..074144866 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-autodesk.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-autodesk.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Autodesk result = await project.UpdateOAuth2Autodesk( +Appwrite.Models.OAuth2Autodesk result = await project.UpdateOAuth2Autodesk( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitbucket.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitbucket.md index 6a72900dd..a24936b8e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitbucket.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitbucket.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Bitbucket result = await project.UpdateOAuth2Bitbucket( +Appwrite.Models.OAuth2Bitbucket result = await project.UpdateOAuth2Bitbucket( key: "<KEY>", // optional secret: "<SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitly.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitly.md index f46dd35a6..6d874e425 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitly.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-bitly.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Bitly result = await project.UpdateOAuth2Bitly( +Appwrite.Models.OAuth2Bitly result = await project.UpdateOAuth2Bitly( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-box.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-box.md index 1f331e2cb..55b77479f 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-box.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-box.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Box result = await project.UpdateOAuth2Box( +Appwrite.Models.OAuth2Box result = await project.UpdateOAuth2Box( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-cloudflare.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-cloudflare.md index 2c7fd8099..d2c5b6c7f 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-cloudflare.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-cloudflare.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Cloudflare result = await project.UpdateOAuth2Cloudflare( +Appwrite.Models.OAuth2Cloudflare result = await project.UpdateOAuth2Cloudflare( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dailymotion.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dailymotion.md index 87c2c4785..bdb91bb82 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dailymotion.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dailymotion.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Dailymotion result = await project.UpdateOAuth2Dailymotion( +Appwrite.Models.OAuth2Dailymotion result = await project.UpdateOAuth2Dailymotion( apiKey: "<API_KEY>", // optional apiSecret: "<API_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-discord.md index b6a92dbef..847c1a8ad 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-discord.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,9 +11,10 @@ Client client = new Client() Project project = new Project(client); -OAuth2Discord result = await project.UpdateOAuth2Discord( +Appwrite.Models.OAuth2Discord result = await project.UpdateOAuth2Discord( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: new List<ProjectOAuth2DiscordPrompt> { ProjectOAuth2DiscordPrompt.None }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-disqus.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-disqus.md index a7235621b..7095681a4 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-disqus.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-disqus.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Disqus result = await project.UpdateOAuth2Disqus( +Appwrite.Models.OAuth2Disqus result = await project.UpdateOAuth2Disqus( publicKey: "<PUBLIC_KEY>", // optional secretKey: "<SECRET_KEY>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dropbox.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dropbox.md index 16dd0f995..fcf1b826e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dropbox.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-dropbox.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Dropbox result = await project.UpdateOAuth2Dropbox( +Appwrite.Models.OAuth2Dropbox result = await project.UpdateOAuth2Dropbox( appKey: "<APP_KEY>", // optional appSecret: "<APP_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-etsy.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-etsy.md index 7ffcb53fa..70805c339 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-etsy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-etsy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Etsy result = await project.UpdateOAuth2Etsy( +Appwrite.Models.OAuth2Etsy result = await project.UpdateOAuth2Etsy( keyString: "<KEY_STRING>", // optional sharedSecret: "<SHARED_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-facebook.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-facebook.md index a1549973a..ff6ddbc8e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-facebook.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-facebook.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Facebook result = await project.UpdateOAuth2Facebook( +Appwrite.Models.OAuth2Facebook result = await project.UpdateOAuth2Facebook( appId: "<APP_ID>", // optional appSecret: "<APP_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-figma.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-figma.md index 4c2e8bcd2..2ac8f9eed 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-figma.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-figma.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Figma result = await project.UpdateOAuth2Figma( +Appwrite.Models.OAuth2Figma result = await project.UpdateOAuth2Figma( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-fusion-auth.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-fusion-auth.md index d8515eeab..d21156c23 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-fusion-auth.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-fusion-auth.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2FusionAuth result = await project.UpdateOAuth2FusionAuth( +Appwrite.Models.OAuth2FusionAuth result = await project.UpdateOAuth2FusionAuth( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional endpoint: "<ENDPOINT>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-git-hub.md index f57712e35..fed0b19c9 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-git-hub.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,9 +11,10 @@ Client client = new Client() Project project = new Project(client); -OAuth2Github result = await project.UpdateOAuth2GitHub( +Appwrite.Models.OAuth2Github result = await project.UpdateOAuth2GitHub( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: new List<ProjectOAuth2GitHubPrompt> { ProjectOAuth2GitHubPrompt.SelectAccount }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-gitlab.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-gitlab.md index 169b2ec84..9324d68d2 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-gitlab.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-gitlab.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Gitlab result = await project.UpdateOAuth2Gitlab( +Appwrite.Models.OAuth2Gitlab result = await project.UpdateOAuth2Gitlab( applicationId: "<APPLICATION_ID>", // optional secret: "<SECRET>", // optional endpoint: "https://example.com", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-google.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-google.md index f72b8a6db..e5062c2cb 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-google.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-google.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Google result = await project.UpdateOAuth2Google( +Appwrite.Models.OAuth2Google result = await project.UpdateOAuth2Google( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional prompt: new List<ProjectOAuth2GooglePrompt> { ProjectOAuth2GooglePrompt.None }, // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-hugging-face.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-hugging-face.md index 350640d47..dda17b9fb 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-hugging-face.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-hugging-face.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2HuggingFace result = await project.UpdateOAuth2HuggingFace( +Appwrite.Models.OAuth2HuggingFace result = await project.UpdateOAuth2HuggingFace( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kakao.md index 546e5ac66..f03cdf191 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kakao.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,9 +11,10 @@ Client client = new Client() Project project = new Project(client); -OAuth2Kakao result = await project.UpdateOAuth2Kakao( +Appwrite.Models.OAuth2Kakao result = await project.UpdateOAuth2Kakao( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: new List<ProjectOAuth2KakaoPrompt> { ProjectOAuth2KakaoPrompt.None }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-keycloak.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-keycloak.md index 67b036972..a91d66e13 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-keycloak.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-keycloak.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Keycloak result = await project.UpdateOAuth2Keycloak( +Appwrite.Models.OAuth2Keycloak result = await project.UpdateOAuth2Keycloak( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional endpoint: "<ENDPOINT>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kick.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kick.md index 56cbef852..0d2e6d7b7 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kick.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-kick.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Kick result = await project.UpdateOAuth2Kick( +Appwrite.Models.OAuth2Kick result = await project.UpdateOAuth2Kick( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-linkedin.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-linkedin.md index 72c138421..6f762e0c2 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-linkedin.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-linkedin.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Linkedin result = await project.UpdateOAuth2Linkedin( +Appwrite.Models.OAuth2Linkedin result = await project.UpdateOAuth2Linkedin( clientId: "<CLIENT_ID>", // optional primaryClientSecret: "<PRIMARY_CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-microsoft.md index 8e5afa31b..553630789 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-microsoft.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,10 +11,11 @@ Client client = new Client() Project project = new Project(client); -OAuth2Microsoft result = await project.UpdateOAuth2Microsoft( +Appwrite.Models.OAuth2Microsoft result = await project.UpdateOAuth2Microsoft( applicationId: "<APPLICATION_ID>", // optional applicationSecret: "<APPLICATION_SECRET>", // optional tenant: "<TENANT>", // optional + prompt: new List<ProjectOAuth2MicrosoftPrompt> { ProjectOAuth2MicrosoftPrompt.None }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-notion.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-notion.md index a3cb77633..abcd69307 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-notion.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-notion.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Notion result = await project.UpdateOAuth2Notion( +Appwrite.Models.OAuth2Notion result = await project.UpdateOAuth2Notion( oauthClientId: "<OAUTH_CLIENT_ID>", // optional oauthClientSecret: "<OAUTH_CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-oidc.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-oidc.md index 5abb49326..c85099f25 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-oidc.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-oidc.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Oidc result = await project.UpdateOAuth2Oidc( +Appwrite.Models.OAuth2Oidc result = await project.UpdateOAuth2Oidc( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional wellKnownURL: "https://example.com", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-okta.md index fa2a11515..850b47cac 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-okta.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,11 +11,12 @@ Client client = new Client() Project project = new Project(client); -OAuth2Okta result = await project.UpdateOAuth2Okta( +Appwrite.Models.OAuth2Okta result = await project.UpdateOAuth2Okta( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional domain: "example.com", // optional authorizationServerId: "<AUTHORIZATION_SERVER_ID>", // optional + prompt: new List<ProjectOAuth2OktaPrompt> { ProjectOAuth2OktaPrompt.None }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal-sandbox.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal-sandbox.md index 1cbc8c572..3045dc4f1 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal-sandbox.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal-sandbox.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Paypal result = await project.UpdateOAuth2PaypalSandbox( +Appwrite.Models.OAuth2Paypal result = await project.UpdateOAuth2PaypalSandbox( clientId: "<CLIENT_ID>", // optional secretKey: "<SECRET_KEY>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal.md index 03fc66593..3324c712d 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-paypal.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Paypal result = await project.UpdateOAuth2Paypal( +Appwrite.Models.OAuth2Paypal result = await project.UpdateOAuth2Paypal( clientId: "<CLIENT_ID>", // optional secretKey: "<SECRET_KEY>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-podio.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-podio.md index 9e8b31f6c..f92d37131 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-podio.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-podio.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Podio result = await project.UpdateOAuth2Podio( +Appwrite.Models.OAuth2Podio result = await project.UpdateOAuth2Podio( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-resend.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-resend.md index 3fd799220..81fc6f0d5 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-resend.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-resend.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Resend result = await project.UpdateOAuth2Resend( +Appwrite.Models.OAuth2Resend result = await project.UpdateOAuth2Resend( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-salesforce.md index e4b6629c1..7a1d3d9c5 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-salesforce.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,9 +11,10 @@ Client client = new Client() Project project = new Project(client); -OAuth2Salesforce result = await project.UpdateOAuth2Salesforce( +Appwrite.Models.OAuth2Salesforce result = await project.UpdateOAuth2Salesforce( customerKey: "<CUSTOMER_KEY>", // optional customerSecret: "<CUSTOMER_SECRET>", // optional + prompt: new List<ProjectOAuth2SalesforcePrompt> { ProjectOAuth2SalesforcePrompt.Login }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-server.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-server.md index c43efa264..3b3c2ef8c 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-server.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-server.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateOAuth2Server( +Appwrite.Models.Project result = await project.UpdateOAuth2Server( enabled: false, authorizationUrl: "https://example.com", scopes: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-slack.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-slack.md index 1d7cc149d..fc838191e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-slack.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-slack.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Slack result = await project.UpdateOAuth2Slack( +Appwrite.Models.OAuth2Slack result = await project.UpdateOAuth2Slack( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-spotify.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-spotify.md index 481634e40..d4795540f 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-spotify.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-spotify.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Spotify result = await project.UpdateOAuth2Spotify( +Appwrite.Models.OAuth2Spotify result = await project.UpdateOAuth2Spotify( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-stripe.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-stripe.md index 97ce54a17..382d641e3 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-stripe.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-stripe.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Stripe result = await project.UpdateOAuth2Stripe( +Appwrite.Models.OAuth2Stripe result = await project.UpdateOAuth2Stripe( clientId: "<CLIENT_ID>", // optional apiSecretKey: "<API_SECRET_KEY>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tik-tok.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tik-tok.md index 560c4f54e..b6ac35ca1 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tik-tok.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tik-tok.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2TikTok result = await project.UpdateOAuth2TikTok( +Appwrite.Models.OAuth2TikTok result = await project.UpdateOAuth2TikTok( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift-sandbox.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift-sandbox.md index 72ab7c5a5..8721d213a 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift-sandbox.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift-sandbox.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Tradeshift result = await project.UpdateOAuth2TradeshiftSandbox( +Appwrite.Models.OAuth2Tradeshift result = await project.UpdateOAuth2TradeshiftSandbox( oauth2ClientId: "<OAUTH2_CLIENT_ID>", // optional oauth2ClientSecret: "<OAUTH2_CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift.md index 01edc689f..431b0aa6e 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-tradeshift.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Tradeshift result = await project.UpdateOAuth2Tradeshift( +Appwrite.Models.OAuth2Tradeshift result = await project.UpdateOAuth2Tradeshift( oauth2ClientId: "<OAUTH2_CLIENT_ID>", // optional oauth2ClientSecret: "<OAUTH2_CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-twitch.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-twitch.md index 405b7dc70..843e855ce 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-twitch.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-twitch.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Twitch result = await project.UpdateOAuth2Twitch( +Appwrite.Models.OAuth2Twitch result = await project.UpdateOAuth2Twitch( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..266322f52 --- /dev/null +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,19 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Project project = new Project(client); + +Appwrite.Models.OAuth2Webflow result = await project.UpdateOAuth2Webflow( + clientId: "<CLIENT_ID>", // optional + clientSecret: "<CLIENT_SECRET>", // optional + enabled: false // optional +); + +``` diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-word-press.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-word-press.md index 60bbdfcf9..b381ebee6 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-word-press.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-word-press.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2WordPress result = await project.UpdateOAuth2WordPress( +Appwrite.Models.OAuth2WordPress result = await project.UpdateOAuth2WordPress( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yahoo.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yahoo.md index 127f97867..76bd9ff78 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yahoo.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yahoo.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Yahoo result = await project.UpdateOAuth2Yahoo( +Appwrite.Models.OAuth2Yahoo result = await project.UpdateOAuth2Yahoo( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yandex.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yandex.md index 0fcc0dc76..c9f6a488d 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yandex.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-yandex.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Yandex result = await project.UpdateOAuth2Yandex( +Appwrite.Models.OAuth2Yandex result = await project.UpdateOAuth2Yandex( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoho.md index 6347cb2bb..3a822d5d4 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoho.md @@ -1,5 +1,6 @@ ```csharp using Appwrite; +using Appwrite.Enums; using Appwrite.Models; using Appwrite.Services; @@ -10,9 +11,10 @@ Client client = new Client() Project project = new Project(client); -OAuth2Zoho result = await project.UpdateOAuth2Zoho( +Appwrite.Models.OAuth2Zoho result = await project.UpdateOAuth2Zoho( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: new List<ProjectOAuth2ZohoPrompt> { ProjectOAuth2ZohoPrompt.Consent }, // optional enabled: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoom.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoom.md index 2b9d60dd6..b75d71d0f 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoom.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2-zoom.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2Zoom result = await project.UpdateOAuth2Zoom( +Appwrite.Models.OAuth2Zoom result = await project.UpdateOAuth2Zoom( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2x.md b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2x.md index 01bab1404..e5041a944 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2x.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-o-auth-2x.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -OAuth2X result = await project.UpdateOAuth2X( +Appwrite.Models.OAuth2X result = await project.UpdateOAuth2X( customerKey: "<CUSTOMER_KEY>", // optional secretKey: "<SECRET_KEY>", // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-password-dictionary-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-password-dictionary-policy.md index bfcf1c3d4..f40df719a 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-password-dictionary-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-password-dictionary-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdatePasswordDictionaryPolicy( +Appwrite.Models.Project result = await project.UpdatePasswordDictionaryPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-password-history-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-password-history-policy.md index 838761546..362c30c39 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-password-history-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-password-history-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdatePasswordHistoryPolicy( +Appwrite.Models.Project result = await project.UpdatePasswordHistoryPolicy( total: 1 ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-password-personal-data-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-password-personal-data-policy.md index e79919f28..79d01b5b5 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-password-personal-data-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-password-personal-data-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdatePasswordPersonalDataPolicy( +Appwrite.Models.Project result = await project.UpdatePasswordPersonalDataPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-password-pwned-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-password-pwned-policy.md index 6a23dd029..05a8b9bef 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-password-pwned-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-password-pwned-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdatePasswordPwnedPolicy( +Appwrite.Models.Project result = await project.UpdatePasswordPwnedPolicy( enabled: false, // optional sessions: false, // optional users: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-password-strength-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-password-strength-policy.md index 7edf30509..996393492 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-password-strength-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-password-strength-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PolicyPasswordStrength result = await project.UpdatePasswordStrengthPolicy( +Appwrite.Models.PolicyPasswordStrength result = await project.UpdatePasswordStrengthPolicy( min: 8, // optional uppercase: false, // optional lowercase: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-protocol.md b/examples/2.3.x/server-dotnet/examples/project/update-protocol.md index 9a53240a8..ddb7e8939 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-protocol.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-protocol.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateProtocol( +Appwrite.Models.Project result = await project.UpdateProtocol( protocolId: ProjectProtocolId.Rest, enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-service.md b/examples/2.3.x/server-dotnet/examples/project/update-service.md index 8463028b4..f8a94d349 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-service.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-service.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateService( +Appwrite.Models.Project result = await project.UpdateService( serviceId: ProjectServiceId.Account, enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-session-alert-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-session-alert-policy.md index 247fe3ced..fc5627ef1 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-session-alert-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-session-alert-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateSessionAlertPolicy( +Appwrite.Models.Project result = await project.UpdateSessionAlertPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-session-duration-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-session-duration-policy.md index 1c66cc204..066f964a6 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-session-duration-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-session-duration-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateSessionDurationPolicy( +Appwrite.Models.Project result = await project.UpdateSessionDurationPolicy( duration: 60 ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-session-invalidation-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-session-invalidation-policy.md index e354b471f..3b32e2b3b 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-session-invalidation-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-session-invalidation-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateSessionInvalidationPolicy( +Appwrite.Models.Project result = await project.UpdateSessionInvalidationPolicy( enabled: false ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-session-limit-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-session-limit-policy.md index 11434253c..0837a98c8 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-session-limit-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-session-limit-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateSessionLimitPolicy( +Appwrite.Models.Project result = await project.UpdateSessionLimitPolicy( total: 1 ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-smtp.md b/examples/2.3.x/server-dotnet/examples/project/update-smtp.md index 4af1ceeed..d7ee2caa2 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-smtp.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-smtp.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateSMTP( +Appwrite.Models.Project result = await project.UpdateSMTP( host: "example.com", // optional port: 587, // optional username: "<USERNAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-user-limit-policy.md b/examples/2.3.x/server-dotnet/examples/project/update-user-limit-policy.md index d24957e0c..562ccca41 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-user-limit-policy.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-user-limit-policy.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Project result = await project.UpdateUserLimitPolicy( +Appwrite.Models.Project result = await project.UpdateUserLimitPolicy( total: 0 ); diff --git a/examples/2.3.x/server-dotnet/examples/project/update-variable.md b/examples/2.3.x/server-dotnet/examples/project/update-variable.md index b612ed863..d60e68d69 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-variable.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -Variable result = await project.UpdateVariable( +Appwrite.Models.Variable result = await project.UpdateVariable( variableId: "<VARIABLE_ID>", key: "<KEY>", // optional value: "<VALUE>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/project/update-web-platform.md b/examples/2.3.x/server-dotnet/examples/project/update-web-platform.md index 3d03f26d2..a9686e561 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-web-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-web-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformWeb result = await project.UpdateWebPlatform( +Appwrite.Models.PlatformWeb result = await project.UpdateWebPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", hostname: "app.example.com" diff --git a/examples/2.3.x/server-dotnet/examples/project/update-windows-platform.md b/examples/2.3.x/server-dotnet/examples/project/update-windows-platform.md index 64e219981..ff5190460 100644 --- a/examples/2.3.x/server-dotnet/examples/project/update-windows-platform.md +++ b/examples/2.3.x/server-dotnet/examples/project/update-windows-platform.md @@ -10,7 +10,7 @@ Client client = new Client() Project project = new Project(client); -PlatformWindows result = await project.UpdateWindowsPlatform( +Appwrite.Models.PlatformWindows result = await project.UpdateWindowsPlatform( platformId: "<PLATFORM_ID>", name: "<NAME>", packageIdentifierName: "<PACKAGE_IDENTIFIER_NAME>" diff --git a/examples/2.3.x/server-dotnet/examples/proxy/create-api-rule.md b/examples/2.3.x/server-dotnet/examples/proxy/create-api-rule.md index a5511bd39..2928db878 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/create-api-rule.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/create-api-rule.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.CreateAPIRule( +Appwrite.Models.ProxyRule result = await proxy.CreateAPIRule( domain: "example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/proxy/create-function-rule.md b/examples/2.3.x/server-dotnet/examples/proxy/create-function-rule.md index fe1fd9067..fd275ba15 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/create-function-rule.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/create-function-rule.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.CreateFunctionRule( +Appwrite.Models.ProxyRule result = await proxy.CreateFunctionRule( domain: "example.com", functionId: "<FUNCTION_ID>", branch: "<BRANCH>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/proxy/create-invalidation.md b/examples/2.3.x/server-dotnet/examples/proxy/create-invalidation.md index 0b51ed48f..13a97223d 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/create-invalidation.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/create-invalidation.md @@ -11,7 +11,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyInvalidation result = await proxy.CreateInvalidation( +Appwrite.Models.ProxyInvalidation result = await proxy.CreateInvalidation( domain: "example.com", type: InvalidationType.Tag, reference: "<REFERENCE>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/proxy/create-redirect-rule.md b/examples/2.3.x/server-dotnet/examples/proxy/create-redirect-rule.md index 71ffbefed..62a51ee52 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/create-redirect-rule.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/create-redirect-rule.md @@ -11,7 +11,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.CreateRedirectRule( +Appwrite.Models.ProxyRule result = await proxy.CreateRedirectRule( domain: "example.com", url: "https://example.com", statusCode: StatusCode.MovedPermanently, diff --git a/examples/2.3.x/server-dotnet/examples/proxy/create-site-rule.md b/examples/2.3.x/server-dotnet/examples/proxy/create-site-rule.md index 52b6b60e7..6d8bb07ba 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/create-site-rule.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/create-site-rule.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.CreateSiteRule( +Appwrite.Models.ProxyRule result = await proxy.CreateSiteRule( domain: "example.com", siteId: "<SITE_ID>", branch: "<BRANCH>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/proxy/get-rule.md b/examples/2.3.x/server-dotnet/examples/proxy/get-rule.md index 6834db740..80e8aef52 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/get-rule.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/get-rule.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.GetRule( +Appwrite.Models.ProxyRule result = await proxy.GetRule( ruleId: "<RULE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/proxy/list-rules.md b/examples/2.3.x/server-dotnet/examples/proxy/list-rules.md index 4a962d304..da132346e 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/list-rules.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/list-rules.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRuleList result = await proxy.ListRules( +Appwrite.Models.ProxyRuleList result = await proxy.ListRules( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/proxy/update-rule-status.md b/examples/2.3.x/server-dotnet/examples/proxy/update-rule-status.md index da3efe372..18df55070 100644 --- a/examples/2.3.x/server-dotnet/examples/proxy/update-rule-status.md +++ b/examples/2.3.x/server-dotnet/examples/proxy/update-rule-status.md @@ -10,7 +10,7 @@ Client client = new Client() Proxy proxy = new Proxy(client); -ProxyRule result = await proxy.UpdateRuleStatus( +Appwrite.Models.ProxyRule result = await proxy.UpdateRuleStatus( ruleId: "<RULE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/create-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/create-deployment.md index 61b562686..32fe01eab 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.CreateDeployment( +Appwrite.Models.Deployment result = await sites.CreateDeployment( siteId: "<SITE_ID>", code: InputFile.FromPath("./path-to-files/image.jpg"), installCommand: "<INSTALL_COMMAND>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/create-duplicate-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/create-duplicate-deployment.md index 22c70c1d6..43fd2567f 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create-duplicate-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create-duplicate-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.CreateDuplicateDeployment( +Appwrite.Models.Deployment result = await sites.CreateDuplicateDeployment( siteId: "<SITE_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/create-template-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/create-template-deployment.md index 769fcc1c1..06d424009 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create-template-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create-template-deployment.md @@ -11,7 +11,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.CreateTemplateDeployment( +Appwrite.Models.Deployment result = await sites.CreateTemplateDeployment( siteId: "<SITE_ID>", repository: "<REPOSITORY>", owner: "<OWNER>", diff --git a/examples/2.3.x/server-dotnet/examples/sites/create-variable.md b/examples/2.3.x/server-dotnet/examples/sites/create-variable.md index 9e9d1ef73..d84e24902 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create-variable.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Variable result = await sites.CreateVariable( +Appwrite.Models.Variable result = await sites.CreateVariable( siteId: "<SITE_ID>", variableId: "<VARIABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/sites/create-vcs-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/create-vcs-deployment.md index 42ec3756c..206fd72e5 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create-vcs-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create-vcs-deployment.md @@ -11,7 +11,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.CreateVcsDeployment( +Appwrite.Models.Deployment result = await sites.CreateVcsDeployment( siteId: "<SITE_ID>", type: VCSReferenceType.Branch, reference: "<REFERENCE>", diff --git a/examples/2.3.x/server-dotnet/examples/sites/create.md b/examples/2.3.x/server-dotnet/examples/sites/create.md index 9b2d5b52e..1d6c12391 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/create.md +++ b/examples/2.3.x/server-dotnet/examples/sites/create.md @@ -11,7 +11,7 @@ Client client = new Client() Sites sites = new Sites(client); -Site result = await sites.Create( +Appwrite.Models.Site result = await sites.Create( siteId: "<SITE_ID>", name: "<NAME>", framework: Framework.Analog, diff --git a/examples/2.3.x/server-dotnet/examples/sites/get-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/get-deployment.md index dfd86dfc0..9ada2908f 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/get-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/get-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.GetDeployment( +Appwrite.Models.Deployment result = await sites.GetDeployment( siteId: "<SITE_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/get-log.md b/examples/2.3.x/server-dotnet/examples/sites/get-log.md index caa38be7a..daebb52b2 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/get-log.md +++ b/examples/2.3.x/server-dotnet/examples/sites/get-log.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Execution result = await sites.GetLog( +Appwrite.Models.Execution result = await sites.GetLog( siteId: "<SITE_ID>", logId: "<LOG_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/get-variable.md b/examples/2.3.x/server-dotnet/examples/sites/get-variable.md index 9a68b6615..604c519bf 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/get-variable.md +++ b/examples/2.3.x/server-dotnet/examples/sites/get-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Variable result = await sites.GetVariable( +Appwrite.Models.Variable result = await sites.GetVariable( siteId: "<SITE_ID>", variableId: "<VARIABLE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/get.md b/examples/2.3.x/server-dotnet/examples/sites/get.md index 7c1885cb2..e971b90dc 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/get.md +++ b/examples/2.3.x/server-dotnet/examples/sites/get.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Site result = await sites.Get( +Appwrite.Models.Site result = await sites.Get( siteId: "<SITE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/list-deployments.md b/examples/2.3.x/server-dotnet/examples/sites/list-deployments.md index b25172e26..737333628 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list-deployments.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list-deployments.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -DeploymentList result = await sites.ListDeployments( +Appwrite.Models.DeploymentList result = await sites.ListDeployments( siteId: "<SITE_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/list-frameworks.md b/examples/2.3.x/server-dotnet/examples/sites/list-frameworks.md index 7a3165f9f..80859048e 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list-frameworks.md @@ -10,7 +10,8 @@ Client client = new Client() Sites sites = new Sites(client); -FrameworkList result = await sites.ListFrameworks(); - +Appwrite.Models.FrameworkList result = await sites.ListFrameworks( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-dotnet/examples/sites/list-logs.md b/examples/2.3.x/server-dotnet/examples/sites/list-logs.md index baee6c918..063de9a89 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list-logs.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list-logs.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -ExecutionList result = await sites.ListLogs( +Appwrite.Models.ExecutionList result = await sites.ListLogs( siteId: "<SITE_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/list-specifications.md b/examples/2.3.x/server-dotnet/examples/sites/list-specifications.md index 12d184080..745077ed6 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list-specifications.md @@ -10,8 +10,9 @@ Client client = new Client() Sites sites = new Sites(client); -SpecificationList result = await sites.ListSpecifications( - type: "runtimes" // optional +Appwrite.Models.SpecificationList result = await sites.ListSpecifications( + type: "runtimes", // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/sites/list-variables.md b/examples/2.3.x/server-dotnet/examples/sites/list-variables.md index 8f546817c..55aa3a3c3 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list-variables.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list-variables.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -VariableList result = await sites.ListVariables( +Appwrite.Models.VariableList result = await sites.ListVariables( siteId: "<SITE_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/list.md b/examples/2.3.x/server-dotnet/examples/sites/list.md index 27c4f6594..2bf65b278 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/list.md +++ b/examples/2.3.x/server-dotnet/examples/sites/list.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -SiteList result = await sites.List( +Appwrite.Models.SiteList result = await sites.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/update-deployment-status.md b/examples/2.3.x/server-dotnet/examples/sites/update-deployment-status.md index 0a6bf240c..c4269a932 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/update-deployment-status.md +++ b/examples/2.3.x/server-dotnet/examples/sites/update-deployment-status.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Deployment result = await sites.UpdateDeploymentStatus( +Appwrite.Models.Deployment result = await sites.UpdateDeploymentStatus( siteId: "<SITE_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/update-site-deployment.md b/examples/2.3.x/server-dotnet/examples/sites/update-site-deployment.md index 8633ab7ea..cf3f1a1ec 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/update-site-deployment.md +++ b/examples/2.3.x/server-dotnet/examples/sites/update-site-deployment.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Site result = await sites.UpdateSiteDeployment( +Appwrite.Models.Site result = await sites.UpdateSiteDeployment( siteId: "<SITE_ID>", deploymentId: "<DEPLOYMENT_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/sites/update-variable.md b/examples/2.3.x/server-dotnet/examples/sites/update-variable.md index e7236cef6..7abe9298c 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/update-variable.md +++ b/examples/2.3.x/server-dotnet/examples/sites/update-variable.md @@ -10,7 +10,7 @@ Client client = new Client() Sites sites = new Sites(client); -Variable result = await sites.UpdateVariable( +Appwrite.Models.Variable result = await sites.UpdateVariable( siteId: "<SITE_ID>", variableId: "<VARIABLE_ID>", key: "<KEY>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/sites/update.md b/examples/2.3.x/server-dotnet/examples/sites/update.md index 8c8128411..e258d3837 100644 --- a/examples/2.3.x/server-dotnet/examples/sites/update.md +++ b/examples/2.3.x/server-dotnet/examples/sites/update.md @@ -11,7 +11,7 @@ Client client = new Client() Sites sites = new Sites(client); -Site result = await sites.Update( +Appwrite.Models.Site result = await sites.Update( siteId: "<SITE_ID>", name: "<NAME>", framework: Framework.Analog, diff --git a/examples/2.3.x/server-dotnet/examples/storage/create-bucket.md b/examples/2.3.x/server-dotnet/examples/storage/create-bucket.md index bdbd46a9e..6fc744e0e 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/create-bucket.md +++ b/examples/2.3.x/server-dotnet/examples/storage/create-bucket.md @@ -11,7 +11,7 @@ Client client = new Client() Storage storage = new Storage(client); -Bucket result = await storage.CreateBucket( +Appwrite.Models.Bucket result = await storage.CreateBucket( bucketId: "<BUCKET_ID>", name: "<NAME>", permissions: new List<string> { Permission.Read(Role.Any()) }, // optional diff --git a/examples/2.3.x/server-dotnet/examples/storage/create-file.md b/examples/2.3.x/server-dotnet/examples/storage/create-file.md index 32cbd1d35..98fcc9df8 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/create-file.md +++ b/examples/2.3.x/server-dotnet/examples/storage/create-file.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -File result = await storage.CreateFile( +Appwrite.Models.File result = await storage.CreateFile( bucketId: "<BUCKET_ID>", fileId: "<FILE_ID>", file: InputFile.FromPath("./path-to-files/image.jpg"), diff --git a/examples/2.3.x/server-dotnet/examples/storage/get-bucket.md b/examples/2.3.x/server-dotnet/examples/storage/get-bucket.md index 8c1edda21..5f39e48b5 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/get-bucket.md +++ b/examples/2.3.x/server-dotnet/examples/storage/get-bucket.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -Bucket result = await storage.GetBucket( +Appwrite.Models.Bucket result = await storage.GetBucket( bucketId: "<BUCKET_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/storage/get-file.md b/examples/2.3.x/server-dotnet/examples/storage/get-file.md index 925a7b5d4..a975539a8 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/get-file.md +++ b/examples/2.3.x/server-dotnet/examples/storage/get-file.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -File result = await storage.GetFile( +Appwrite.Models.File result = await storage.GetFile( bucketId: "<BUCKET_ID>", fileId: "<FILE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/storage/list-buckets.md b/examples/2.3.x/server-dotnet/examples/storage/list-buckets.md index df2145676..ad1067d60 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/list-buckets.md +++ b/examples/2.3.x/server-dotnet/examples/storage/list-buckets.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -BucketList result = await storage.ListBuckets( +Appwrite.Models.BucketList result = await storage.ListBuckets( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/storage/list-files.md b/examples/2.3.x/server-dotnet/examples/storage/list-files.md index 756aeb9f9..995a6a319 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/list-files.md +++ b/examples/2.3.x/server-dotnet/examples/storage/list-files.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -FileList result = await storage.ListFiles( +Appwrite.Models.FileList result = await storage.ListFiles( bucketId: "<BUCKET_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/storage/update-bucket.md b/examples/2.3.x/server-dotnet/examples/storage/update-bucket.md index 6e31cb359..043ff8931 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/update-bucket.md +++ b/examples/2.3.x/server-dotnet/examples/storage/update-bucket.md @@ -11,7 +11,7 @@ Client client = new Client() Storage storage = new Storage(client); -Bucket result = await storage.UpdateBucket( +Appwrite.Models.Bucket result = await storage.UpdateBucket( bucketId: "<BUCKET_ID>", name: "<NAME>", permissions: new List<string> { Permission.Read(Role.Any()) }, // optional diff --git a/examples/2.3.x/server-dotnet/examples/storage/update-file.md b/examples/2.3.x/server-dotnet/examples/storage/update-file.md index a2b7013c3..cab60ebdd 100644 --- a/examples/2.3.x/server-dotnet/examples/storage/update-file.md +++ b/examples/2.3.x/server-dotnet/examples/storage/update-file.md @@ -10,7 +10,7 @@ Client client = new Client() Storage storage = new Storage(client); -File result = await storage.UpdateFile( +Appwrite.Models.File result = await storage.UpdateFile( bucketId: "<BUCKET_ID>", fileId: "<FILE_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-big-int-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-big-int-column.md index 9849dc441..54edf9b58 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-big-int-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-big-int-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnBigint result = await tablesDB.CreateBigIntColumn( +Appwrite.Models.ColumnBigint result = await tablesDB.CreateBigIntColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-boolean-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-boolean-column.md index d4d177674..7e21e27de 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-boolean-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-boolean-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnBoolean result = await tablesDB.CreateBooleanColumn( +Appwrite.Models.ColumnBoolean result = await tablesDB.CreateBooleanColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-cutover.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-cutover.md index 522ed9482..5bed5adb6 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-cutover.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-cutover.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseMigration result = await tablesDB.CreateCutover( +Appwrite.Models.DatabaseMigration result = await tablesDB.CreateCutover( databaseId: "<DATABASE_ID>", migrationId: "<MIGRATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-datetime-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-datetime-column.md index 0739c6cfa..0f80c7eb5 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-datetime-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-datetime-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnDatetime result = await tablesDB.CreateDatetimeColumn( +Appwrite.Models.ColumnDatetime result = await tablesDB.CreateDatetimeColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-email-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-email-column.md index b5879ca47..e786773e5 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-email-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-email-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnEmail result = await tablesDB.CreateEmailColumn( +Appwrite.Models.ColumnEmail result = await tablesDB.CreateEmailColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-enum-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-enum-column.md index 7a855e5dd..b9e7c8270 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-enum-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-enum-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnEnum result = await tablesDB.CreateEnumColumn( +Appwrite.Models.ColumnEnum result = await tablesDB.CreateEnumColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-failover.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-failover.md index 8eee23f4d..6b826227b 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DedicatedDatabase result = await tablesDB.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await tablesDB.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-float-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-float-column.md index 8d7293a50..fd75c9840 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-float-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-float-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnFloat result = await tablesDB.CreateFloatColumn( +Appwrite.Models.ColumnFloat result = await tablesDB.CreateFloatColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-index.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-index.md index df5d61e3e..569a8bea9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-index.md @@ -11,12 +11,12 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnIndex result = await tablesDB.CreateIndex( +Appwrite.Models.ColumnIndex result = await tablesDB.CreateIndex( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", type: TablesDBIndexType.Key, - columns: new List<string>(), + columns: ["username"], orders: new List<OrderBy> { OrderBy.Asc }, // optional lengths: new List<long>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-integer-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-integer-column.md index 60ecc4c1a..7f501803f 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-integer-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-integer-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnInteger result = await tablesDB.CreateIntegerColumn( +Appwrite.Models.ColumnInteger result = await tablesDB.CreateIntegerColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-ip-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-ip-column.md index dea6f8a0f..1488a7716 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-ip-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-ip-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnIp result = await tablesDB.CreateIpColumn( +Appwrite.Models.ColumnIp result = await tablesDB.CreateIpColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-line-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-line-column.md index 3f7ae3387..9262eeaf6 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-line-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-line-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnLine result = await tablesDB.CreateLineColumn( +Appwrite.Models.ColumnLine result = await tablesDB.CreateLineColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-longtext-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-longtext-column.md index 7f63f462e..a009fbebe 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-longtext-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-longtext-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnLongtext result = await tablesDB.CreateLongtextColumn( +Appwrite.Models.ColumnLongtext result = await tablesDB.CreateLongtextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-mediumtext-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-mediumtext-column.md index f834cf246..2dc5454e7 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-mediumtext-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-mediumtext-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnMediumtext result = await tablesDB.CreateMediumtextColumn( +Appwrite.Models.ColumnMediumtext result = await tablesDB.CreateMediumtextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-migration.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-migration.md index 863f223c5..3e3c4eb15 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-migration.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-migration.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseMigration result = await tablesDB.CreateMigration( +Appwrite.Models.DatabaseMigration result = await tablesDB.CreateMigration( databaseId: "<DATABASE_ID>", specification: "s-1vcpu-1gb", autoCutover: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-operations.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-operations.md index e7e92df13..41c04dc6c 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-operations.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-operations.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Transaction result = await tablesDB.CreateOperations( +Appwrite.Models.Transaction result = await tablesDB.CreateOperations( transactionId: "<TRANSACTION_ID>", operations: [ { diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-point-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-point-column.md index aa787a482..c27586cb9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-point-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-point-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnPoint result = await tablesDB.CreatePointColumn( +Appwrite.Models.ColumnPoint result = await tablesDB.CreatePointColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-polygon-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-polygon-column.md index c667492ff..6b4ac04dc 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-polygon-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-polygon-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnPolygon result = await tablesDB.CreatePolygonColumn( +Appwrite.Models.ColumnPolygon result = await tablesDB.CreatePolygonColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-relationship-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-relationship-column.md index 2ad3e3659..bfeb4f4f7 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-relationship-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-relationship-column.md @@ -11,7 +11,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnRelationship result = await tablesDB.CreateRelationshipColumn( +Appwrite.Models.ColumnRelationship result = await tablesDB.CreateRelationshipColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", relatedTableId: "<RELATED_TABLE_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-row.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-row.md index 05cbe3ce5..353c92be3 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-row.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-row.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.CreateRow( +Appwrite.Models.Row result = await tablesDB.CreateRow( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-rows.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-rows.md index 868c515a7..f1fd9731a 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-rows.md @@ -10,10 +10,19 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -RowList result = await tablesDB.CreateRows( +Appwrite.Models.RowList result = await tablesDB.CreateRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: new List<object>(), + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-string-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-string-column.md index 70d552835..8b98954b9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-string-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-string-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnString result = await tablesDB.CreateStringColumn( +Appwrite.Models.ColumnString result = await tablesDB.CreateStringColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-table.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-table.md index f7781fc7b..3657fc342 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-table.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-table.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Table result = await tablesDB.CreateTable( +Appwrite.Models.Table result = await tablesDB.CreateTable( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", name: "<NAME>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-text-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-text-column.md index ae046a6ae..860bbd40c 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-text-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-text-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnText result = await tablesDB.CreateTextColumn( +Appwrite.Models.ColumnText result = await tablesDB.CreateTextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-transaction.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-transaction.md index cc3845f05..9d890fbf2 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Transaction result = await tablesDB.CreateTransaction( +Appwrite.Models.Transaction result = await tablesDB.CreateTransaction( ttl: 60 // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-url-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-url-column.md index de79303f9..1ad8c1493 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-url-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-url-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnUrl result = await tablesDB.CreateUrlColumn( +Appwrite.Models.ColumnUrl result = await tablesDB.CreateUrlColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create-varchar-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create-varchar-column.md index 507c8dd4f..d6d9e2d8a 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create-varchar-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create-varchar-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnVarchar result = await tablesDB.CreateVarcharColumn( +Appwrite.Models.ColumnVarchar result = await tablesDB.CreateVarcharColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/create.md b/examples/2.3.x/server-dotnet/examples/tablesdb/create.md index 8175c0eb0..792328788 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/create.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/create.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Database result = await tablesDB.Create( +Appwrite.Models.Database result = await tablesDB.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/decrement-row-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/decrement-row-column.md index c7a970202..92319dbb9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/decrement-row-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/decrement-row-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.DecrementRowColumn( +Appwrite.Models.Row result = await tablesDB.DecrementRowColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-dotnet/examples/tablesdb/delete-rows.md index 1cfdfe72b..428c5c48f 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/delete-rows.md @@ -13,7 +13,7 @@ TablesDB tablesDB = new TablesDB(client); await tablesDB.DeleteRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - queries: new List<string>(), // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], // optional transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-index.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-index.md index 45cb48260..d0747b912 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-index.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-index.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnIndex result = await tablesDB.GetIndex( +Appwrite.Models.ColumnIndex result = await tablesDB.GetIndex( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>" diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-migration.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-migration.md index de4d85e3b..49c9170c0 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-migration.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-migration.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseMigration result = await tablesDB.GetMigration( +Appwrite.Models.DatabaseMigration result = await tablesDB.GetMigration( databaseId: "<DATABASE_ID>", migrationId: "<MIGRATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-replicas.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-replicas.md index 1053522f8..5919bdb11 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DedicatedDatabaseReplicas result = await tablesDB.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await tablesDB.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-row.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-row.md index 83c1f61e9..acae65660 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-row.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-row.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.GetRow( +Appwrite.Models.Row result = await tablesDB.GetRow( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-status.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-status.md index 5cc588fb3..b3c81945f 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseStatus result = await tablesDB.GetStatus( +Appwrite.Models.DatabaseStatus result = await tablesDB.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-table.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-table.md index e5f5c4e45..2844a3883 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-table.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-table.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Table result = await tablesDB.GetTable( +Appwrite.Models.Table result = await tablesDB.GetTable( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get-transaction.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get-transaction.md index 9bfeeb636..5d11d5535 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Transaction result = await tablesDB.GetTransaction( +Appwrite.Models.Transaction result = await tablesDB.GetTransaction( transactionId: "<TRANSACTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/get.md b/examples/2.3.x/server-dotnet/examples/tablesdb/get.md index daa759aba..15c8fd671 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/get.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/get.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Database result = await tablesDB.Get( +Appwrite.Models.Database result = await tablesDB.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/increment-row-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/increment-row-column.md index 16d13fbc7..28533f751 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/increment-row-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/increment-row-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.IncrementRowColumn( +Appwrite.Models.Row result = await tablesDB.IncrementRowColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-columns.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-columns.md index fdb00a25b..01fd5e7db 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-columns.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-columns.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnList result = await tablesDB.ListColumns( +Appwrite.Models.ColumnList result = await tablesDB.ListColumns( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-indexes.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-indexes.md index f2b039a4a..71b61d2f6 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-indexes.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-indexes.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnIndexList result = await tablesDB.ListIndexes( +Appwrite.Models.ColumnIndexList result = await tablesDB.ListIndexes( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-migrations.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-migrations.md index a7b88cb91..7c4cdb6ae 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-migrations.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-migrations.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseMigrationList result = await tablesDB.ListMigrations( +Appwrite.Models.DatabaseMigrationList result = await tablesDB.ListMigrations( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-operations.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-operations.md index daaa28684..e02a93969 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DedicatedDatabaseOperationList result = await tablesDB.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await tablesDB.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-rows.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-rows.md index 66e085fd9..4972902b7 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-rows.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-rows.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -RowList result = await tablesDB.ListRows( +Appwrite.Models.RowList result = await tablesDB.ListRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-specifications.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-specifications.md index 262b9fd3f..1c0779ced 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DedicatedDatabaseSpecificationList result = await tablesDB.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await tablesDB.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-tables.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-tables.md index 89c2e7b52..0de79b37e 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-tables.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-tables.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -TableList result = await tablesDB.ListTables( +Appwrite.Models.TableList result = await tablesDB.ListTables( databaseId: "<DATABASE_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list-transactions.md index 6d7db9ab0..4a9b882a9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list-transactions.md @@ -10,8 +10,9 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -TransactionList result = await tablesDB.ListTransactions( - queries: new List<string>() // optional +Appwrite.Models.TransactionList result = await tablesDB.ListTransactions( + queries: new List<string>(), // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/list.md b/examples/2.3.x/server-dotnet/examples/tablesdb/list.md index 6f0829307..bd25fdfbf 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/list.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/list.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -DatabaseList result = await tablesDB.List( +Appwrite.Models.DatabaseList result = await tablesDB.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-big-int-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-big-int-column.md index 381d02b26..c71e3f186 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-big-int-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-big-int-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnBigint result = await tablesDB.UpdateBigIntColumn( +Appwrite.Models.ColumnBigint result = await tablesDB.UpdateBigIntColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-boolean-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-boolean-column.md index 5f7685ec2..faca887be 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-boolean-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-boolean-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnBoolean result = await tablesDB.UpdateBooleanColumn( +Appwrite.Models.ColumnBoolean result = await tablesDB.UpdateBooleanColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-datetime-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-datetime-column.md index f659279c1..7fbdbae95 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-datetime-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-datetime-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnDatetime result = await tablesDB.UpdateDatetimeColumn( +Appwrite.Models.ColumnDatetime result = await tablesDB.UpdateDatetimeColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-email-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-email-column.md index c8f5d9127..c26eda40f 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-email-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-email-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnEmail result = await tablesDB.UpdateEmailColumn( +Appwrite.Models.ColumnEmail result = await tablesDB.UpdateEmailColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-enum-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-enum-column.md index 404fc413d..b135a8e19 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-enum-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-enum-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnEnum result = await tablesDB.UpdateEnumColumn( +Appwrite.Models.ColumnEnum result = await tablesDB.UpdateEnumColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-float-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-float-column.md index 7983743ea..7e54e7434 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-float-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-float-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnFloat result = await tablesDB.UpdateFloatColumn( +Appwrite.Models.ColumnFloat result = await tablesDB.UpdateFloatColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-integer-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-integer-column.md index 22b8ab205..0b9e3a2a4 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-integer-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-integer-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnInteger result = await tablesDB.UpdateIntegerColumn( +Appwrite.Models.ColumnInteger result = await tablesDB.UpdateIntegerColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-ip-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-ip-column.md index 30a9c595b..9e5c70b3d 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-ip-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-ip-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnIp result = await tablesDB.UpdateIpColumn( +Appwrite.Models.ColumnIp result = await tablesDB.UpdateIpColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-line-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-line-column.md index 91291e3f6..b4345e412 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-line-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-line-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnLine result = await tablesDB.UpdateLineColumn( +Appwrite.Models.ColumnLine result = await tablesDB.UpdateLineColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-longtext-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-longtext-column.md index c240a4965..45835ecd3 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-longtext-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-longtext-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnLongtext result = await tablesDB.UpdateLongtextColumn( +Appwrite.Models.ColumnLongtext result = await tablesDB.UpdateLongtextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-mediumtext-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-mediumtext-column.md index 592d8afac..1d0308151 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-mediumtext-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-mediumtext-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnMediumtext result = await tablesDB.UpdateMediumtextColumn( +Appwrite.Models.ColumnMediumtext result = await tablesDB.UpdateMediumtextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-point-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-point-column.md index 4e2dcc07a..77abccbdb 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-point-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-point-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnPoint result = await tablesDB.UpdatePointColumn( +Appwrite.Models.ColumnPoint result = await tablesDB.UpdatePointColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-polygon-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-polygon-column.md index 5ecd1b806..2ca0f43dd 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-polygon-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-polygon-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnPolygon result = await tablesDB.UpdatePolygonColumn( +Appwrite.Models.ColumnPolygon result = await tablesDB.UpdatePolygonColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-relationship-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-relationship-column.md index 8d75dd0a0..d22ece791 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-relationship-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-relationship-column.md @@ -11,7 +11,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnRelationship result = await tablesDB.UpdateRelationshipColumn( +Appwrite.Models.ColumnRelationship result = await tablesDB.UpdateRelationshipColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-row.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-row.md index 03f71f613..1b5a5a7e9 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-row.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-row.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.UpdateRow( +Appwrite.Models.Row result = await tablesDB.UpdateRow( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-rows.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-rows.md index 9e4c497bd..4e69f0b8d 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-rows.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-rows.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -RowList result = await tablesDB.UpdateRows( +Appwrite.Models.RowList result = await tablesDB.UpdateRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", data: new { diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-string-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-string-column.md index bf0849e2f..eccf91174 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-string-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-string-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnString result = await tablesDB.UpdateStringColumn( +Appwrite.Models.ColumnString result = await tablesDB.UpdateStringColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-table.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-table.md index e7a228214..d3547d917 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-table.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-table.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Table result = await tablesDB.UpdateTable( +Appwrite.Models.Table result = await tablesDB.UpdateTable( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", name: "<NAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-text-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-text-column.md index 0ee26e042..c2f9e0646 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-text-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-text-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnText result = await tablesDB.UpdateTextColumn( +Appwrite.Models.ColumnText result = await tablesDB.UpdateTextColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-transaction.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-transaction.md index 2010f673b..a6e69526d 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Transaction result = await tablesDB.UpdateTransaction( +Appwrite.Models.Transaction result = await tablesDB.UpdateTransaction( transactionId: "<TRANSACTION_ID>", commit: false, // optional rollback: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-url-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-url-column.md index f32ce01a6..c4c3d4d39 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-url-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-url-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnUrl result = await tablesDB.UpdateUrlColumn( +Appwrite.Models.ColumnUrl result = await tablesDB.UpdateUrlColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update-varchar-column.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update-varchar-column.md index 3cd1f9c09..914ddedf0 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update-varchar-column.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update-varchar-column.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -ColumnVarchar result = await tablesDB.UpdateVarcharColumn( +Appwrite.Models.ColumnVarchar result = await tablesDB.UpdateVarcharColumn( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", key: "<KEY>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/update.md b/examples/2.3.x/server-dotnet/examples/tablesdb/update.md index 8b28a996e..009afcdf0 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/update.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/update.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Database result = await tablesDB.Update( +Appwrite.Models.Database result = await tablesDB.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", // optional enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-row.md b/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-row.md index ef38e305a..140e6be0a 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-row.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-row.md @@ -10,7 +10,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -Row result = await tablesDB.UpsertRow( +Appwrite.Models.Row result = await tablesDB.UpsertRow( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", rowId: "<ROW_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-rows.md index 41d3bcd8c..a4809e55f 100644 --- a/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-dotnet/examples/tablesdb/upsert-rows.md @@ -10,10 +10,19 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); -RowList result = await tablesDB.UpsertRows( +Appwrite.Models.RowList result = await tablesDB.UpsertRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: new List<object>(), + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/create-installation.md b/examples/2.3.x/server-dotnet/examples/teams/create-installation.md index 217d0a239..3c64b386e 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/create-installation.md +++ b/examples/2.3.x/server-dotnet/examples/teams/create-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -AppInstallation result = await teams.CreateInstallation( +Appwrite.Models.AppInstallation result = await teams.CreateInstallation( teamId: "<TEAM_ID>", appId: "<APP_ID>", authorizationDetails: "<AUTHORIZATION_DETAILS>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/create-membership.md b/examples/2.3.x/server-dotnet/examples/teams/create-membership.md index 1092050b5..b8a2f4d2f 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/create-membership.md +++ b/examples/2.3.x/server-dotnet/examples/teams/create-membership.md @@ -10,9 +10,9 @@ Client client = new Client() Teams teams = new Teams(client); -Membership result = await teams.CreateMembership( +Appwrite.Models.Membership result = await teams.CreateMembership( teamId: "<TEAM_ID>", - roles: new List<string>(), + roles: ["editor"], email: "email@example.com", // optional userId: "<USER_ID>", // optional phone: "+12065550100", // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/create.md b/examples/2.3.x/server-dotnet/examples/teams/create.md index fdc1e09cb..e98326468 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/create.md +++ b/examples/2.3.x/server-dotnet/examples/teams/create.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Team result = await teams.Create( +Appwrite.Models.Team result = await teams.Create( teamId: "<TEAM_ID>", name: "<NAME>", roles: new List<string>() // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/get-installation.md b/examples/2.3.x/server-dotnet/examples/teams/get-installation.md index e23c47819..823874423 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/get-installation.md +++ b/examples/2.3.x/server-dotnet/examples/teams/get-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -AppInstallation result = await teams.GetInstallation( +Appwrite.Models.AppInstallation result = await teams.GetInstallation( teamId: "<TEAM_ID>", installationId: "<INSTALLATION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/get-membership.md b/examples/2.3.x/server-dotnet/examples/teams/get-membership.md index f359df1a6..dff88aa99 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/get-membership.md +++ b/examples/2.3.x/server-dotnet/examples/teams/get-membership.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Membership result = await teams.GetMembership( +Appwrite.Models.Membership result = await teams.GetMembership( teamId: "<TEAM_ID>", membershipId: "<MEMBERSHIP_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/get-prefs.md b/examples/2.3.x/server-dotnet/examples/teams/get-prefs.md index 95a8c2880..a1b408d27 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/get-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/teams/get-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Preferences result = await teams.GetPrefs( +Appwrite.Models.Preferences result = await teams.GetPrefs( teamId: "<TEAM_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/get.md b/examples/2.3.x/server-dotnet/examples/teams/get.md index 900d932d5..d93d5fdca 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/get.md +++ b/examples/2.3.x/server-dotnet/examples/teams/get.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Team result = await teams.Get( +Appwrite.Models.Team result = await teams.Get( teamId: "<TEAM_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/list-installations.md b/examples/2.3.x/server-dotnet/examples/teams/list-installations.md index 133f4278b..3c8ff9c30 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/list-installations.md +++ b/examples/2.3.x/server-dotnet/examples/teams/list-installations.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -AppInstallationList result = await teams.ListInstallations( +Appwrite.Models.AppInstallationList result = await teams.ListInstallations( teamId: "<TEAM_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/list-memberships.md b/examples/2.3.x/server-dotnet/examples/teams/list-memberships.md index 64c25747f..bd070ae77 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/list-memberships.md +++ b/examples/2.3.x/server-dotnet/examples/teams/list-memberships.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -MembershipList result = await teams.ListMemberships( +Appwrite.Models.MembershipList result = await teams.ListMemberships( teamId: "<TEAM_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/list.md b/examples/2.3.x/server-dotnet/examples/teams/list.md index 571c86634..f52c61c54 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/list.md +++ b/examples/2.3.x/server-dotnet/examples/teams/list.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -TeamList result = await teams.List( +Appwrite.Models.TeamList result = await teams.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/update-installation.md b/examples/2.3.x/server-dotnet/examples/teams/update-installation.md index 7fa98101e..57913d698 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/update-installation.md +++ b/examples/2.3.x/server-dotnet/examples/teams/update-installation.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -AppInstallation result = await teams.UpdateInstallation( +Appwrite.Models.AppInstallation result = await teams.UpdateInstallation( teamId: "<TEAM_ID>", installationId: "<INSTALLATION_ID>", authorizationDetails: "<AUTHORIZATION_DETAILS>" // optional diff --git a/examples/2.3.x/server-dotnet/examples/teams/update-membership-status.md b/examples/2.3.x/server-dotnet/examples/teams/update-membership-status.md index 1f172dab3..ee4b89714 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/update-membership-status.md +++ b/examples/2.3.x/server-dotnet/examples/teams/update-membership-status.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Membership result = await teams.UpdateMembershipStatus( +Appwrite.Models.Membership result = await teams.UpdateMembershipStatus( teamId: "<TEAM_ID>", membershipId: "<MEMBERSHIP_ID>", userId: "<USER_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/teams/update-membership.md b/examples/2.3.x/server-dotnet/examples/teams/update-membership.md index ff4ad455e..64c95d630 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/update-membership.md +++ b/examples/2.3.x/server-dotnet/examples/teams/update-membership.md @@ -10,10 +10,10 @@ Client client = new Client() Teams teams = new Teams(client); -Membership result = await teams.UpdateMembership( +Appwrite.Models.Membership result = await teams.UpdateMembership( teamId: "<TEAM_ID>", membershipId: "<MEMBERSHIP_ID>", - roles: new List<string>() + roles: ["editor"] ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/teams/update-name.md b/examples/2.3.x/server-dotnet/examples/teams/update-name.md index 6f42ce5cb..776b38b74 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/update-name.md +++ b/examples/2.3.x/server-dotnet/examples/teams/update-name.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Team result = await teams.UpdateName( +Appwrite.Models.Team result = await teams.UpdateName( teamId: "<TEAM_ID>", name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/teams/update-prefs.md b/examples/2.3.x/server-dotnet/examples/teams/update-prefs.md index b2dbac7ac..698f669ab 100644 --- a/examples/2.3.x/server-dotnet/examples/teams/update-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/teams/update-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Teams teams = new Teams(client); -Preferences result = await teams.UpdatePrefs( +Appwrite.Models.Preferences result = await teams.UpdatePrefs( teamId: "<TEAM_ID>", prefs: [object] ); diff --git a/examples/2.3.x/server-dotnet/examples/tokens/create-file-token.md b/examples/2.3.x/server-dotnet/examples/tokens/create-file-token.md index baf4c376e..04053fe9b 100644 --- a/examples/2.3.x/server-dotnet/examples/tokens/create-file-token.md +++ b/examples/2.3.x/server-dotnet/examples/tokens/create-file-token.md @@ -10,7 +10,7 @@ Client client = new Client() Tokens tokens = new Tokens(client); -ResourceToken result = await tokens.CreateFileToken( +Appwrite.Models.ResourceToken result = await tokens.CreateFileToken( bucketId: "<BUCKET_ID>", fileId: "<FILE_ID>", expire: "2020-10-15T06:38:00.000+00:00" // optional diff --git a/examples/2.3.x/server-dotnet/examples/tokens/get.md b/examples/2.3.x/server-dotnet/examples/tokens/get.md index 5466ae879..6884921bf 100644 --- a/examples/2.3.x/server-dotnet/examples/tokens/get.md +++ b/examples/2.3.x/server-dotnet/examples/tokens/get.md @@ -10,7 +10,7 @@ Client client = new Client() Tokens tokens = new Tokens(client); -ResourceToken result = await tokens.Get( +Appwrite.Models.ResourceToken result = await tokens.Get( tokenId: "<TOKEN_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/tokens/list.md b/examples/2.3.x/server-dotnet/examples/tokens/list.md index 45e027d49..bd9476d95 100644 --- a/examples/2.3.x/server-dotnet/examples/tokens/list.md +++ b/examples/2.3.x/server-dotnet/examples/tokens/list.md @@ -10,7 +10,7 @@ Client client = new Client() Tokens tokens = new Tokens(client); -ResourceTokenList result = await tokens.List( +Appwrite.Models.ResourceTokenList result = await tokens.List( bucketId: "<BUCKET_ID>", fileId: "<FILE_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/tokens/update.md b/examples/2.3.x/server-dotnet/examples/tokens/update.md index 041dce974..67d0f3bd9 100644 --- a/examples/2.3.x/server-dotnet/examples/tokens/update.md +++ b/examples/2.3.x/server-dotnet/examples/tokens/update.md @@ -10,7 +10,7 @@ Client client = new Client() Tokens tokens = new Tokens(client); -ResourceToken result = await tokens.Update( +Appwrite.Models.ResourceToken result = await tokens.Update( tokenId: "<TOKEN_ID>", expire: "2020-10-15T06:38:00.000+00:00" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/users/create-argon-2-user.md b/examples/2.3.x/server-dotnet/examples/users/create-argon-2-user.md index 6c4ba6355..88d448431 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-argon-2-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-argon-2-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateArgon2User( +Appwrite.Models.User result = await users.CreateArgon2User( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-bcrypt-user.md b/examples/2.3.x/server-dotnet/examples/users/create-bcrypt-user.md index d4a70e5bd..d32cff5fd 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-bcrypt-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-bcrypt-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateBcryptUser( +Appwrite.Models.User result = await users.CreateBcryptUser( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-jwt.md b/examples/2.3.x/server-dotnet/examples/users/create-jwt.md index 0841f4eaf..890bab426 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-jwt.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-jwt.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -JWT result = await users.CreateJWT( +Appwrite.Models.JWT result = await users.CreateJWT( userId: "<USER_ID>", sessionId: "recent()", // optional duration: 0 // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/create-md-5-user.md b/examples/2.3.x/server-dotnet/examples/users/create-md-5-user.md index 268257113..6f3c8eae3 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-md-5-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-md-5-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateMD5User( +Appwrite.Models.User result = await users.CreateMD5User( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/users/create-mfa-recovery-codes.md index 02a34ab97..901ba3fb6 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MfaRecoveryCodes result = await users.CreateMFARecoveryCodes( +Appwrite.Models.MfaRecoveryCodes result = await users.CreateMFARecoveryCodes( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/create-ph-pass-user.md b/examples/2.3.x/server-dotnet/examples/users/create-ph-pass-user.md index efcc9f273..77ebe01b0 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-ph-pass-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-ph-pass-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreatePHPassUser( +Appwrite.Models.User result = await users.CreatePHPassUser( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-scrypt-modified-user.md b/examples/2.3.x/server-dotnet/examples/users/create-scrypt-modified-user.md index 687282b20..8b3becb8c 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-scrypt-modified-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-scrypt-modified-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateScryptModifiedUser( +Appwrite.Models.User result = await users.CreateScryptModifiedUser( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-scrypt-user.md b/examples/2.3.x/server-dotnet/examples/users/create-scrypt-user.md index ee7e61a12..1560c7be8 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-scrypt-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-scrypt-user.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateScryptUser( +Appwrite.Models.User result = await users.CreateScryptUser( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-session.md b/examples/2.3.x/server-dotnet/examples/users/create-session.md index 5ca7121fb..03c23a0ea 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-session.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-session.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Session result = await users.CreateSession( +Appwrite.Models.Session result = await users.CreateSession( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/create-sha-user.md b/examples/2.3.x/server-dotnet/examples/users/create-sha-user.md index 8dd3a160c..dcb8f750d 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-sha-user.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-sha-user.md @@ -11,7 +11,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.CreateSHAUser( +Appwrite.Models.User result = await users.CreateSHAUser( userId: "<USER_ID>", email: "email@example.com", password: "password", diff --git a/examples/2.3.x/server-dotnet/examples/users/create-target.md b/examples/2.3.x/server-dotnet/examples/users/create-target.md index 281996df0..aaccc3654 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-target.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-target.md @@ -11,7 +11,7 @@ Client client = new Client() Users users = new Users(client); -Target result = await users.CreateTarget( +Appwrite.Models.Target result = await users.CreateTarget( userId: "<USER_ID>", targetId: "<TARGET_ID>", providerType: MessagingProviderType.Email, diff --git a/examples/2.3.x/server-dotnet/examples/users/create-token.md b/examples/2.3.x/server-dotnet/examples/users/create-token.md index 3d9293469..1cf1954f2 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create-token.md +++ b/examples/2.3.x/server-dotnet/examples/users/create-token.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Token result = await users.CreateToken( +Appwrite.Models.Token result = await users.CreateToken( userId: "<USER_ID>", length: 4, // optional expire: 60 // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/create.md b/examples/2.3.x/server-dotnet/examples/users/create.md index fb2a8095a..b29233f8b 100644 --- a/examples/2.3.x/server-dotnet/examples/users/create.md +++ b/examples/2.3.x/server-dotnet/examples/users/create.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.Create( +Appwrite.Models.User result = await users.Create( userId: "<USER_ID>", email: "email@example.com", // optional phone: "+12065550100", // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/get-mfa-challenge.md b/examples/2.3.x/server-dotnet/examples/users/get-mfa-challenge.md index 98f2131b3..0562758d8 100644 --- a/examples/2.3.x/server-dotnet/examples/users/get-mfa-challenge.md +++ b/examples/2.3.x/server-dotnet/examples/users/get-mfa-challenge.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MfaChallengeSecret result = await users.GetMFAChallenge( +Appwrite.Models.MfaChallengeSecret result = await users.GetMFAChallenge( userId: "<USER_ID>", challengeId: "<CHALLENGE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/get-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/users/get-mfa-recovery-codes.md index b2c1e98a1..e26e67037 100644 --- a/examples/2.3.x/server-dotnet/examples/users/get-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/users/get-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MfaRecoveryCodes result = await users.GetMFARecoveryCodes( +Appwrite.Models.MfaRecoveryCodes result = await users.GetMFARecoveryCodes( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/get-prefs.md b/examples/2.3.x/server-dotnet/examples/users/get-prefs.md index 70f55411f..e6a0784cf 100644 --- a/examples/2.3.x/server-dotnet/examples/users/get-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/users/get-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Preferences result = await users.GetPrefs( +Appwrite.Models.Preferences result = await users.GetPrefs( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/get-target.md b/examples/2.3.x/server-dotnet/examples/users/get-target.md index 3011e5699..65f3eca6f 100644 --- a/examples/2.3.x/server-dotnet/examples/users/get-target.md +++ b/examples/2.3.x/server-dotnet/examples/users/get-target.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Target result = await users.GetTarget( +Appwrite.Models.Target result = await users.GetTarget( userId: "<USER_ID>", targetId: "<TARGET_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/get.md b/examples/2.3.x/server-dotnet/examples/users/get.md index 047ed83cb..69c184414 100644 --- a/examples/2.3.x/server-dotnet/examples/users/get.md +++ b/examples/2.3.x/server-dotnet/examples/users/get.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.Get( +Appwrite.Models.User result = await users.Get( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/list-identities.md b/examples/2.3.x/server-dotnet/examples/users/list-identities.md index 08ee96bdb..d5a501a9d 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list-identities.md +++ b/examples/2.3.x/server-dotnet/examples/users/list-identities.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -IdentityList result = await users.ListIdentities( +Appwrite.Models.IdentityList result = await users.ListIdentities( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/list-memberships.md b/examples/2.3.x/server-dotnet/examples/users/list-memberships.md index ad3e77a29..ddac4f9d7 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list-memberships.md +++ b/examples/2.3.x/server-dotnet/examples/users/list-memberships.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MembershipList result = await users.ListMemberships( +Appwrite.Models.MembershipList result = await users.ListMemberships( userId: "<USER_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/list-mfa-factors.md b/examples/2.3.x/server-dotnet/examples/users/list-mfa-factors.md index c1f7365e8..4522f6308 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list-mfa-factors.md +++ b/examples/2.3.x/server-dotnet/examples/users/list-mfa-factors.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MfaFactors result = await users.ListMFAFactors( +Appwrite.Models.MfaFactors result = await users.ListMFAFactors( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/list-sessions.md b/examples/2.3.x/server-dotnet/examples/users/list-sessions.md index 495939567..1a0510bb4 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list-sessions.md +++ b/examples/2.3.x/server-dotnet/examples/users/list-sessions.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -SessionList result = await users.ListSessions( +Appwrite.Models.SessionList result = await users.ListSessions( userId: "<USER_ID>", total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/users/list-targets.md b/examples/2.3.x/server-dotnet/examples/users/list-targets.md index d867b06f0..3e0c0084b 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list-targets.md +++ b/examples/2.3.x/server-dotnet/examples/users/list-targets.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -TargetList result = await users.ListTargets( +Appwrite.Models.TargetList result = await users.ListTargets( userId: "<USER_ID>", queries: new List<string>(), // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/list.md b/examples/2.3.x/server-dotnet/examples/users/list.md index 8f0ad9d5e..e4ecf8c9c 100644 --- a/examples/2.3.x/server-dotnet/examples/users/list.md +++ b/examples/2.3.x/server-dotnet/examples/users/list.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -UserList result = await users.List( +Appwrite.Models.UserList result = await users.List( queries: new List<string>(), // optional search: "<SEARCH>", // optional total: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/users/update-email-verification.md b/examples/2.3.x/server-dotnet/examples/users/update-email-verification.md index 0f6233c38..886722b11 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-email-verification.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-email-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateEmailVerification( +Appwrite.Models.User result = await users.UpdateEmailVerification( userId: "<USER_ID>", emailVerification: false ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-email.md b/examples/2.3.x/server-dotnet/examples/users/update-email.md index be7bc521e..4a90b7e58 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-email.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-email.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateEmail( +Appwrite.Models.User result = await users.UpdateEmail( userId: "<USER_ID>", email: "email@example.com" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-impersonator.md b/examples/2.3.x/server-dotnet/examples/users/update-impersonator.md index 91d94e783..afdad7ffb 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-impersonator.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-impersonator.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateImpersonator( +Appwrite.Models.User result = await users.UpdateImpersonator( userId: "<USER_ID>", impersonator: false ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-labels.md b/examples/2.3.x/server-dotnet/examples/users/update-labels.md index f6c0b5547..e02a14e9b 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-labels.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-labels.md @@ -10,9 +10,9 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateLabels( +Appwrite.Models.User result = await users.UpdateLabels( userId: "<USER_ID>", - labels: new List<string>() + labels: ["subscriber"] ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/users/update-mfa-recovery-codes.md b/examples/2.3.x/server-dotnet/examples/users/update-mfa-recovery-codes.md index 78018690d..24dbd92fe 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-mfa-recovery-codes.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-mfa-recovery-codes.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -MfaRecoveryCodes result = await users.UpdateMFARecoveryCodes( +Appwrite.Models.MfaRecoveryCodes result = await users.UpdateMFARecoveryCodes( userId: "<USER_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-mfa.md b/examples/2.3.x/server-dotnet/examples/users/update-mfa.md index 4e51f9f1d..e5ae2daab 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-mfa.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-mfa.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateMFA( +Appwrite.Models.User result = await users.UpdateMFA( userId: "<USER_ID>", mfa: false ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-name.md b/examples/2.3.x/server-dotnet/examples/users/update-name.md index 4a58aa860..e5b84cd56 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-name.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-name.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateName( +Appwrite.Models.User result = await users.UpdateName( userId: "<USER_ID>", name: "<NAME>" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-password.md b/examples/2.3.x/server-dotnet/examples/users/update-password.md index 4306cd73b..d9f355cc4 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-password.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-password.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdatePassword( +Appwrite.Models.User result = await users.UpdatePassword( userId: "<USER_ID>", password: "password" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-phone-verification.md b/examples/2.3.x/server-dotnet/examples/users/update-phone-verification.md index 81fedf8a7..a0c73561f 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-phone-verification.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-phone-verification.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdatePhoneVerification( +Appwrite.Models.User result = await users.UpdatePhoneVerification( userId: "<USER_ID>", phoneVerification: false ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-phone.md b/examples/2.3.x/server-dotnet/examples/users/update-phone.md index de2a0723b..fdcb6a738 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-phone.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-phone.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdatePhone( +Appwrite.Models.User result = await users.UpdatePhone( userId: "<USER_ID>", number: "+12065550100" ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-prefs.md b/examples/2.3.x/server-dotnet/examples/users/update-prefs.md index db20bfc80..a4a6498ee 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-prefs.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-prefs.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Preferences result = await users.UpdatePrefs( +Appwrite.Models.Preferences result = await users.UpdatePrefs( userId: "<USER_ID>", prefs: [object] ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-status.md b/examples/2.3.x/server-dotnet/examples/users/update-status.md index bd9f4839c..1e4b2393c 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-status.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-status.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -User result = await users.UpdateStatus( +Appwrite.Models.User result = await users.UpdateStatus( userId: "<USER_ID>", status: false ); diff --git a/examples/2.3.x/server-dotnet/examples/users/update-target.md b/examples/2.3.x/server-dotnet/examples/users/update-target.md index a2c184191..e6436b80f 100644 --- a/examples/2.3.x/server-dotnet/examples/users/update-target.md +++ b/examples/2.3.x/server-dotnet/examples/users/update-target.md @@ -10,7 +10,7 @@ Client client = new Client() Users users = new Users(client); -Target result = await users.UpdateTarget( +Appwrite.Models.Target result = await users.UpdateTarget( userId: "<USER_ID>", targetId: "<TARGET_ID>", identifier: "<IDENTIFIER>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-collection.md index b0cebcd40..4d7f5327b 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-collection.md @@ -10,11 +10,11 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -VectorsdbCollection result = await vectorsDB.CreateCollection( +Appwrite.Models.VectorsdbCollection result = await vectorsDB.CreateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, + dimension: 4, permissions: new List<string> { Permission.Read(Role.Any()) }, // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-document.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-document.md index 54260d78d..c197e8a9e 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-document.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-document.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Document result = await vectorsDB.CreateDocument( +Appwrite.Models.Document result = await vectorsDB.CreateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-documents.md index af00ea000..39ba7fb3b 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-documents.md @@ -10,10 +10,23 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DocumentList result = await vectorsDB.CreateDocuments( +Appwrite.Models.DocumentList result = await vectorsDB.CreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-failover.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-failover.md index dd50d8dc7..169af8eed 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-failover.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-failover.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DedicatedDatabase result = await vectorsDB.CreateFailover( +Appwrite.Models.DedicatedDatabase result = await vectorsDB.CreateFailover( databaseId: "<DATABASE_ID>", targetReplicaId: "<TARGET_REPLICA_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-index.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-index.md index 5adac04cf..9e8032266 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-index.md @@ -11,12 +11,12 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Index result = await vectorsDB.CreateIndex( +Appwrite.Models.Index result = await vectorsDB.CreateIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>", type: VectorsDBIndexType.HnswEuclidean, - attributes: new List<string>(), + attributes: ["embeddings"], orders: new List<OrderBy> { OrderBy.Asc }, // optional lengths: new List<long>() // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-operations.md index 346c7d247..0aea2b5db 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-operations.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Transaction result = await vectorsDB.CreateOperations( +Appwrite.Models.Transaction result = await vectorsDB.CreateOperations( transactionId: "<TRANSACTION_ID>", operations: [ { @@ -19,7 +19,15 @@ Transaction result = await vectorsDB.CreateOperations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-query.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-query.md index bcc28eda4..b09e0fa77 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-query.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-query.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DocumentList result = await vectorsDB.CreateQuery( +Appwrite.Models.DocumentList result = await vectorsDB.CreateQuery( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-transaction.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-transaction.md index 133e6bbdd..27cdbacf8 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Transaction result = await vectorsDB.CreateTransaction( +Appwrite.Models.Transaction result = await vectorsDB.CreateTransaction( ttl: 60 // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/create.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/create.md index 5ef6db08e..8783086b0 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/create.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/create.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Database result = await vectorsDB.Create( +Appwrite.Models.Database result = await vectorsDB.Create( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/delete-documents.md index e7d21a4ba..3a75c78ab 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/delete-documents.md @@ -13,7 +13,7 @@ VectorsDB vectorsDB = new VectorsDB(client); await vectorsDB.DeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: new List<string>(), // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-collection.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-collection.md index 9111b7403..b0970dd7b 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-collection.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-collection.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -VectorsdbCollection result = await vectorsDB.GetCollection( +Appwrite.Models.VectorsdbCollection result = await vectorsDB.GetCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-document.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-document.md index 98762a930..9c8388940 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-document.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-document.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Document result = await vectorsDB.GetDocument( +Appwrite.Models.Document result = await vectorsDB.GetDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-index.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-index.md index 6c2d1dfb4..3030531f9 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-index.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-index.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Index result = await vectorsDB.GetIndex( +Appwrite.Models.Index result = await vectorsDB.GetIndex( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", key: "<KEY>" diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-replicas.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-replicas.md index b1a849f37..e00254835 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-replicas.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-replicas.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DedicatedDatabaseReplicas result = await vectorsDB.GetReplicas( +Appwrite.Models.DedicatedDatabaseReplicas result = await vectorsDB.GetReplicas( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-status.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-status.md index e019656db..5295da9e6 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-status.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-status.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DatabaseStatus result = await vectorsDB.GetStatus( +Appwrite.Models.DatabaseStatus result = await vectorsDB.GetStatus( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-transaction.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-transaction.md index 4cd0b3fdd..382e02c31 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Transaction result = await vectorsDB.GetTransaction( +Appwrite.Models.Transaction result = await vectorsDB.GetTransaction( transactionId: "<TRANSACTION_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/get.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/get.md index 5b605e57c..e7725971f 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/get.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/get.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Database result = await vectorsDB.Get( +Appwrite.Models.Database result = await vectorsDB.Get( databaseId: "<DATABASE_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-collections.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-collections.md index 5e9f2737c..b69869327 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-collections.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-collections.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -VectorsdbCollectionList result = await vectorsDB.ListCollections( +Appwrite.Models.VectorsdbCollectionList result = await vectorsDB.ListCollections( databaseId: "<DATABASE_ID>", queries: new List<string>(), // optional search: "<SEARCH>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-documents.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-documents.md index 934116732..64405f469 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-documents.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-documents.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DocumentList result = await vectorsDB.ListDocuments( +Appwrite.Models.DocumentList result = await vectorsDB.ListDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-indexes.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-indexes.md index acf0af7a4..accc8dee7 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-indexes.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-indexes.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -IndexList result = await vectorsDB.ListIndexes( +Appwrite.Models.IndexList result = await vectorsDB.ListIndexes( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", queries: new List<string>(), // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-operations.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-operations.md index 90a4327fc..7d700454b 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-operations.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-operations.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DedicatedDatabaseOperationList result = await vectorsDB.ListOperations( +Appwrite.Models.DedicatedDatabaseOperationList result = await vectorsDB.ListOperations( databaseId: "<DATABASE_ID>", status: "queued", // optional limit: 1, // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-specifications.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-specifications.md index 652d23243..906b8bfd6 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-specifications.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-specifications.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DedicatedDatabaseSpecificationList result = await vectorsDB.ListSpecifications(); +Appwrite.Models.DedicatedDatabaseSpecificationList result = await vectorsDB.ListSpecifications(); ``` diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-transactions.md index 54ada0e63..11b1323b3 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list-transactions.md @@ -10,8 +10,9 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -TransactionList result = await vectorsDB.ListTransactions( - queries: new List<string>() // optional +Appwrite.Models.TransactionList result = await vectorsDB.ListTransactions( + queries: new List<string>(), // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/list.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/list.md index f2c0e930b..ca952fa8a 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/list.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/list.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DatabaseList result = await vectorsDB.List( +Appwrite.Models.DatabaseList result = await vectorsDB.List( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-collection.md index bcadbda24..dad4b3117 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-collection.md @@ -10,11 +10,11 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -VectorsdbCollection result = await vectorsDB.UpdateCollection( +Appwrite.Models.VectorsdbCollection result = await vectorsDB.UpdateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, // optional + dimension: 4, // optional permissions: new List<string> { Permission.Read(Role.Any()) }, // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-document.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-document.md index d1d0d0788..232f5d449 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-document.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-document.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Document result = await vectorsDB.UpdateDocument( +Appwrite.Models.Document result = await vectorsDB.UpdateDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-documents.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-documents.md index 5833aac17..71f5d50f2 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-documents.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-documents.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DocumentList result = await vectorsDB.UpdateDocuments( +Appwrite.Models.DocumentList result = await vectorsDB.UpdateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", data: [object], // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-transaction.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-transaction.md index 65320cc2f..3f747a230 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/update-transaction.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/update-transaction.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Transaction result = await vectorsDB.UpdateTransaction( +Appwrite.Models.Transaction result = await vectorsDB.UpdateTransaction( transactionId: "<TRANSACTION_ID>", commit: false, // optional rollback: false // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/update.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/update.md index c8184ece5..f55aa6d38 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/update.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/update.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Database result = await vectorsDB.Update( +Appwrite.Models.Database result = await vectorsDB.Update( databaseId: "<DATABASE_ID>", name: "<NAME>", enabled: false, // optional diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-document.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-document.md index edb18673b..ccd995c6c 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-document.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-document.md @@ -10,7 +10,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -Document result = await vectorsDB.UpsertDocument( +Appwrite.Models.Document result = await vectorsDB.UpsertDocument( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", documentId: "<DOCUMENT_ID>", diff --git a/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-documents.md index d9209fd9a..b466b0878 100644 --- a/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-dotnet/examples/vectorsdb/upsert-documents.md @@ -10,10 +10,23 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); -DocumentList result = await vectorsDB.UpsertDocuments( +Appwrite.Models.DocumentList result = await vectorsDB.UpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: new List<object>(), + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: "<TRANSACTION_ID>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/webhooks/create.md b/examples/2.3.x/server-dotnet/examples/webhooks/create.md index 28a5222fe..6956a490c 100644 --- a/examples/2.3.x/server-dotnet/examples/webhooks/create.md +++ b/examples/2.3.x/server-dotnet/examples/webhooks/create.md @@ -10,11 +10,11 @@ Client client = new Client() Webhooks webhooks = new Webhooks(client); -Webhook result = await webhooks.Create( +Appwrite.Models.Webhook result = await webhooks.Create( webhookId: "<WEBHOOK_ID>", url: "https://example.com/webhook", name: "<NAME>", - events: new List<string>(), + events: ["users.*.create"], enabled: false, // optional tls: false, // optional authUsername: "<AUTH_USERNAME>", // optional diff --git a/examples/2.3.x/server-dotnet/examples/webhooks/get.md b/examples/2.3.x/server-dotnet/examples/webhooks/get.md index 2b6ce7dd3..ab24d06aa 100644 --- a/examples/2.3.x/server-dotnet/examples/webhooks/get.md +++ b/examples/2.3.x/server-dotnet/examples/webhooks/get.md @@ -10,7 +10,7 @@ Client client = new Client() Webhooks webhooks = new Webhooks(client); -Webhook result = await webhooks.Get( +Appwrite.Models.Webhook result = await webhooks.Get( webhookId: "<WEBHOOK_ID>" ); diff --git a/examples/2.3.x/server-dotnet/examples/webhooks/list.md b/examples/2.3.x/server-dotnet/examples/webhooks/list.md index c8c4b065c..ef7d24029 100644 --- a/examples/2.3.x/server-dotnet/examples/webhooks/list.md +++ b/examples/2.3.x/server-dotnet/examples/webhooks/list.md @@ -10,7 +10,7 @@ Client client = new Client() Webhooks webhooks = new Webhooks(client); -WebhookList result = await webhooks.List( +Appwrite.Models.WebhookList result = await webhooks.List( queries: new List<string>(), // optional total: false // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/webhooks/update-secret.md b/examples/2.3.x/server-dotnet/examples/webhooks/update-secret.md index c6d945511..520b4cef1 100644 --- a/examples/2.3.x/server-dotnet/examples/webhooks/update-secret.md +++ b/examples/2.3.x/server-dotnet/examples/webhooks/update-secret.md @@ -10,7 +10,7 @@ Client client = new Client() Webhooks webhooks = new Webhooks(client); -Webhook result = await webhooks.UpdateSecret( +Appwrite.Models.Webhook result = await webhooks.UpdateSecret( webhookId: "<WEBHOOK_ID>", secret: "<SECRET>" // optional ); diff --git a/examples/2.3.x/server-dotnet/examples/webhooks/update.md b/examples/2.3.x/server-dotnet/examples/webhooks/update.md index 795cfafe6..c24ac7ff3 100644 --- a/examples/2.3.x/server-dotnet/examples/webhooks/update.md +++ b/examples/2.3.x/server-dotnet/examples/webhooks/update.md @@ -10,11 +10,11 @@ Client client = new Client() Webhooks webhooks = new Webhooks(client); -Webhook result = await webhooks.Update( +Appwrite.Models.Webhook result = await webhooks.Update( webhookId: "<WEBHOOK_ID>", name: "<NAME>", url: "https://example.com/webhook", - events: new List<string>(), + events: ["users.*.create"], enabled: false, // optional tls: false, // optional authUsername: "<AUTH_USERNAME>", // optional diff --git a/examples/2.3.x/server-go/examples/account/create-email-password-session.md b/examples/2.3.x/server-go/examples/account/create-email-password-session.md index 0fc7cb4b3..f922baf2d 100644 --- a/examples/2.3.x/server-go/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-go/examples/account/create-email-password-session.md @@ -20,6 +20,7 @@ func main() { response, err := service.CreateEmailPasswordSession( "email@example.com", "password", + service.WithCreateEmailPasswordSessionDuration(60), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/account/delete-sessions.md b/examples/2.3.x/server-go/examples/account/delete-sessions.md index 2cae6cb06..5f741a694 100644 --- a/examples/2.3.x/server-go/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-go/examples/account/delete-sessions.md @@ -17,7 +17,9 @@ func main() { service := account.New(client) - response, err := service.DeleteSessions() + response, err := service.DeleteSessions( + service.WithDeleteSessionsCurrent(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/account/list-sessions.md b/examples/2.3.x/server-go/examples/account/list-sessions.md index 6d4315e1b..44429f0b3 100644 --- a/examples/2.3.x/server-go/examples/account/list-sessions.md +++ b/examples/2.3.x/server-go/examples/account/list-sessions.md @@ -17,7 +17,9 @@ func main() { service := account.New(client) - response, err := service.ListSessions() + response, err := service.ListSessions( + service.WithListSessionsTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/analytics/create-event.md b/examples/2.3.x/server-go/examples/analytics/create-event.md new file mode 100644 index 000000000..7cf153d10 --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/create-event.md @@ -0,0 +1,37 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithSession(""), + ) + + service := analytics.New(client) + + response, err := service.CreateEvent( + "<PROPERTY_ID>", + "<NAME>", + "https://example.com", + service.WithCreateEventDomain("<DOMAIN>"), + service.WithCreateEventReferrer("<REFERRER>"), + service.WithCreateEventScreenWidth(0), + service.WithCreateEventSessionHash("<SESSION_HASH>"), + service.WithCreateEventScrollDepth(0), + service.WithCreateEventEngagementTime(0), + service.WithCreateEventProps([]string{"example"}), + service.WithCreateEventUserId("<USER_ID>"), + service.WithCreateEventIp("<IP>"), + service.WithCreateEventUserAgent("<USER_AGENT>"), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/create-property.md b/examples/2.3.x/server-go/examples/analytics/create-property.md new file mode 100644 index 000000000..6b4c356e2 --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/create-property.md @@ -0,0 +1,31 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.CreateProperty( + "<PROPERTY_ID>", + "<NAME>", + service.WithCreatePropertyDomain("<DOMAIN>"), + service.WithCreatePropertyTimezone("<TIMEZONE>"), + service.WithCreatePropertyEnabled(false), + service.WithCreatePropertyPublic(false), + service.WithCreatePropertyAllowedOrigins([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/delete-property.md b/examples/2.3.x/server-go/examples/analytics/delete-property.md new file mode 100644 index 000000000..f1153f554 --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/delete-property.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.DeleteProperty( + "<PROPERTY_ID>", + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/get-property.md b/examples/2.3.x/server-go/examples/analytics/get-property.md new file mode 100644 index 000000000..446b26cda --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/get-property.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.GetProperty( + "<PROPERTY_ID>", + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/list-metrics.md b/examples/2.3.x/server-go/examples/analytics/list-metrics.md new file mode 100644 index 000000000..ccfe492ea --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/list-metrics.md @@ -0,0 +1,32 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.ListMetrics( + "<PROPERTY_ID>", + service.WithListMetricsQueries([]string{"example"}), + service.WithListMetricsInterval("1h"), + service.WithListMetricsDimensions([]string{"example"}), + service.WithListMetricsDateRange("<DATE_RANGE>"), + service.WithListMetricsStartAt("2020-10-15T06:38:00.000+00:00"), + service.WithListMetricsEndAt("2020-10-15T06:38:00.000+00:00"), + service.WithListMetricsLimit(1), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/list-properties.md b/examples/2.3.x/server-go/examples/analytics/list-properties.md new file mode 100644 index 000000000..21141f681 --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/list-properties.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.ListProperties( + service.WithListPropertiesQueries([]string{"example"}), + service.WithListPropertiesSearch("<SEARCH>"), + service.WithListPropertiesTotal(false), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/analytics/update-property.md b/examples/2.3.x/server-go/examples/analytics/update-property.md new file mode 100644 index 000000000..f29df5884 --- /dev/null +++ b/examples/2.3.x/server-go/examples/analytics/update-property.md @@ -0,0 +1,31 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/analytics" + "github.com/appwrite/sdk-for-go/v7/appwrite" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := analytics.New(client) + + response, err := service.UpdateProperty( + "<PROPERTY_ID>", + service.WithUpdatePropertyName("<NAME>"), + service.WithUpdatePropertyDomain("<DOMAIN>"), + service.WithUpdatePropertyTimezone("<TIMEZONE>"), + service.WithUpdatePropertyEnabled(false), + service.WithUpdatePropertyPublic(false), + service.WithUpdatePropertyAllowedOrigins([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/avatars/delete-photo.md b/examples/2.3.x/server-go/examples/avatars/delete-photo.md new file mode 100644 index 000000000..c3fb60b98 --- /dev/null +++ b/examples/2.3.x/server-go/examples/avatars/delete-photo.md @@ -0,0 +1,23 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/avatars" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithSession(""), + ) + + service := avatars.New(client) + + response, err := service.DeletePhoto() + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/avatars/get-screenshot.md b/examples/2.3.x/server-go/examples/avatars/get-screenshot.md index 2fa9098f9..1f699b7fd 100644 --- a/examples/2.3.x/server-go/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-go/examples/avatars/get-screenshot.md @@ -19,7 +19,7 @@ func main() { response, err := service.GetScreenshot( "https://example.com", - service.WithGetScreenshotHeaders(map[string]interface{}{"Authorization": "Bearer token123", "X-Custom-Header": "value"}), + service.WithGetScreenshotHeaders(map[string]interface{}{"Accept-Language": "en-US,en;q=0.9"}), service.WithGetScreenshotViewportWidth(1920), service.WithGetScreenshotViewportHeight(1080), service.WithGetScreenshotScale(2), diff --git a/examples/2.3.x/server-go/examples/avatars/update-photo.md b/examples/2.3.x/server-go/examples/avatars/update-photo.md new file mode 100644 index 000000000..36c161e8a --- /dev/null +++ b/examples/2.3.x/server-go/examples/avatars/update-photo.md @@ -0,0 +1,26 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/avatars" + "github.com/appwrite/sdk-for-go/v7/file" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithSession(""), + ) + + service := avatars.New(client) + + response, err := service.UpdatePhoto( + file.NewInputFile("/path/to/file.png", "file.png"), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/databases/create-documents.md b/examples/2.3.x/server-go/examples/databases/create-documents.md index de2d3247a..261dc6fa7 100644 --- a/examples/2.3.x/server-go/examples/databases/create-documents.md +++ b/examples/2.3.x/server-go/examples/databases/create-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.CreateDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithCreateDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/databases/create-index.md b/examples/2.3.x/server-go/examples/databases/create-index.md index 570b81b80..8177a9696 100644 --- a/examples/2.3.x/server-go/examples/databases/create-index.md +++ b/examples/2.3.x/server-go/examples/databases/create-index.md @@ -22,7 +22,7 @@ func main() { "<COLLECTION_ID>", "<KEY>", "key", - []string{"example"}, + []string{"username"}, service.WithCreateIndexOrders([]string{"example"}), service.WithCreateIndexLengths([]int{0}), ) diff --git a/examples/2.3.x/server-go/examples/databases/delete-documents.md b/examples/2.3.x/server-go/examples/databases/delete-documents.md index f153ba510..e4aeabae3 100644 --- a/examples/2.3.x/server-go/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-go/examples/databases/delete-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.DeleteDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - service.WithDeleteDocumentsQueries([]string{"example"}), + service.WithDeleteDocumentsQueries([]string{"{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"}), service.WithDeleteDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/databases/list-transactions.md b/examples/2.3.x/server-go/examples/databases/list-transactions.md index 1c991e744..f006b5a14 100644 --- a/examples/2.3.x/server-go/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-go/examples/databases/list-transactions.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListTransactions( service.WithListTransactionsQueries([]string{"example"}), + service.WithListTransactionsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/databases/upsert-documents.md b/examples/2.3.x/server-go/examples/databases/upsert-documents.md index d68270f02..a446aed52 100644 --- a/examples/2.3.x/server-go/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-go/examples/databases/upsert-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpsertDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithUpsertDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/documentsdb/create-documents.md b/examples/2.3.x/server-go/examples/documentsdb/create-documents.md index 818cfe82c..db95f4d16 100644 --- a/examples/2.3.x/server-go/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-go/examples/documentsdb/create-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.CreateDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithCreateDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/documentsdb/create-index.md b/examples/2.3.x/server-go/examples/documentsdb/create-index.md index 93fbf2f0b..1135d6238 100644 --- a/examples/2.3.x/server-go/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-go/examples/documentsdb/create-index.md @@ -22,7 +22,7 @@ func main() { "<COLLECTION_ID>", "<KEY>", "key", - []string{"example"}, + []string{"username"}, service.WithCreateIndexOrders([]string{"example"}), service.WithCreateIndexLengths([]int{0}), ) diff --git a/examples/2.3.x/server-go/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-go/examples/documentsdb/delete-documents.md index b976aab9a..15c4c3cb2 100644 --- a/examples/2.3.x/server-go/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-go/examples/documentsdb/delete-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.DeleteDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - service.WithDeleteDocumentsQueries([]string{"example"}), + service.WithDeleteDocumentsQueries([]string{"{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"}), service.WithDeleteDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-go/examples/documentsdb/list-transactions.md index e2d8553f7..89efe5511 100644 --- a/examples/2.3.x/server-go/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-go/examples/documentsdb/list-transactions.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListTransactions( service.WithListTransactionsQueries([]string{"example"}), + service.WithListTransactionsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-go/examples/documentsdb/upsert-documents.md index 7a5bec386..0bad6f906 100644 --- a/examples/2.3.x/server-go/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-go/examples/documentsdb/upsert-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpsertDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithUpsertDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-go/examples/embeddings/create-text-embeddings.md index b3013d861..e2f64b0df 100644 --- a/examples/2.3.x/server-go/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-go/examples/embeddings/create-text-embeddings.md @@ -18,7 +18,7 @@ func main() { service := embeddings.New(client) response, err := service.CreateTextEmbeddings( - []string{"example"}, + []string{"Appwrite helps developers build applications.", "Find documents with semantic search."}, service.WithCreateTextEmbeddingsModel("nomic-embed-text"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/functions/list-runtimes.md b/examples/2.3.x/server-go/examples/functions/list-runtimes.md index 86c2ecfe1..ae03a1af8 100644 --- a/examples/2.3.x/server-go/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-go/examples/functions/list-runtimes.md @@ -17,7 +17,9 @@ func main() { service := functions.New(client) - response, err := service.ListRuntimes() + response, err := service.ListRuntimes( + service.WithListRuntimesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/functions/list-specifications.md b/examples/2.3.x/server-go/examples/functions/list-specifications.md index e96ac131d..59438f97e 100644 --- a/examples/2.3.x/server-go/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-go/examples/functions/list-specifications.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListSpecifications( service.WithListSpecificationsType("runtimes"), + service.WithListSpecificationsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/graphql/mutation.md b/examples/2.3.x/server-go/examples/graphql/mutation.md index 24dadaedb..05d0aaa73 100644 --- a/examples/2.3.x/server-go/examples/graphql/mutation.md +++ b/examples/2.3.x/server-go/examples/graphql/mutation.md @@ -18,7 +18,7 @@ func main() { service := graphql.New(client) response, err := service.Mutation( - []interface{}{}, + map[string]interface{}{"query": "mutation { accountUpdateName(name: \"Walter\") { name } }"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/graphql/query.md b/examples/2.3.x/server-go/examples/graphql/query.md index 40cb3b8d7..6bf9fd8e7 100644 --- a/examples/2.3.x/server-go/examples/graphql/query.md +++ b/examples/2.3.x/server-go/examples/graphql/query.md @@ -18,7 +18,7 @@ func main() { service := graphql.New(client) response, err := service.Query( - []interface{}{}, + map[string]interface{}{"query": "query { localeGet { ip } }"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/locale/list-codes.md b/examples/2.3.x/server-go/examples/locale/list-codes.md index 392e9ad78..ade207f87 100644 --- a/examples/2.3.x/server-go/examples/locale/list-codes.md +++ b/examples/2.3.x/server-go/examples/locale/list-codes.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListCodes() + response, err := service.ListCodes( + service.WithListCodesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-continents.md b/examples/2.3.x/server-go/examples/locale/list-continents.md index 137084c5d..643734b9a 100644 --- a/examples/2.3.x/server-go/examples/locale/list-continents.md +++ b/examples/2.3.x/server-go/examples/locale/list-continents.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListContinents() + response, err := service.ListContinents( + service.WithListContinentsTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-countries-eu.md b/examples/2.3.x/server-go/examples/locale/list-countries-eu.md index bfa6d66f1..cc88ed191 100644 --- a/examples/2.3.x/server-go/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-go/examples/locale/list-countries-eu.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListCountriesEU() + response, err := service.ListCountriesEU( + service.WithListCountriesEUTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-countries-phones.md b/examples/2.3.x/server-go/examples/locale/list-countries-phones.md index f4732a1c1..682a9171d 100644 --- a/examples/2.3.x/server-go/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-go/examples/locale/list-countries-phones.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListCountriesPhones() + response, err := service.ListCountriesPhones( + service.WithListCountriesPhonesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-countries.md b/examples/2.3.x/server-go/examples/locale/list-countries.md index 85e9f3e8e..bd7b5e199 100644 --- a/examples/2.3.x/server-go/examples/locale/list-countries.md +++ b/examples/2.3.x/server-go/examples/locale/list-countries.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListCountries() + response, err := service.ListCountries( + service.WithListCountriesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-currencies.md b/examples/2.3.x/server-go/examples/locale/list-currencies.md index 6ab6d25d6..940167317 100644 --- a/examples/2.3.x/server-go/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-go/examples/locale/list-currencies.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListCurrencies() + response, err := service.ListCurrencies( + service.WithListCurrenciesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/locale/list-languages.md b/examples/2.3.x/server-go/examples/locale/list-languages.md index 3806001bb..98e8bc9b3 100644 --- a/examples/2.3.x/server-go/examples/locale/list-languages.md +++ b/examples/2.3.x/server-go/examples/locale/list-languages.md @@ -17,7 +17,9 @@ func main() { service := locale.New(client) - response, err := service.ListLanguages() + response, err := service.ListLanguages( + service.WithListLanguagesTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/messaging/create-push.md b/examples/2.3.x/server-go/examples/messaging/create-push.md index 70659949c..e1ca0fa46 100644 --- a/examples/2.3.x/server-go/examples/messaging/create-push.md +++ b/examples/2.3.x/server-go/examples/messaging/create-push.md @@ -37,6 +37,7 @@ func main() { service.WithCreatePushContentAvailable(false), service.WithCreatePushCritical(false), service.WithCreatePushPriority("normal"), + service.WithCreatePushChannelId("<CHANNEL_ID>"), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/messaging/update-email.md b/examples/2.3.x/server-go/examples/messaging/update-email.md index 05ff62a71..5b26875bb 100644 --- a/examples/2.3.x/server-go/examples/messaging/update-email.md +++ b/examples/2.3.x/server-go/examples/messaging/update-email.md @@ -19,19 +19,19 @@ func main() { response, err := service.UpdateEmail( "<MESSAGE_ID>", + service.WithUpdateEmailSubject("<SUBJECT>"), + service.WithUpdateEmailContent("<CONTENT>"), service.WithUpdateEmailTopics([]string{"example"}), service.WithUpdateEmailUsers([]string{"example"}), service.WithUpdateEmailTargets([]string{"example"}), - service.WithUpdateEmailSubject("<SUBJECT>"), - service.WithUpdateEmailContent("<CONTENT>"), - service.WithUpdateEmailDraft(false), - service.WithUpdateEmailHtml(false), service.WithUpdateEmailCc([]string{"example"}), service.WithUpdateEmailBcc([]string{"example"}), + service.WithUpdateEmailAttachments([]string{"example"}), service.WithUpdateEmailReplyToEmail("email@example.com"), service.WithUpdateEmailReplyToName("<REPLY_TO_NAME>"), + service.WithUpdateEmailDraft(false), + service.WithUpdateEmailHtml(false), service.WithUpdateEmailScheduledAt("2020-10-15T06:38:00.000+00:00"), - service.WithUpdateEmailAttachments([]string{"example"}), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/messaging/update-push.md b/examples/2.3.x/server-go/examples/messaging/update-push.md index 8d3b933a6..450567c88 100644 --- a/examples/2.3.x/server-go/examples/messaging/update-push.md +++ b/examples/2.3.x/server-go/examples/messaging/update-push.md @@ -19,11 +19,11 @@ func main() { response, err := service.UpdatePush( "<MESSAGE_ID>", + service.WithUpdatePushTitle("<TITLE>"), + service.WithUpdatePushBody("<BODY>"), service.WithUpdatePushTopics([]string{"example"}), service.WithUpdatePushUsers([]string{"example"}), service.WithUpdatePushTargets([]string{"example"}), - service.WithUpdatePushTitle("<TITLE>"), - service.WithUpdatePushBody("<BODY>"), service.WithUpdatePushData([]interface{}{}), service.WithUpdatePushAction("<ACTION>"), service.WithUpdatePushImage("<ID1:ID2>"), @@ -37,6 +37,7 @@ func main() { service.WithUpdatePushContentAvailable(false), service.WithUpdatePushCritical(false), service.WithUpdatePushPriority("normal"), + service.WithUpdatePushChannelId("<CHANNEL_ID>"), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/messaging/update-sms.md b/examples/2.3.x/server-go/examples/messaging/update-sms.md index 22f60b3d0..9503eb804 100644 --- a/examples/2.3.x/server-go/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-go/examples/messaging/update-sms.md @@ -19,10 +19,10 @@ func main() { response, err := service.UpdateSMS( "<MESSAGE_ID>", + service.WithUpdateSMSContent("<CONTENT>"), service.WithUpdateSMSTopics([]string{"example"}), service.WithUpdateSMSUsers([]string{"example"}), service.WithUpdateSMSTargets([]string{"example"}), - service.WithUpdateSMSContent("<CONTENT>"), service.WithUpdateSMSDraft(false), service.WithUpdateSMSScheduledAt("2020-10-15T06:38:00.000+00:00"), ) diff --git a/examples/2.3.x/server-go/examples/oauth2/introspect.md b/examples/2.3.x/server-go/examples/oauth2/introspect.md new file mode 100644 index 000000000..e10eb953c --- /dev/null +++ b/examples/2.3.x/server-go/examples/oauth2/introspect.md @@ -0,0 +1,28 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/oauth2" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := oauth2.New(client) + + response, err := service.Introspect( + "<TOKEN>", + service.WithIntrospectTokenTypeHint("access_token"), + service.WithIntrospectClientId("<CLIENT_ID>"), + service.WithIntrospectClientSecret("<CLIENT_SECRET>"), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-go/examples/organization/create-ephemeral-project-key.md index 012b2cafc..65635e6d1 100644 --- a/examples/2.3.x/server-go/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-go/examples/organization/create-ephemeral-project-key.md @@ -19,7 +19,7 @@ func main() { response, err := service.CreateEphemeralProjectKey( "<PROJECT_ID>", - []string{"example"}, + []string{"users.read"}, 600, ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/organization/update-project-key.md b/examples/2.3.x/server-go/examples/organization/update-project-key.md index 3b4a1b655..86d63d29b 100644 --- a/examples/2.3.x/server-go/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-go/examples/organization/update-project-key.md @@ -21,7 +21,7 @@ func main() { "<PROJECT_ID>", "<KEY_ID>", "<NAME>", - []string{"example"}, + []string{"users.read"}, service.WithUpdateProjectKeyExpire("2020-10-15T06:38:00.000+00:00"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-go/examples/project/create-ephemeral-key.md index 0ee5d7ce3..c35fab144 100644 --- a/examples/2.3.x/server-go/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-go/examples/project/create-ephemeral-key.md @@ -18,7 +18,7 @@ func main() { service := project.New(client) response, err := service.CreateEphemeralKey( - []string{"example"}, + []string{"users.read"}, 600, ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/create-smtp-test.md b/examples/2.3.x/server-go/examples/project/create-smtp-test.md index 9c3965275..4ca1e10d8 100644 --- a/examples/2.3.x/server-go/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-go/examples/project/create-smtp-test.md @@ -18,7 +18,7 @@ func main() { service := project.New(client) response, err := service.CreateSMTPTest( - []string{"example"}, + []string{"recipient@example.com"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/project/update-key.md b/examples/2.3.x/server-go/examples/project/update-key.md index 53c120533..6224b0c2f 100644 --- a/examples/2.3.x/server-go/examples/project/update-key.md +++ b/examples/2.3.x/server-go/examples/project/update-key.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpdateKey( "<KEY_ID>", "<NAME>", - []string{"example"}, + []string{"users.read"}, service.WithUpdateKeyExpire("2020-10-15T06:38:00.000+00:00"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-labels.md b/examples/2.3.x/server-go/examples/project/update-labels.md index 4bf910b03..98fca5427 100644 --- a/examples/2.3.x/server-go/examples/project/update-labels.md +++ b/examples/2.3.x/server-go/examples/project/update-labels.md @@ -18,7 +18,7 @@ func main() { service := project.New(client) response, err := service.UpdateLabels( - []string{"example"}, + []string{"production"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-auth-0.md index 1b423dd3d..45966276b 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-auth-0.md @@ -21,6 +21,7 @@ func main() { service.WithUpdateOAuth2Auth0ClientId("<CLIENT_ID>"), service.WithUpdateOAuth2Auth0ClientSecret("<CLIENT_SECRET>"), service.WithUpdateOAuth2Auth0Endpoint("<ENDPOINT>"), + service.WithUpdateOAuth2Auth0Prompt([]string{"example"}), service.WithUpdateOAuth2Auth0Enabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-discord.md index de4dffc80..75a00165d 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-discord.md @@ -20,6 +20,7 @@ func main() { response, err := service.UpdateOAuth2Discord( service.WithUpdateOAuth2DiscordClientId("<CLIENT_ID>"), service.WithUpdateOAuth2DiscordClientSecret("<CLIENT_SECRET>"), + service.WithUpdateOAuth2DiscordPrompt([]string{"example"}), service.WithUpdateOAuth2DiscordEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-git-hub.md index 19475e4b6..cb0ab1643 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-git-hub.md @@ -20,6 +20,7 @@ func main() { response, err := service.UpdateOAuth2GitHub( service.WithUpdateOAuth2GitHubClientId("<CLIENT_ID>"), service.WithUpdateOAuth2GitHubClientSecret("<CLIENT_SECRET>"), + service.WithUpdateOAuth2GitHubPrompt([]string{"example"}), service.WithUpdateOAuth2GitHubEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-kakao.md index 5979e6dfa..7dff64ac5 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-kakao.md @@ -20,6 +20,7 @@ func main() { response, err := service.UpdateOAuth2Kakao( service.WithUpdateOAuth2KakaoClientId("<CLIENT_ID>"), service.WithUpdateOAuth2KakaoClientSecret("<CLIENT_SECRET>"), + service.WithUpdateOAuth2KakaoPrompt([]string{"example"}), service.WithUpdateOAuth2KakaoEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-microsoft.md index 3a6606aa6..3c6888c76 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-microsoft.md @@ -21,6 +21,7 @@ func main() { service.WithUpdateOAuth2MicrosoftApplicationId("<APPLICATION_ID>"), service.WithUpdateOAuth2MicrosoftApplicationSecret("<APPLICATION_SECRET>"), service.WithUpdateOAuth2MicrosoftTenant("<TENANT>"), + service.WithUpdateOAuth2MicrosoftPrompt([]string{"example"}), service.WithUpdateOAuth2MicrosoftEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-okta.md index 187e372f9..354ffff8c 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-okta.md @@ -22,6 +22,7 @@ func main() { service.WithUpdateOAuth2OktaClientSecret("<CLIENT_SECRET>"), service.WithUpdateOAuth2OktaDomain("example.com"), service.WithUpdateOAuth2OktaAuthorizationServerId("<AUTHORIZATION_SERVER_ID>"), + service.WithUpdateOAuth2OktaPrompt([]string{"example"}), service.WithUpdateOAuth2OktaEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-salesforce.md index 7777013b3..12ac87ea0 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-salesforce.md @@ -20,6 +20,7 @@ func main() { response, err := service.UpdateOAuth2Salesforce( service.WithUpdateOAuth2SalesforceCustomerKey("<CUSTOMER_KEY>"), service.WithUpdateOAuth2SalesforceCustomerSecret("<CUSTOMER_SECRET>"), + service.WithUpdateOAuth2SalesforcePrompt([]string{"example"}), service.WithUpdateOAuth2SalesforceEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..1c8d8d3a1 --- /dev/null +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/project" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := project.New(client) + + response, err := service.UpdateOAuth2Webflow( + service.WithUpdateOAuth2WebflowClientId("<CLIENT_ID>"), + service.WithUpdateOAuth2WebflowClientSecret("<CLIENT_SECRET>"), + service.WithUpdateOAuth2WebflowEnabled(false), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.3.x/server-go/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-go/examples/project/update-o-auth-2-zoho.md index 4c4991006..07d6c9577 100644 --- a/examples/2.3.x/server-go/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-go/examples/project/update-o-auth-2-zoho.md @@ -20,6 +20,7 @@ func main() { response, err := service.UpdateOAuth2Zoho( service.WithUpdateOAuth2ZohoClientId("<CLIENT_ID>"), service.WithUpdateOAuth2ZohoClientSecret("<CLIENT_SECRET>"), + service.WithUpdateOAuth2ZohoPrompt([]string{"example"}), service.WithUpdateOAuth2ZohoEnabled(false), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/sites/list-frameworks.md b/examples/2.3.x/server-go/examples/sites/list-frameworks.md index 6862114fb..96829e8b1 100644 --- a/examples/2.3.x/server-go/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-go/examples/sites/list-frameworks.md @@ -17,7 +17,9 @@ func main() { service := sites.New(client) - response, err := service.ListFrameworks() + response, err := service.ListFrameworks( + service.WithListFrameworksTotal(false), + ) fmt.Println(response, err) } ``` diff --git a/examples/2.3.x/server-go/examples/sites/list-specifications.md b/examples/2.3.x/server-go/examples/sites/list-specifications.md index ef95d028f..c3279c241 100644 --- a/examples/2.3.x/server-go/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-go/examples/sites/list-specifications.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListSpecifications( service.WithListSpecificationsType("runtimes"), + service.WithListSpecificationsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/tablesdb/create-index.md b/examples/2.3.x/server-go/examples/tablesdb/create-index.md index e39b2c13b..df3b2d951 100644 --- a/examples/2.3.x/server-go/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-go/examples/tablesdb/create-index.md @@ -22,7 +22,7 @@ func main() { "<TABLE_ID>", "<KEY>", "key", - []string{"example"}, + []string{"username"}, service.WithCreateIndexOrders([]string{"example"}), service.WithCreateIndexLengths([]int{0}), ) diff --git a/examples/2.3.x/server-go/examples/tablesdb/create-rows.md b/examples/2.3.x/server-go/examples/tablesdb/create-rows.md index 42ebd01af..ab2df626b 100644 --- a/examples/2.3.x/server-go/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-go/examples/tablesdb/create-rows.md @@ -20,7 +20,7 @@ func main() { response, err := service.CreateRows( "<DATABASE_ID>", "<TABLE_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithCreateRowsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-go/examples/tablesdb/delete-rows.md index 9c2089943..262d59b4f 100644 --- a/examples/2.3.x/server-go/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-go/examples/tablesdb/delete-rows.md @@ -20,7 +20,7 @@ func main() { response, err := service.DeleteRows( "<DATABASE_ID>", "<TABLE_ID>", - service.WithDeleteRowsQueries([]string{"example"}), + service.WithDeleteRowsQueries([]string{"{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"}), service.WithDeleteRowsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-go/examples/tablesdb/list-transactions.md index e5019450b..0f3da4bfa 100644 --- a/examples/2.3.x/server-go/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-go/examples/tablesdb/list-transactions.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListTransactions( service.WithListTransactionsQueries([]string{"example"}), + service.WithListTransactionsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-go/examples/tablesdb/upsert-rows.md index b90c54b90..866433ed9 100644 --- a/examples/2.3.x/server-go/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-go/examples/tablesdb/upsert-rows.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpsertRows( "<DATABASE_ID>", "<TABLE_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", "age": 30, "isAdmin": false}}, service.WithUpsertRowsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/teams/create-membership.md b/examples/2.3.x/server-go/examples/teams/create-membership.md index c57f11ca6..026549fcd 100644 --- a/examples/2.3.x/server-go/examples/teams/create-membership.md +++ b/examples/2.3.x/server-go/examples/teams/create-membership.md @@ -19,7 +19,7 @@ func main() { response, err := service.CreateMembership( "<TEAM_ID>", - []string{"example"}, + []string{"editor"}, service.WithCreateMembershipEmail("email@example.com"), service.WithCreateMembershipUserId("<USER_ID>"), service.WithCreateMembershipPhone("+12065550100"), diff --git a/examples/2.3.x/server-go/examples/teams/update-membership.md b/examples/2.3.x/server-go/examples/teams/update-membership.md index a94eaf2b2..b4ab5effa 100644 --- a/examples/2.3.x/server-go/examples/teams/update-membership.md +++ b/examples/2.3.x/server-go/examples/teams/update-membership.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpdateMembership( "<TEAM_ID>", "<MEMBERSHIP_ID>", - []string{"example"}, + []string{"editor"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/users/update-labels.md b/examples/2.3.x/server-go/examples/users/update-labels.md index d673b10d0..635364c57 100644 --- a/examples/2.3.x/server-go/examples/users/update-labels.md +++ b/examples/2.3.x/server-go/examples/users/update-labels.md @@ -19,7 +19,7 @@ func main() { response, err := service.UpdateLabels( "<USER_ID>", - []string{"example"}, + []string{"subscriber"}, ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-go/examples/vectorsdb/create-collection.md index 6df7ac496..c8e6ba7e6 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/create-collection.md @@ -21,7 +21,7 @@ func main() { "<DATABASE_ID>", "<COLLECTION_ID>", "<NAME>", - 1, + 4, service.WithCreateCollectionPermissions([]string{"read(\"any\")"}), service.WithCreateCollectionDocumentSecurity(false), service.WithCreateCollectionEnabled(false), diff --git a/examples/2.3.x/server-go/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-go/examples/vectorsdb/create-documents.md index 1f1eacde0..b9939c6b7 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/create-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.CreateDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "embeddings": []interface{}{0.12, -0.55, 0.88, 1.02}, "metadata": map[string]interface{}{"name": "First document"}}}, service.WithCreateDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/vectorsdb/create-index.md b/examples/2.3.x/server-go/examples/vectorsdb/create-index.md index 7be384220..d26529477 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/create-index.md @@ -22,7 +22,7 @@ func main() { "<COLLECTION_ID>", "<KEY>", "hnsw_euclidean", - []string{"example"}, + []string{"embeddings"}, service.WithCreateIndexOrders([]string{"example"}), service.WithCreateIndexLengths([]int{0}), ) diff --git a/examples/2.3.x/server-go/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-go/examples/vectorsdb/create-operations.md index c6e7737cb..49050089b 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/create-operations.md @@ -19,7 +19,7 @@ func main() { response, err := service.CreateOperations( "<TRANSACTION_ID>", - service.WithCreateOperationsOperations([]interface{}{map[string]interface{}{"action": "create", "databaseId": "<DATABASE_ID>", "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": map[string]interface{}{"name": "Walter O'Brien"}}}), + service.WithCreateOperationsOperations([]interface{}{map[string]interface{}{"action": "create", "databaseId": "<DATABASE_ID>", "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": map[string]interface{}{"embeddings": []interface{}{0.12, -0.55, 0.88, 1.02}, "metadata": map[string]interface{}{"name": "First document"}}}}), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-go/examples/vectorsdb/delete-documents.md index 6242d445f..b0f0cd93c 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/delete-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.DeleteDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - service.WithDeleteDocumentsQueries([]string{"example"}), + service.WithDeleteDocumentsQueries([]string{"{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"}), service.WithDeleteDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-go/examples/vectorsdb/list-transactions.md index 5d70bdd05..1789ed9d0 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/list-transactions.md @@ -19,6 +19,7 @@ func main() { response, err := service.ListTransactions( service.WithListTransactionsQueries([]string{"example"}), + service.WithListTransactionsTotal(false), ) fmt.Println(response, err) } diff --git a/examples/2.3.x/server-go/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-go/examples/vectorsdb/update-collection.md index 6483561a7..34168ec5b 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/update-collection.md @@ -21,7 +21,7 @@ func main() { "<DATABASE_ID>", "<COLLECTION_ID>", "<NAME>", - service.WithUpdateCollectionDimension(1), + service.WithUpdateCollectionDimension(4), service.WithUpdateCollectionPermissions([]string{"read(\"any\")"}), service.WithUpdateCollectionDocumentSecurity(false), service.WithUpdateCollectionEnabled(false), diff --git a/examples/2.3.x/server-go/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-go/examples/vectorsdb/upsert-documents.md index 85fc23658..6c3ac5d4a 100644 --- a/examples/2.3.x/server-go/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-go/examples/vectorsdb/upsert-documents.md @@ -20,7 +20,7 @@ func main() { response, err := service.UpsertDocuments( "<DATABASE_ID>", "<COLLECTION_ID>", - []interface{}{}, + []interface{}{map[string]interface{}{"$id": "example1", "embeddings": []interface{}{0.12, -0.55, 0.88, 1.02}, "metadata": map[string]interface{}{"name": "First document"}}}, service.WithUpsertDocumentsTransactionId("<TRANSACTION_ID>"), ) fmt.Println(response, err) diff --git a/examples/2.3.x/server-go/examples/webhooks/create.md b/examples/2.3.x/server-go/examples/webhooks/create.md index 90561b70e..5ac9d50b7 100644 --- a/examples/2.3.x/server-go/examples/webhooks/create.md +++ b/examples/2.3.x/server-go/examples/webhooks/create.md @@ -21,7 +21,7 @@ func main() { "<WEBHOOK_ID>", "https://example.com/webhook", "<NAME>", - []string{"example"}, + []string{"users.*.create"}, service.WithCreateEnabled(false), service.WithCreateTls(false), service.WithCreateAuthUsername("<AUTH_USERNAME>"), diff --git a/examples/2.3.x/server-go/examples/webhooks/update.md b/examples/2.3.x/server-go/examples/webhooks/update.md index e344b75f8..b5ce3bd00 100644 --- a/examples/2.3.x/server-go/examples/webhooks/update.md +++ b/examples/2.3.x/server-go/examples/webhooks/update.md @@ -21,7 +21,7 @@ func main() { "<WEBHOOK_ID>", "<NAME>", "https://example.com/webhook", - []string{"example"}, + []string{"users.*.create"}, service.WithUpdateEnabled(false), service.WithUpdateTls(false), service.WithUpdateAuthUsername("<AUTH_USERNAME>"), diff --git a/examples/2.3.x/server-graphql/examples/account/create-email-password-session.md b/examples/2.3.x/server-graphql/examples/account/create-email-password-session.md index c68a4feb2..530acb1ed 100644 --- a/examples/2.3.x/server-graphql/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-graphql/examples/account/create-email-password-session.md @@ -2,7 +2,8 @@ mutation { accountCreateEmailPasswordSession( email: "email@example.com", - password: "password" + password: "password", + duration: 60 ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/account/delete-sessions.md b/examples/2.3.x/server-graphql/examples/account/delete-sessions.md index 65f6900e5..9edcbc74a 100644 --- a/examples/2.3.x/server-graphql/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-graphql/examples/account/delete-sessions.md @@ -1,6 +1,8 @@ ```graphql mutation { - accountDeleteSessions { + accountDeleteSessions( + current: false + ) { status } } diff --git a/examples/2.3.x/server-graphql/examples/account/list-sessions.md b/examples/2.3.x/server-graphql/examples/account/list-sessions.md index 106419a76..62cf7fc2c 100644 --- a/examples/2.3.x/server-graphql/examples/account/list-sessions.md +++ b/examples/2.3.x/server-graphql/examples/account/list-sessions.md @@ -1,6 +1,8 @@ ```graphql query { - accountListSessions { + accountListSessions( + total: false + ) { total sessions { _id diff --git a/examples/2.3.x/server-graphql/examples/analytics/create-event.md b/examples/2.3.x/server-graphql/examples/analytics/create-event.md new file mode 100644 index 000000000..5e58df415 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/create-event.md @@ -0,0 +1,21 @@ +```graphql +mutation { + analyticsCreateEvent( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + url: "https://example.com", + domain: "<DOMAIN>", + referrer: "<REFERRER>", + screenWidth: 0, + sessionHash: "<SESSION_HASH>", + scrollDepth: 0, + engagementTime: 0, + props: [], + userId: "<USER_ID>", + ip: "<IP>", + userAgent: "<USER_AGENT>" + ) { + status + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/create-property.md b/examples/2.3.x/server-graphql/examples/analytics/create-property.md new file mode 100644 index 000000000..eacdcbad2 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/create-property.md @@ -0,0 +1,24 @@ +```graphql +mutation { + analyticsCreateProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + domain: "<DOMAIN>", + timezone: "<TIMEZONE>", + enabled: false, + public: false, + allowedOrigins: [] + ) { + _id + _createdAt + _updatedAt + name + domain + timezone + enabled + public + allowedOrigins + snippetId + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/delete-property.md b/examples/2.3.x/server-graphql/examples/analytics/delete-property.md new file mode 100644 index 000000000..34de4c472 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/delete-property.md @@ -0,0 +1,9 @@ +```graphql +mutation { + analyticsDeleteProperty( + propertyId: "<PROPERTY_ID>" + ) { + status + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/get-property.md b/examples/2.3.x/server-graphql/examples/analytics/get-property.md new file mode 100644 index 000000000..8787a761e --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/get-property.md @@ -0,0 +1,18 @@ +```graphql +query { + analyticsGetProperty( + propertyId: "<PROPERTY_ID>" + ) { + _id + _createdAt + _updatedAt + name + domain + timezone + enabled + public + allowedOrigins + snippetId + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/list-metrics.md b/examples/2.3.x/server-graphql/examples/analytics/list-metrics.md new file mode 100644 index 000000000..7d28be8c7 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/list-metrics.md @@ -0,0 +1,30 @@ +```graphql +query { + analyticsListMetrics( + propertyId: "<PROPERTY_ID>", + queries: [], + interval: "1h", + dimensions: [], + dateRange: "<DATE_RANGE>", + startAt: "2020-10-15T06:38:00.000+00:00", + endAt: "2020-10-15T06:38:00.000+00:00", + limit: 1 + ) { + total + metrics { + value + date + visitors + sessions + pageviews + events + visits + bounceRate + visitDuration + viewsPerVisit + scrollDepth + engagementTime + } + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/list-properties.md b/examples/2.3.x/server-graphql/examples/analytics/list-properties.md new file mode 100644 index 000000000..db02e01b1 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/list-properties.md @@ -0,0 +1,23 @@ +```graphql +query { + analyticsListProperties( + queries: [], + search: "<SEARCH>", + total: false + ) { + total + properties { + _id + _createdAt + _updatedAt + name + domain + timezone + enabled + public + allowedOrigins + snippetId + } + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/analytics/update-property.md b/examples/2.3.x/server-graphql/examples/analytics/update-property.md new file mode 100644 index 000000000..1a7bb6079 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/analytics/update-property.md @@ -0,0 +1,24 @@ +```graphql +mutation { + analyticsUpdateProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + domain: "<DOMAIN>", + timezone: "<TIMEZONE>", + enabled: false, + public: false, + allowedOrigins: [] + ) { + _id + _createdAt + _updatedAt + name + domain + timezone + enabled + public + allowedOrigins + snippetId + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/avatars/delete-photo.md b/examples/2.3.x/server-graphql/examples/avatars/delete-photo.md new file mode 100644 index 000000000..6c7d6afef --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/avatars/delete-photo.md @@ -0,0 +1,7 @@ +```graphql +mutation { + avatarsDeletePhoto { + status + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/avatars/get-screenshot.md b/examples/2.3.x/server-graphql/examples/avatars/get-screenshot.md index f5cab660c..2b6612c38 100644 --- a/examples/2.3.x/server-graphql/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-graphql/examples/avatars/get-screenshot.md @@ -2,7 +2,7 @@ query { avatarsGetScreenshot( url: "https://example.com", - headers: "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}", + headers: "{\"Accept-Language\":\"en-US,en;q=0.9\"}", viewportWidth: 1920, viewportHeight: 1080, scale: 2, diff --git a/examples/2.3.x/server-graphql/examples/avatars/update-photo.md b/examples/2.3.x/server-graphql/examples/avatars/update-photo.md new file mode 100644 index 000000000..de86d4034 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/avatars/update-photo.md @@ -0,0 +1,26 @@ +```graphql +PUT /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: multipart/form-data; boundary="cec8e8123c05ba25" +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +Content-Length: *Length of your entity body in bytes* + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="operations" + +{ "query": "mutation { avatarsUpdatePhoto(file: $file) { id }" }, "variables": { "file": null } } + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="map" + +{ "0": ["variables.file"] } + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="0"; filename="file.ext" + +File contents + +--cec8e8123c05ba25-- +``` diff --git a/examples/2.3.x/server-graphql/examples/databases/create-documents.md b/examples/2.3.x/server-graphql/examples/databases/create-documents.md index 67d038e93..8a81ce381 100644 --- a/examples/2.3.x/server-graphql/examples/databases/create-documents.md +++ b/examples/2.3.x/server-graphql/examples/databases/create-documents.md @@ -3,7 +3,16 @@ mutation { databasesCreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/databases/create-index.md b/examples/2.3.x/server-graphql/examples/databases/create-index.md index 6676113e4..0f02f414b 100644 --- a/examples/2.3.x/server-graphql/examples/databases/create-index.md +++ b/examples/2.3.x/server-graphql/examples/databases/create-index.md @@ -5,7 +5,7 @@ mutation { collectionId: "<COLLECTION_ID>", key: "<KEY>", type: "key", - attributes: [], + attributes: ["username"], orders: [], lengths: [] ) { diff --git a/examples/2.3.x/server-graphql/examples/databases/delete-documents.md b/examples/2.3.x/server-graphql/examples/databases/delete-documents.md index 6cf4405ca..5ea1fc44a 100644 --- a/examples/2.3.x/server-graphql/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-graphql/examples/databases/delete-documents.md @@ -3,7 +3,7 @@ mutation { databasesDeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/databases/list-transactions.md b/examples/2.3.x/server-graphql/examples/databases/list-transactions.md index 2fc18db35..093d901bf 100644 --- a/examples/2.3.x/server-graphql/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-graphql/examples/databases/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { databasesListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/server-graphql/examples/databases/upsert-documents.md b/examples/2.3.x/server-graphql/examples/databases/upsert-documents.md index eb0573545..6fd59b82d 100644 --- a/examples/2.3.x/server-graphql/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-graphql/examples/databases/upsert-documents.md @@ -3,7 +3,16 @@ mutation { databasesUpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/documentsdb/create-documents.md b/examples/2.3.x/server-graphql/examples/documentsdb/create-documents.md index 211576113..aa16ec584 100644 --- a/examples/2.3.x/server-graphql/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-graphql/examples/documentsdb/create-documents.md @@ -3,7 +3,16 @@ mutation { documentsDBCreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/documentsdb/create-index.md b/examples/2.3.x/server-graphql/examples/documentsdb/create-index.md index bc51f4562..ef27ea458 100644 --- a/examples/2.3.x/server-graphql/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-graphql/examples/documentsdb/create-index.md @@ -5,7 +5,7 @@ mutation { collectionId: "<COLLECTION_ID>", key: "<KEY>", type: "key", - attributes: [], + attributes: ["username"], orders: [], lengths: [] ) { diff --git a/examples/2.3.x/server-graphql/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-graphql/examples/documentsdb/delete-documents.md index 46deb6f75..5ffa52b6a 100644 --- a/examples/2.3.x/server-graphql/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-graphql/examples/documentsdb/delete-documents.md @@ -3,7 +3,7 @@ mutation { documentsDBDeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-graphql/examples/documentsdb/list-transactions.md index 2569dde05..231b6ef78 100644 --- a/examples/2.3.x/server-graphql/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-graphql/examples/documentsdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { documentsDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/server-graphql/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-graphql/examples/documentsdb/upsert-documents.md index 2a6ed4885..fee387850 100644 --- a/examples/2.3.x/server-graphql/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-graphql/examples/documentsdb/upsert-documents.md @@ -3,7 +3,16 @@ mutation { documentsDBUpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-graphql/examples/embeddings/create-text-embeddings.md index 0fcc63982..727ce198c 100644 --- a/examples/2.3.x/server-graphql/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-graphql/examples/embeddings/create-text-embeddings.md @@ -1,7 +1,7 @@ ```graphql mutation { embeddingsCreateTextEmbeddings( - texts: [], + texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: "nomic-embed-text" ) { total diff --git a/examples/2.3.x/server-graphql/examples/functions/list-runtimes.md b/examples/2.3.x/server-graphql/examples/functions/list-runtimes.md index ef88ce307..f8f35340e 100644 --- a/examples/2.3.x/server-graphql/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-graphql/examples/functions/list-runtimes.md @@ -1,6 +1,8 @@ ```graphql query { - functionsListRuntimes { + functionsListRuntimes( + total: false + ) { total runtimes { _id diff --git a/examples/2.3.x/server-graphql/examples/functions/list-specifications.md b/examples/2.3.x/server-graphql/examples/functions/list-specifications.md index 75402c357..cd5175b08 100644 --- a/examples/2.3.x/server-graphql/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-graphql/examples/functions/list-specifications.md @@ -1,7 +1,8 @@ ```graphql query { functionsListSpecifications( - type: "runtimes" + type: "runtimes", + total: false ) { total specifications { diff --git a/examples/2.3.x/server-graphql/examples/locale/list-codes.md b/examples/2.3.x/server-graphql/examples/locale/list-codes.md index 0e3967246..a644a58f0 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-codes.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-codes.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCodes { + localeListCodes( + total: false + ) { total localeCodes { code diff --git a/examples/2.3.x/server-graphql/examples/locale/list-continents.md b/examples/2.3.x/server-graphql/examples/locale/list-continents.md index 16ad0fd94..36fe38f20 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-continents.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-continents.md @@ -1,6 +1,8 @@ ```graphql query { - localeListContinents { + localeListContinents( + total: false + ) { total continents { name diff --git a/examples/2.3.x/server-graphql/examples/locale/list-countries-eu.md b/examples/2.3.x/server-graphql/examples/locale/list-countries-eu.md index 293d32c9c..fc9bf2538 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-countries-eu.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountriesEU { + localeListCountriesEU( + total: false + ) { total countries { name diff --git a/examples/2.3.x/server-graphql/examples/locale/list-countries-phones.md b/examples/2.3.x/server-graphql/examples/locale/list-countries-phones.md index b17b065e3..d298bfc99 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-countries-phones.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountriesPhones { + localeListCountriesPhones( + total: false + ) { total phones { code diff --git a/examples/2.3.x/server-graphql/examples/locale/list-countries.md b/examples/2.3.x/server-graphql/examples/locale/list-countries.md index 15f566af0..2e8a3e95e 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-countries.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-countries.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCountries { + localeListCountries( + total: false + ) { total countries { name diff --git a/examples/2.3.x/server-graphql/examples/locale/list-currencies.md b/examples/2.3.x/server-graphql/examples/locale/list-currencies.md index 374d67126..cdc8bf320 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-currencies.md @@ -1,6 +1,8 @@ ```graphql query { - localeListCurrencies { + localeListCurrencies( + total: false + ) { total currencies { symbol diff --git a/examples/2.3.x/server-graphql/examples/locale/list-languages.md b/examples/2.3.x/server-graphql/examples/locale/list-languages.md index ed108f5a4..bf61dfd7c 100644 --- a/examples/2.3.x/server-graphql/examples/locale/list-languages.md +++ b/examples/2.3.x/server-graphql/examples/locale/list-languages.md @@ -1,6 +1,8 @@ ```graphql query { - localeListLanguages { + localeListLanguages( + total: false + ) { total languages { name diff --git a/examples/2.3.x/server-graphql/examples/messaging/create-push.md b/examples/2.3.x/server-graphql/examples/messaging/create-push.md index 0f5f68545..85bb76772 100644 --- a/examples/2.3.x/server-graphql/examples/messaging/create-push.md +++ b/examples/2.3.x/server-graphql/examples/messaging/create-push.md @@ -19,7 +19,8 @@ mutation { scheduledAt: "2020-10-15T06:38:00.000+00:00", contentAvailable: false, critical: false, - priority: "normal" + priority: "normal", + channelId: "<CHANNEL_ID>" ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/messaging/update-email.md b/examples/2.3.x/server-graphql/examples/messaging/update-email.md index 75e45a507..b61b6b080 100644 --- a/examples/2.3.x/server-graphql/examples/messaging/update-email.md +++ b/examples/2.3.x/server-graphql/examples/messaging/update-email.md @@ -2,19 +2,19 @@ mutation { messagingUpdateEmail( messageId: "<MESSAGE_ID>", + subject: "<SUBJECT>", + content: "<CONTENT>", topics: [], users: [], targets: [], - subject: "<SUBJECT>", - content: "<CONTENT>", - draft: false, - html: false, cc: [], bcc: [], + attachments: [], replyToEmail: "email@example.com", replyToName: "<REPLY_TO_NAME>", - scheduledAt: "2020-10-15T06:38:00.000+00:00", - attachments: [] + draft: false, + html: false, + scheduledAt: "2020-10-15T06:38:00.000+00:00" ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/messaging/update-push.md b/examples/2.3.x/server-graphql/examples/messaging/update-push.md index 6431427d1..d44938fae 100644 --- a/examples/2.3.x/server-graphql/examples/messaging/update-push.md +++ b/examples/2.3.x/server-graphql/examples/messaging/update-push.md @@ -2,11 +2,11 @@ mutation { messagingUpdatePush( messageId: "<MESSAGE_ID>", + title: "<TITLE>", + body: "<BODY>", topics: [], users: [], targets: [], - title: "<TITLE>", - body: "<BODY>", data: "{}", action: "<ACTION>", image: "<ID1:ID2>", @@ -19,7 +19,8 @@ mutation { scheduledAt: "2020-10-15T06:38:00.000+00:00", contentAvailable: false, critical: false, - priority: "normal" + priority: "normal", + channelId: "<CHANNEL_ID>" ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/messaging/update-sms.md b/examples/2.3.x/server-graphql/examples/messaging/update-sms.md index 4f02a8256..59f4d2128 100644 --- a/examples/2.3.x/server-graphql/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-graphql/examples/messaging/update-sms.md @@ -2,10 +2,10 @@ mutation { messagingUpdateSMS( messageId: "<MESSAGE_ID>", + content: "<CONTENT>", topics: [], users: [], targets: [], - content: "<CONTENT>", draft: false, scheduledAt: "2020-10-15T06:38:00.000+00:00" ) { diff --git a/examples/2.3.x/server-graphql/examples/oauth2/introspect.md b/examples/2.3.x/server-graphql/examples/oauth2/introspect.md new file mode 100644 index 000000000..831783511 --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/oauth2/introspect.md @@ -0,0 +1,23 @@ +```graphql +mutation { + oauth2Introspect( + token: "<TOKEN>", + tokenTypeHint: "access_token", + clientId: "<CLIENT_ID>", + clientSecret: "<CLIENT_SECRET>" + ) { + active + token_use + token_type + scope + client_id + sub + aud + iss + exp + iat + jti + authorization_details + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-graphql/examples/organization/create-ephemeral-project-key.md index 0cf04734f..eea1c666e 100644 --- a/examples/2.3.x/server-graphql/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-graphql/examples/organization/create-ephemeral-project-key.md @@ -2,7 +2,7 @@ mutation { organizationCreateEphemeralProjectKey( projectId: "<PROJECT_ID>", - scopes: [], + scopes: ["users.read"], duration: 600 ) { _id diff --git a/examples/2.3.x/server-graphql/examples/organization/update-project-key.md b/examples/2.3.x/server-graphql/examples/organization/update-project-key.md index e9d3661f4..92a9979d1 100644 --- a/examples/2.3.x/server-graphql/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-graphql/examples/organization/update-project-key.md @@ -4,7 +4,7 @@ mutation { projectId: "<PROJECT_ID>", keyId: "<KEY_ID>", name: "<NAME>", - scopes: [], + scopes: ["users.read"], expire: "2020-10-15T06:38:00.000+00:00" ) { _id diff --git a/examples/2.3.x/server-graphql/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-graphql/examples/project/create-ephemeral-key.md index c4b996d3d..93ea5ddb1 100644 --- a/examples/2.3.x/server-graphql/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-graphql/examples/project/create-ephemeral-key.md @@ -1,7 +1,7 @@ ```graphql mutation { projectCreateEphemeralKey( - scopes: [], + scopes: ["users.read"], duration: 600 ) { _id diff --git a/examples/2.3.x/server-graphql/examples/project/create-smtp-test.md b/examples/2.3.x/server-graphql/examples/project/create-smtp-test.md index 2640b7658..8638cb8cc 100644 --- a/examples/2.3.x/server-graphql/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-graphql/examples/project/create-smtp-test.md @@ -1,7 +1,7 @@ ```graphql mutation { projectCreateSMTPTest( - emails: [] + emails: ["recipient@example.com"] ) { status } diff --git a/examples/2.3.x/server-graphql/examples/project/get-o-auth-2-provider.md b/examples/2.3.x/server-graphql/examples/project/get-o-auth-2-provider.md index 5e49dccd6..cdcbcc4db 100644 --- a/examples/2.3.x/server-graphql/examples/project/get-o-auth-2-provider.md +++ b/examples/2.3.x/server-graphql/examples/project/get-o-auth-2-provider.md @@ -7,6 +7,7 @@ query { enabled clientId clientSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-key.md b/examples/2.3.x/server-graphql/examples/project/update-key.md index a981941eb..3634fc1a3 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-key.md +++ b/examples/2.3.x/server-graphql/examples/project/update-key.md @@ -3,7 +3,7 @@ mutation { projectUpdateKey( keyId: "<KEY_ID>", name: "<NAME>", - scopes: [], + scopes: ["users.read"], expire: "2020-10-15T06:38:00.000+00:00" ) { _id diff --git a/examples/2.3.x/server-graphql/examples/project/update-labels.md b/examples/2.3.x/server-graphql/examples/project/update-labels.md index cc25ff201..3011d9b6b 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-labels.md +++ b/examples/2.3.x/server-graphql/examples/project/update-labels.md @@ -1,7 +1,7 @@ ```graphql mutation { projectUpdateLabels( - labels: [] + labels: ["production"] ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-auth-0.md index 746d0517f..c183b581b 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-auth-0.md @@ -4,12 +4,14 @@ mutation { clientId: "<CLIENT_ID>", clientSecret: "<CLIENT_SECRET>", endpoint: "<ENDPOINT>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt endpoint } } diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-discord.md index 0b3ed71c6..cff29a87a 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-discord.md @@ -3,12 +3,14 @@ mutation { projectUpdateOAuth2Discord( clientId: "<CLIENT_ID>", clientSecret: "<CLIENT_SECRET>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-git-hub.md index f5a3880bd..a67232d98 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-git-hub.md @@ -3,12 +3,14 @@ mutation { projectUpdateOAuth2GitHub( clientId: "<CLIENT_ID>", clientSecret: "<CLIENT_SECRET>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-kakao.md index 5efba028a..d7bd0d5f2 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-kakao.md @@ -3,12 +3,14 @@ mutation { projectUpdateOAuth2Kakao( clientId: "<CLIENT_ID>", clientSecret: "<CLIENT_SECRET>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-microsoft.md index b80848c01..b78b8cb7d 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-microsoft.md @@ -4,12 +4,14 @@ mutation { applicationId: "<APPLICATION_ID>", applicationSecret: "<APPLICATION_SECRET>", tenant: "<TENANT>", + prompt: [], enabled: false ) { _id enabled applicationId applicationSecret + prompt tenant } } diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-oidc.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-oidc.md index ddbd12084..0c663aad9 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-oidc.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-oidc.md @@ -15,11 +15,11 @@ mutation { enabled clientId clientSecret + prompt wellKnownURL authorizationURL tokenURL userInfoURL - prompt maxAge } } diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-okta.md index 5075b3f27..e88634d28 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-okta.md @@ -5,12 +5,14 @@ mutation { clientSecret: "<CLIENT_SECRET>", domain: "example.com", authorizationServerId: "<AUTHORIZATION_SERVER_ID>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt domain authorizationServerId } diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-salesforce.md index ab63ff525..df3f00fc9 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-salesforce.md @@ -3,12 +3,14 @@ mutation { projectUpdateOAuth2Salesforce( customerKey: "<CUSTOMER_KEY>", customerSecret: "<CUSTOMER_SECRET>", + prompt: [], enabled: false ) { _id enabled customerKey customerSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..889267b5d --- /dev/null +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,14 @@ +```graphql +mutation { + projectUpdateOAuth2Webflow( + clientId: "<CLIENT_ID>", + clientSecret: "<CLIENT_SECRET>", + enabled: false + ) { + _id + enabled + clientId + clientSecret + } +} +``` diff --git a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-zoho.md index b71bd18d5..67479ac71 100644 --- a/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-graphql/examples/project/update-o-auth-2-zoho.md @@ -3,12 +3,14 @@ mutation { projectUpdateOAuth2Zoho( clientId: "<CLIENT_ID>", clientSecret: "<CLIENT_SECRET>", + prompt: [], enabled: false ) { _id enabled clientId clientSecret + prompt } } ``` diff --git a/examples/2.3.x/server-graphql/examples/sites/list-frameworks.md b/examples/2.3.x/server-graphql/examples/sites/list-frameworks.md index 1faf1fd83..1cc0c6007 100644 --- a/examples/2.3.x/server-graphql/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-graphql/examples/sites/list-frameworks.md @@ -1,6 +1,8 @@ ```graphql query { - sitesListFrameworks { + sitesListFrameworks( + total: false + ) { total frameworks { key diff --git a/examples/2.3.x/server-graphql/examples/sites/list-specifications.md b/examples/2.3.x/server-graphql/examples/sites/list-specifications.md index db5395067..b2758c63e 100644 --- a/examples/2.3.x/server-graphql/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-graphql/examples/sites/list-specifications.md @@ -1,7 +1,8 @@ ```graphql query { sitesListSpecifications( - type: "runtimes" + type: "runtimes", + total: false ) { total specifications { diff --git a/examples/2.3.x/server-graphql/examples/tablesdb/create-index.md b/examples/2.3.x/server-graphql/examples/tablesdb/create-index.md index 4edc9f94e..41e9a3acb 100644 --- a/examples/2.3.x/server-graphql/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-graphql/examples/tablesdb/create-index.md @@ -5,7 +5,7 @@ mutation { tableId: "<TABLE_ID>", key: "<KEY>", type: "key", - columns: [], + columns: ["username"], orders: [], lengths: [] ) { diff --git a/examples/2.3.x/server-graphql/examples/tablesdb/create-rows.md b/examples/2.3.x/server-graphql/examples/tablesdb/create-rows.md index 9a93b02fa..9598c99b5 100644 --- a/examples/2.3.x/server-graphql/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-graphql/examples/tablesdb/create-rows.md @@ -3,7 +3,16 @@ mutation { tablesDBCreateRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-graphql/examples/tablesdb/delete-rows.md index 6fa0a40fd..ee5a5b279 100644 --- a/examples/2.3.x/server-graphql/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-graphql/examples/tablesdb/delete-rows.md @@ -3,7 +3,7 @@ mutation { tablesDBDeleteRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - queries: [], + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-graphql/examples/tablesdb/list-transactions.md index bc3663bec..61d1d7a44 100644 --- a/examples/2.3.x/server-graphql/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-graphql/examples/tablesdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { tablesDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/server-graphql/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-graphql/examples/tablesdb/upsert-rows.md index fe106a6d5..77904611f 100644 --- a/examples/2.3.x/server-graphql/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-graphql/examples/tablesdb/upsert-rows.md @@ -3,7 +3,16 @@ mutation { tablesDBUpsertRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/teams/create-membership.md b/examples/2.3.x/server-graphql/examples/teams/create-membership.md index 67b153ea1..223760490 100644 --- a/examples/2.3.x/server-graphql/examples/teams/create-membership.md +++ b/examples/2.3.x/server-graphql/examples/teams/create-membership.md @@ -2,7 +2,7 @@ mutation { teamsCreateMembership( teamId: "<TEAM_ID>", - roles: [], + roles: ["editor"], email: "email@example.com", userId: "<USER_ID>", phone: "+12065550100", diff --git a/examples/2.3.x/server-graphql/examples/teams/update-membership.md b/examples/2.3.x/server-graphql/examples/teams/update-membership.md index c08593729..d456b7239 100644 --- a/examples/2.3.x/server-graphql/examples/teams/update-membership.md +++ b/examples/2.3.x/server-graphql/examples/teams/update-membership.md @@ -3,7 +3,7 @@ mutation { teamsUpdateMembership( teamId: "<TEAM_ID>", membershipId: "<MEMBERSHIP_ID>", - roles: [] + roles: ["editor"] ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/users/update-labels.md b/examples/2.3.x/server-graphql/examples/users/update-labels.md index 518dbc487..b53c25cb5 100644 --- a/examples/2.3.x/server-graphql/examples/users/update-labels.md +++ b/examples/2.3.x/server-graphql/examples/users/update-labels.md @@ -2,7 +2,7 @@ mutation { usersUpdateLabels( userId: "<USER_ID>", - labels: [] + labels: ["subscriber"] ) { _id _createdAt diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-graphql/examples/vectorsdb/create-collection.md index be4bcde18..e4b934ed1 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/create-collection.md @@ -4,7 +4,7 @@ mutation { databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, + dimension: 4, permissions: ["read(\"any\")"], documentSecurity: false, enabled: false diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-graphql/examples/vectorsdb/create-documents.md index 6b7a5298d..e68a3f039 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/create-documents.md @@ -3,7 +3,20 @@ mutation { vectorsDBCreateDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/create-index.md b/examples/2.3.x/server-graphql/examples/vectorsdb/create-index.md index c24dab95f..d85fdc8a3 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/create-index.md @@ -5,7 +5,7 @@ mutation { collectionId: "<COLLECTION_ID>", key: "<KEY>", type: "hnsw_euclidean", - attributes: [], + attributes: ["embeddings"], orders: [], lengths: [] ) { diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-graphql/examples/vectorsdb/create-operations.md index b1d86d55b..b9fc3fc7f 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/create-operations.md @@ -9,7 +9,15 @@ mutation { "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-graphql/examples/vectorsdb/delete-documents.md index e84bededa..578a4dc42 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/delete-documents.md @@ -3,7 +3,7 @@ mutation { vectorsDBDeleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-graphql/examples/vectorsdb/list-transactions.md index 1f2ea4aa4..307764ec2 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/list-transactions.md @@ -1,7 +1,8 @@ ```graphql query { vectorsDBListTransactions( - queries: [] + queries: [], + total: false ) { total transactions { diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-graphql/examples/vectorsdb/update-collection.md index 4728d0970..35db26ca2 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/update-collection.md @@ -4,7 +4,7 @@ mutation { databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, + dimension: 4, permissions: ["read(\"any\")"], documentSecurity: false, enabled: false diff --git a/examples/2.3.x/server-graphql/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-graphql/examples/vectorsdb/upsert-documents.md index 852f90d7c..cf92eb896 100644 --- a/examples/2.3.x/server-graphql/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-graphql/examples/vectorsdb/upsert-documents.md @@ -3,7 +3,20 @@ mutation { vectorsDBUpsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: "<TRANSACTION_ID>" ) { total diff --git a/examples/2.3.x/server-graphql/examples/webhooks/create.md b/examples/2.3.x/server-graphql/examples/webhooks/create.md index 20182a3b9..3852bc89b 100644 --- a/examples/2.3.x/server-graphql/examples/webhooks/create.md +++ b/examples/2.3.x/server-graphql/examples/webhooks/create.md @@ -4,7 +4,7 @@ mutation { webhookId: "<WEBHOOK_ID>", url: "https://example.com/webhook", name: "<NAME>", - events: [], + events: ["users.*.create"], enabled: false, tls: false, authUsername: "<AUTH_USERNAME>", diff --git a/examples/2.3.x/server-graphql/examples/webhooks/update.md b/examples/2.3.x/server-graphql/examples/webhooks/update.md index 6917853a7..035f83f98 100644 --- a/examples/2.3.x/server-graphql/examples/webhooks/update.md +++ b/examples/2.3.x/server-graphql/examples/webhooks/update.md @@ -4,7 +4,7 @@ mutation { webhookId: "<WEBHOOK_ID>", name: "<NAME>", url: "https://example.com/webhook", - events: [], + events: ["users.*.create"], enabled: false, tls: false, authUsername: "<AUTH_USERNAME>", diff --git a/examples/2.3.x/server-kotlin/java/account/create-email-password-session.md b/examples/2.3.x/server-kotlin/java/account/create-email-password-session.md index c6c08c959..fc7ba2eed 100644 --- a/examples/2.3.x/server-kotlin/java/account/create-email-password-session.md +++ b/examples/2.3.x/server-kotlin/java/account/create-email-password-session.md @@ -13,6 +13,7 @@ Account account = new Account(client); account.createEmailPasswordSession( "email@example.com", // email "password", // password + 60L, // duration (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/account/create-id-token-session.md b/examples/2.3.x/server-kotlin/java/account/create-id-token-session.md index 358d32266..0ce1d7000 100644 --- a/examples/2.3.x/server-kotlin/java/account/create-id-token-session.md +++ b/examples/2.3.x/server-kotlin/java/account/create-id-token-session.md @@ -16,7 +16,7 @@ account.createIdTokenSession( "<ID_TOKEN>", // idToken "<NONCE>", // nonce (optional) "<ACCESS_TOKEN>", // accessToken (optional) - 0, // accessTokenExpiry (optional) + 0L, // accessTokenExpiry (optional) "<NAME>", // name (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/account/delete-sessions.md b/examples/2.3.x/server-kotlin/java/account/delete-sessions.md index ef087fd4a..533f99518 100644 --- a/examples/2.3.x/server-kotlin/java/account/delete-sessions.md +++ b/examples/2.3.x/server-kotlin/java/account/delete-sessions.md @@ -10,12 +10,16 @@ Client client = new Client() Account account = new Account(client); -account.deleteSessions(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +account.deleteSessions( + false, // current (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/account/list-sessions.md b/examples/2.3.x/server-kotlin/java/account/list-sessions.md index bb25cff16..38b803432 100644 --- a/examples/2.3.x/server-kotlin/java/account/list-sessions.md +++ b/examples/2.3.x/server-kotlin/java/account/list-sessions.md @@ -10,12 +10,16 @@ Client client = new Client() Account account = new Account(client); -account.listSessions(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +account.listSessions( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/create-event.md b/examples/2.3.x/server-kotlin/java/analytics/create-event.md new file mode 100644 index 000000000..21106da77 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/create-event.md @@ -0,0 +1,37 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession(""); // The user session to authenticate with + +Analytics analytics = new Analytics(client); + +analytics.createEvent( + "<PROPERTY_ID>", // propertyId + "<NAME>", // name + "https://example.com", // url + "<DOMAIN>", // domain (optional) + "<REFERRER>", // referrer (optional) + 0L, // screenWidth (optional) + "<SESSION_HASH>", // sessionHash (optional) + 0L, // scrollDepth (optional) + 0L, // engagementTime (optional) + List.of(), // props (optional) + "<USER_ID>", // userId (optional) + "<IP>", // ip (optional) + "<USER_AGENT>", // userAgent (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/create-property.md b/examples/2.3.x/server-kotlin/java/analytics/create-property.md new file mode 100644 index 000000000..1a6247e1a --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/create-property.md @@ -0,0 +1,31 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.createProperty( + "<PROPERTY_ID>", // propertyId + "<NAME>", // name + "<DOMAIN>", // domain (optional) + "<TIMEZONE>", // timezone (optional) + false, // enabled (optional) + false, // public (optional) + List.of(), // allowedOrigins (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/delete-property.md b/examples/2.3.x/server-kotlin/java/analytics/delete-property.md new file mode 100644 index 000000000..1cdfc0f9f --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/delete-property.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.deleteProperty( + "<PROPERTY_ID>", // propertyId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/get-property.md b/examples/2.3.x/server-kotlin/java/analytics/get-property.md new file mode 100644 index 000000000..c029fc870 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/get-property.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.getProperty( + "<PROPERTY_ID>", // propertyId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/list-metrics.md b/examples/2.3.x/server-kotlin/java/analytics/list-metrics.md new file mode 100644 index 000000000..ccdf23644 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/list-metrics.md @@ -0,0 +1,34 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; +import io.appwrite.enums.AnalyticsInterval; +import io.appwrite.enums.AnalyticsDimension; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.listMetrics( + "<PROPERTY_ID>", // propertyId + List.of(), // queries (optional) + AnalyticsInterval.ONE_HOUR, // interval (optional) + List.of(AnalyticsDimension.COUNTRY), // dimensions (optional) + "<DATE_RANGE>", // dateRange (optional) + "2020-10-15T06:38:00.000+00:00", // startAt (optional) + "2020-10-15T06:38:00.000+00:00", // endAt (optional) + 1L, // limit (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/list-properties.md b/examples/2.3.x/server-kotlin/java/analytics/list-properties.md new file mode 100644 index 000000000..fc634f5d8 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/list-properties.md @@ -0,0 +1,27 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.listProperties( + List.of(), // queries (optional) + "<SEARCH>", // search (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/analytics/update-property.md b/examples/2.3.x/server-kotlin/java/analytics/update-property.md new file mode 100644 index 000000000..2dd36d6bc --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/analytics/update-property.md @@ -0,0 +1,31 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Analytics; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Analytics analytics = new Analytics(client); + +analytics.updateProperty( + "<PROPERTY_ID>", // propertyId + "<NAME>", // name (optional) + "<DOMAIN>", // domain (optional) + "<TIMEZONE>", // timezone (optional) + false, // enabled (optional) + false, // public (optional) + List.of(), // allowedOrigins (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/avatars/delete-photo.md b/examples/2.3.x/server-kotlin/java/avatars/delete-photo.md new file mode 100644 index 000000000..49b2f8653 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/avatars/delete-photo.md @@ -0,0 +1,21 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Avatars; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession(""); // The user session to authenticate with + +Avatars avatars = new Avatars(client); + +avatars.deletePhoto(new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); +})); +``` diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-browser.md b/examples/2.3.x/server-kotlin/java/avatars/get-browser.md index 72748afcb..475c7321b 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-browser.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-browser.md @@ -13,9 +13,9 @@ Avatars avatars = new Avatars(client); avatars.getBrowser( Browser.AVANT_BROWSER, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-credit-card.md b/examples/2.3.x/server-kotlin/java/avatars/get-credit-card.md index 8f93da91a..af05b09f3 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-credit-card.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-credit-card.md @@ -13,9 +13,9 @@ Avatars avatars = new Avatars(client); avatars.getCreditCard( CreditCard.AMERICAN_EXPRESS, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-flag.md b/examples/2.3.x/server-kotlin/java/avatars/get-flag.md index f66a872d3..ec5d4ac74 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-flag.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-flag.md @@ -13,9 +13,9 @@ Avatars avatars = new Avatars(client); avatars.getFlag( Flag.AFGHANISTAN, // code - 0, // width (optional) - 0, // height (optional) - -1, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + -1L, // quality (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-image.md b/examples/2.3.x/server-kotlin/java/avatars/get-image.md index 7f93b9f9f..bbd07b7ad 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-image.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-image.md @@ -12,8 +12,8 @@ Avatars avatars = new Avatars(client); avatars.getImage( "https://example.com", // url - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-initials.md b/examples/2.3.x/server-kotlin/java/avatars/get-initials.md index 79e9c7b14..634467ca7 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-initials.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-initials.md @@ -12,8 +12,8 @@ Avatars avatars = new Avatars(client); avatars.getInitials( "<NAME>", // name (optional) - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) "FFFFFF", // background (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-photo.md b/examples/2.3.x/server-kotlin/java/avatars/get-photo.md index 831e9cc3d..6b1b92b00 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-photo.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-photo.md @@ -11,9 +11,9 @@ Client client = new Client() Avatars avatars = new Avatars(client); avatars.getPhoto( - 0, // width (optional) - 0, // height (optional) - 0, // quality (optional) + 0L, // width (optional) + 0L, // height (optional) + 0L, // quality (optional) "png", // output (optional) "g", // rating (optional) "current()", // userId (optional) diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-qr.md b/examples/2.3.x/server-kotlin/java/avatars/get-qr.md index 0e22f63f1..24208c3c5 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-qr.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-qr.md @@ -12,8 +12,8 @@ Avatars avatars = new Avatars(client); avatars.getQR( "<TEXT>", // text - 1, // size (optional) - 0, // margin (optional) + 1L, // size (optional) + 0L, // margin (optional) false, // download (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/avatars/get-screenshot.md b/examples/2.3.x/server-kotlin/java/avatars/get-screenshot.md index c8b5966fe..8769ee587 100644 --- a/examples/2.3.x/server-kotlin/java/avatars/get-screenshot.md +++ b/examples/2.3.x/server-kotlin/java/avatars/get-screenshot.md @@ -17,12 +17,11 @@ Avatars avatars = new Avatars(client); avatars.getScreenshot( "https://example.com", // url Map.of( - "Authorization", "Bearer token123", - "X-Custom-Header", "value" + "Accept-Language", "en-US,en;q=0.9" ), // headers (optional) - 1920, // viewportWidth (optional) - 1080, // viewportHeight (optional) - 2, // scale (optional) + 1920L, // viewportWidth (optional) + 1080L, // viewportHeight (optional) + 2.0, // scale (optional) BrowserTheme.DARK, // theme (optional) "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // userAgent (optional) true, // fullpage (optional) @@ -30,13 +29,13 @@ avatars.getScreenshot( Timezone.AFRICA_ABIDJAN, // timezone (optional) 37.7749, // latitude (optional) -122.4194, // longitude (optional) - 100, // accuracy (optional) + 100.0, // accuracy (optional) true, // touch (optional) List.of(BrowserPermission.GEOLOCATION, BrowserPermission.NOTIFICATIONS), // permissions (optional) - 3, // sleep (optional) - 800, // width (optional) - 600, // height (optional) - 85, // quality (optional) + 3L, // sleep (optional) + 800L, // width (optional) + 600L, // height (optional) + 85L, // quality (optional) ImageFormat.JPEG, // output (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/avatars/update-photo.md b/examples/2.3.x/server-kotlin/java/avatars/update-photo.md new file mode 100644 index 000000000..41a94954a --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/avatars/update-photo.md @@ -0,0 +1,26 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.models.InputFile; +import io.appwrite.services.Avatars; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession(""); // The user session to authenticate with + +Avatars avatars = new Avatars(client); + +avatars.updatePhoto( + InputFile.fromPath("file.png"), // file + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/backups/create-policy.md b/examples/2.3.x/server-kotlin/java/backups/create-policy.md index 42003cc4a..da8e83386 100644 --- a/examples/2.3.x/server-kotlin/java/backups/create-policy.md +++ b/examples/2.3.x/server-kotlin/java/backups/create-policy.md @@ -14,7 +14,7 @@ Backups backups = new Backups(client); backups.createPolicy( "<POLICY_ID>", // policyId List.of(BackupServices.DATABASES), // services - 1, // retention + 1L, // retention "", // schedule "<NAME>", // name (optional) "<RESOURCE_ID>", // resourceId (optional) diff --git a/examples/2.3.x/server-kotlin/java/backups/update-policy.md b/examples/2.3.x/server-kotlin/java/backups/update-policy.md index c27053628..12f450e2f 100644 --- a/examples/2.3.x/server-kotlin/java/backups/update-policy.md +++ b/examples/2.3.x/server-kotlin/java/backups/update-policy.md @@ -13,7 +13,7 @@ Backups backups = new Backups(client); backups.updatePolicy( "<POLICY_ID>", // policyId "<NAME>", // name (optional) - 1, // retention (optional) + 1L, // retention (optional) "", // schedule (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-big-int-attribute.md b/examples/2.3.x/server-kotlin/java/databases/create-big-int-attribute.md index ab0a21c6a..16724e328 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-big-int-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-big-int-attribute.md @@ -15,9 +15,9 @@ databases.createBigIntAttribute( "<COLLECTION_ID>", // collectionId "<KEY>", // key false, // required - 0, // min (optional) - 1000000, // max (optional) - 0, // default (optional) + 0L, // min (optional) + 1000000L, // max (optional) + 0L, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-documents.md b/examples/2.3.x/server-kotlin/java/databases/create-documents.md index 5a158bf59..a6ca64d8d 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-documents.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-documents.md @@ -13,7 +13,14 @@ Databases databases = new Databases(client); databases.createDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-float-attribute.md b/examples/2.3.x/server-kotlin/java/databases/create-float-attribute.md index 6af5f366b..ec24a9176 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-float-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-float-attribute.md @@ -15,8 +15,8 @@ databases.createFloatAttribute( "<COLLECTION_ID>", // collectionId "<KEY>", // key false, // required - 0, // min (optional) - 100, // max (optional) + 0.0, // min (optional) + 100.0, // max (optional) 10.5, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-index.md b/examples/2.3.x/server-kotlin/java/databases/create-index.md index 357440dc8..61ad2fbde 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-index.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-index.md @@ -17,7 +17,7 @@ databases.createIndex( "<COLLECTION_ID>", // collectionId "<KEY>", // key DatabasesIndexType.KEY, // type - List.of(), // attributes + List.of("username"), // attributes List.of(OrderBy.ASC), // orders (optional) List.of(), // lengths (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-integer-attribute.md b/examples/2.3.x/server-kotlin/java/databases/create-integer-attribute.md index 72cccd75d..5f71458d3 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-integer-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-integer-attribute.md @@ -15,9 +15,9 @@ databases.createIntegerAttribute( "<COLLECTION_ID>", // collectionId "<KEY>", // key false, // required - 0, // min (optional) - 100, // max (optional) - 10, // default (optional) + 0L, // min (optional) + 100L, // max (optional) + 10L, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/create-string-attribute.md b/examples/2.3.x/server-kotlin/java/databases/create-string-attribute.md index 2a06f8c12..cdd10dbf4 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-string-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-string-attribute.md @@ -14,7 +14,7 @@ databases.createStringAttribute( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId "<KEY>", // key - 1, // size + 1L, // size false, // required "Hello World", // default (optional) false, // array (optional) diff --git a/examples/2.3.x/server-kotlin/java/databases/create-transaction.md b/examples/2.3.x/server-kotlin/java/databases/create-transaction.md index 4cbee4edb..a5b1b5e8a 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-transaction.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-transaction.md @@ -11,7 +11,7 @@ Client client = new Client() Databases databases = new Databases(client); databases.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/databases/create-varchar-attribute.md b/examples/2.3.x/server-kotlin/java/databases/create-varchar-attribute.md index 0b16ca203..017c9b0dd 100644 --- a/examples/2.3.x/server-kotlin/java/databases/create-varchar-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/create-varchar-attribute.md @@ -14,7 +14,7 @@ databases.createVarcharAttribute( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId "<KEY>", // key - 1, // size + 1L, // size false, // required "Hello World", // default (optional) false, // array (optional) diff --git a/examples/2.3.x/server-kotlin/java/databases/decrement-document-attribute.md b/examples/2.3.x/server-kotlin/java/databases/decrement-document-attribute.md index 9c271f5b7..46ca93569 100644 --- a/examples/2.3.x/server-kotlin/java/databases/decrement-document-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/decrement-document-attribute.md @@ -15,8 +15,8 @@ databases.decrementDocumentAttribute( "<COLLECTION_ID>", // collectionId "<DOCUMENT_ID>", // documentId "<ATTRIBUTE>", // attribute - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/delete-documents.md b/examples/2.3.x/server-kotlin/java/databases/delete-documents.md index 5c4392309..46d4da3d0 100644 --- a/examples/2.3.x/server-kotlin/java/databases/delete-documents.md +++ b/examples/2.3.x/server-kotlin/java/databases/delete-documents.md @@ -13,7 +13,7 @@ Databases databases = new Databases(client); databases.deleteDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // queries (optional) + List.of("{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/increment-document-attribute.md b/examples/2.3.x/server-kotlin/java/databases/increment-document-attribute.md index b78f9af02..34ffc07ee 100644 --- a/examples/2.3.x/server-kotlin/java/databases/increment-document-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/increment-document-attribute.md @@ -15,8 +15,8 @@ databases.incrementDocumentAttribute( "<COLLECTION_ID>", // collectionId "<DOCUMENT_ID>", // documentId "<ATTRIBUTE>", // attribute - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/list-documents.md b/examples/2.3.x/server-kotlin/java/databases/list-documents.md index f961c7a18..a24524a32 100644 --- a/examples/2.3.x/server-kotlin/java/databases/list-documents.md +++ b/examples/2.3.x/server-kotlin/java/databases/list-documents.md @@ -16,7 +16,7 @@ databases.listDocuments( List.of(), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/databases/list-transactions.md b/examples/2.3.x/server-kotlin/java/databases/list-transactions.md index 27fe4e936..61957f0fd 100644 --- a/examples/2.3.x/server-kotlin/java/databases/list-transactions.md +++ b/examples/2.3.x/server-kotlin/java/databases/list-transactions.md @@ -12,6 +12,7 @@ Databases databases = new Databases(client); databases.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/databases/update-big-int-attribute.md b/examples/2.3.x/server-kotlin/java/databases/update-big-int-attribute.md index def245d7b..e43a8e9ca 100644 --- a/examples/2.3.x/server-kotlin/java/databases/update-big-int-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/update-big-int-attribute.md @@ -15,9 +15,9 @@ databases.updateBigIntAttribute( "<COLLECTION_ID>", // collectionId "<KEY>", // key false, // required - 0, // default - 0, // min (optional) - 1000000, // max (optional) + 0L, // default + 0L, // min (optional) + 1000000L, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/update-float-attribute.md b/examples/2.3.x/server-kotlin/java/databases/update-float-attribute.md index b8277c551..a42467924 100644 --- a/examples/2.3.x/server-kotlin/java/databases/update-float-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/update-float-attribute.md @@ -16,8 +16,8 @@ databases.updateFloatAttribute( "<KEY>", // key false, // required 10.5, // default - 0, // min (optional) - 100, // max (optional) + 0.0, // min (optional) + 100.0, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/update-integer-attribute.md b/examples/2.3.x/server-kotlin/java/databases/update-integer-attribute.md index ae0d0ccdc..185c3c926 100644 --- a/examples/2.3.x/server-kotlin/java/databases/update-integer-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/update-integer-attribute.md @@ -15,9 +15,9 @@ databases.updateIntegerAttribute( "<COLLECTION_ID>", // collectionId "<KEY>", // key false, // required - 10, // default - 0, // min (optional) - 100, // max (optional) + 10L, // default + 0L, // min (optional) + 100L, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/update-string-attribute.md b/examples/2.3.x/server-kotlin/java/databases/update-string-attribute.md index 49c4f9558..f9b0fdef4 100644 --- a/examples/2.3.x/server-kotlin/java/databases/update-string-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/update-string-attribute.md @@ -16,7 +16,7 @@ databases.updateStringAttribute( "<KEY>", // key false, // required "Hello World", // default - 1, // size (optional) + 1L, // size (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/update-varchar-attribute.md b/examples/2.3.x/server-kotlin/java/databases/update-varchar-attribute.md index a00d323a8..18610a9a8 100644 --- a/examples/2.3.x/server-kotlin/java/databases/update-varchar-attribute.md +++ b/examples/2.3.x/server-kotlin/java/databases/update-varchar-attribute.md @@ -16,7 +16,7 @@ databases.updateVarcharAttribute( "<KEY>", // key false, // required "Hello World", // default - 1, // size (optional) + 1L, // size (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/databases/upsert-documents.md b/examples/2.3.x/server-kotlin/java/databases/upsert-documents.md index 80e3862e1..7d8f04acb 100644 --- a/examples/2.3.x/server-kotlin/java/databases/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/java/databases/upsert-documents.md @@ -13,7 +13,14 @@ Databases databases = new Databases(client); databases.upsertDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/create-documents.md b/examples/2.3.x/server-kotlin/java/documentsdb/create-documents.md index 10058e931..039a7ded1 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/create-documents.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/create-documents.md @@ -13,7 +13,14 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.createDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/create-index.md b/examples/2.3.x/server-kotlin/java/documentsdb/create-index.md index b72b576bf..bc02e79d5 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/create-index.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/create-index.md @@ -17,7 +17,7 @@ documentsDB.createIndex( "<COLLECTION_ID>", // collectionId "<KEY>", // key DocumentsDBIndexType.KEY, // type - List.of(), // attributes + List.of("username"), // attributes List.of(OrderBy.ASC), // orders (optional) List.of(), // lengths (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/create-transaction.md b/examples/2.3.x/server-kotlin/java/documentsdb/create-transaction.md index 1cd52e528..b2330d86c 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/create-transaction.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/create-transaction.md @@ -11,7 +11,7 @@ Client client = new Client() DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/create.md b/examples/2.3.x/server-kotlin/java/documentsdb/create.md index 3911b1e89..3646082e5 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/create.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/create.md @@ -15,7 +15,7 @@ documentsDB.create( "<NAME>", // name false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/decrement-document-attribute.md b/examples/2.3.x/server-kotlin/java/documentsdb/decrement-document-attribute.md index 6f5803d23..461a348c5 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/decrement-document-attribute.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/decrement-document-attribute.md @@ -15,8 +15,8 @@ documentsDB.decrementDocumentAttribute( "<COLLECTION_ID>", // collectionId "<DOCUMENT_ID>", // documentId "<ATTRIBUTE>", // attribute - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/delete-documents.md b/examples/2.3.x/server-kotlin/java/documentsdb/delete-documents.md index 38acb98c3..0fc376108 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/delete-documents.md @@ -13,7 +13,7 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.deleteDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // queries (optional) + List.of("{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/increment-document-attribute.md b/examples/2.3.x/server-kotlin/java/documentsdb/increment-document-attribute.md index 9b3082fc7..bb51aceef 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/increment-document-attribute.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/increment-document-attribute.md @@ -15,8 +15,8 @@ documentsDB.incrementDocumentAttribute( "<COLLECTION_ID>", // collectionId "<DOCUMENT_ID>", // documentId "<ATTRIBUTE>", // attribute - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/list-documents.md b/examples/2.3.x/server-kotlin/java/documentsdb/list-documents.md index 8cbcd8aaf..0a90cff66 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/list-documents.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/list-documents.md @@ -16,7 +16,7 @@ documentsDB.listDocuments( List.of(), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/list-operations.md b/examples/2.3.x/server-kotlin/java/documentsdb/list-operations.md index b2b20ec98..aa87d11f4 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/list-operations.md @@ -13,8 +13,8 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/list-transactions.md b/examples/2.3.x/server-kotlin/java/documentsdb/list-transactions.md index cc56f53e8..ceb5df97c 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/list-transactions.md @@ -12,6 +12,7 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/update.md b/examples/2.3.x/server-kotlin/java/documentsdb/update.md index 9e4115325..b0abb22a8 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/update.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/update.md @@ -15,7 +15,7 @@ documentsDB.update( "<NAME>", // name false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/documentsdb/upsert-documents.md b/examples/2.3.x/server-kotlin/java/documentsdb/upsert-documents.md index 97582524b..3e8d98677 100644 --- a/examples/2.3.x/server-kotlin/java/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/java/documentsdb/upsert-documents.md @@ -13,7 +13,14 @@ DocumentsDB documentsDB = new DocumentsDB(client); documentsDB.upsertDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-a.md b/examples/2.3.x/server-kotlin/java/domains/create-record-a.md index 13c81cd60..4649d9808 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-a.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-a.md @@ -14,7 +14,7 @@ domains.createRecordA( "<DOMAIN_ID>", // domainId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-aaaa.md b/examples/2.3.x/server-kotlin/java/domains/create-record-aaaa.md index 36762ae43..adda2574c 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-aaaa.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-aaaa.md @@ -14,7 +14,7 @@ domains.createRecordAAAA( "<DOMAIN_ID>", // domainId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-alias.md b/examples/2.3.x/server-kotlin/java/domains/create-record-alias.md index a9a41bfc7..6072d65c2 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-alias.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-alias.md @@ -14,7 +14,7 @@ domains.createRecordAlias( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-caa.md b/examples/2.3.x/server-kotlin/java/domains/create-record-caa.md index d8df0f89e..4782c7ef6 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-caa.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-caa.md @@ -14,7 +14,7 @@ domains.createRecordCAA( "<DOMAIN_ID>", // domainId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-cname.md b/examples/2.3.x/server-kotlin/java/domains/create-record-cname.md index 157681188..2b146c5d3 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-cname.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-cname.md @@ -14,7 +14,7 @@ domains.createRecordCNAME( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-https.md b/examples/2.3.x/server-kotlin/java/domains/create-record-https.md index e8bd7b963..e0dc50b93 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-https.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-https.md @@ -14,7 +14,7 @@ domains.createRecordHTTPS( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-mx.md b/examples/2.3.x/server-kotlin/java/domains/create-record-mx.md index beb99ac6f..4ff3d953e 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-mx.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-mx.md @@ -14,8 +14,8 @@ domains.createRecordMX( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl - 0, // priority + 1L, // ttl + 0L, // priority "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-ns.md b/examples/2.3.x/server-kotlin/java/domains/create-record-ns.md index e4513db25..c7df5b355 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-ns.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-ns.md @@ -14,7 +14,7 @@ domains.createRecordNS( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-srv.md b/examples/2.3.x/server-kotlin/java/domains/create-record-srv.md index 3abf748aa..4add41478 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-srv.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-srv.md @@ -14,10 +14,10 @@ domains.createRecordSRV( "<DOMAIN_ID>", // domainId "", // name "<VALUE>", // value - 1, // ttl - 0, // priority - 0, // weight - 0, // port + 1L, // ttl + 0L, // priority + 0L, // weight + 0L, // port "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/create-record-txt.md b/examples/2.3.x/server-kotlin/java/domains/create-record-txt.md index 73d543104..6693833c0 100644 --- a/examples/2.3.x/server-kotlin/java/domains/create-record-txt.md +++ b/examples/2.3.x/server-kotlin/java/domains/create-record-txt.md @@ -13,7 +13,7 @@ Domains domains = new Domains(client); domains.createRecordTXT( "<DOMAIN_ID>", // domainId "", // name - 1, // ttl + 1L, // ttl "<VALUE>", // value (optional) "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/domains/get-price.md b/examples/2.3.x/server-kotlin/java/domains/get-price.md index 41ef166b9..b58192178 100644 --- a/examples/2.3.x/server-kotlin/java/domains/get-price.md +++ b/examples/2.3.x/server-kotlin/java/domains/get-price.md @@ -13,7 +13,7 @@ Domains domains = new Domains(client); domains.getPrice( "example.com", // domain - 0, // periodYears (optional) + 0L, // periodYears (optional) DomainRegistrationType.NEW, // registrationType (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/list-prices.md b/examples/2.3.x/server-kotlin/java/domains/list-prices.md index d5b3eeba3..1c5de1bef 100644 --- a/examples/2.3.x/server-kotlin/java/domains/list-prices.md +++ b/examples/2.3.x/server-kotlin/java/domains/list-prices.md @@ -13,7 +13,7 @@ Domains domains = new Domains(client); domains.listPrices( List.of(), // domains - 0, // periodYears (optional) + 0L, // periodYears (optional) DomainRegistrationType.NEW, // registrationType (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-a.md b/examples/2.3.x/server-kotlin/java/domains/update-record-a.md index a5f6582e3..ae2f0bfb6 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-a.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-a.md @@ -15,7 +15,7 @@ domains.updateRecordA( "<RECORD_ID>", // recordId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-aaaa.md b/examples/2.3.x/server-kotlin/java/domains/update-record-aaaa.md index 35c9920bd..2b9b7f4f7 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-aaaa.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-aaaa.md @@ -15,7 +15,7 @@ domains.updateRecordAAAA( "<RECORD_ID>", // recordId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-alias.md b/examples/2.3.x/server-kotlin/java/domains/update-record-alias.md index 61c4b2ba8..e1026f92e 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-alias.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-alias.md @@ -15,7 +15,7 @@ domains.updateRecordAlias( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-caa.md b/examples/2.3.x/server-kotlin/java/domains/update-record-caa.md index 42abda737..881fd23d8 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-caa.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-caa.md @@ -15,7 +15,7 @@ domains.updateRecordCAA( "<RECORD_ID>", // recordId "", // name "", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-cname.md b/examples/2.3.x/server-kotlin/java/domains/update-record-cname.md index aa25f8b37..577bbc12b 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-cname.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-cname.md @@ -15,7 +15,7 @@ domains.updateRecordCNAME( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-https.md b/examples/2.3.x/server-kotlin/java/domains/update-record-https.md index e5ef1feb8..9aa758a2e 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-https.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-https.md @@ -15,7 +15,7 @@ domains.updateRecordHTTPS( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-mx.md b/examples/2.3.x/server-kotlin/java/domains/update-record-mx.md index 30294b7cd..03978420f 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-mx.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-mx.md @@ -15,8 +15,8 @@ domains.updateRecordMX( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl - 0, // priority + 1L, // ttl + 0L, // priority "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-ns.md b/examples/2.3.x/server-kotlin/java/domains/update-record-ns.md index f7ab6c3df..b6e2d94e5 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-ns.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-ns.md @@ -15,7 +15,7 @@ domains.updateRecordNS( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-srv.md b/examples/2.3.x/server-kotlin/java/domains/update-record-srv.md index 050374932..b03ae4a63 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-srv.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-srv.md @@ -15,10 +15,10 @@ domains.updateRecordSRV( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl - 0, // priority - 0, // weight - 0, // port + 1L, // ttl + 0L, // priority + 0L, // weight + 0L, // port "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/domains/update-record-txt.md b/examples/2.3.x/server-kotlin/java/domains/update-record-txt.md index f46042fdf..d429eca66 100644 --- a/examples/2.3.x/server-kotlin/java/domains/update-record-txt.md +++ b/examples/2.3.x/server-kotlin/java/domains/update-record-txt.md @@ -15,7 +15,7 @@ domains.updateRecordTXT( "<RECORD_ID>", // recordId "", // name "<VALUE>", // value - 1, // ttl + 1L, // ttl "<COMMENT>", // comment (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/embeddings/create-text-embeddings.md b/examples/2.3.x/server-kotlin/java/embeddings/create-text-embeddings.md index 92d9ee998..5dd31a9be 100644 --- a/examples/2.3.x/server-kotlin/java/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-kotlin/java/embeddings/create-text-embeddings.md @@ -12,7 +12,7 @@ Client client = new Client() Embeddings embeddings = new Embeddings(client); embeddings.createTextEmbeddings( - List.of(), // texts + List.of("Appwrite helps developers build applications.", "Find documents with semantic search."), // texts EmbeddingModel.NOMIC_EMBED_TEXT, // model (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/functions/create.md b/examples/2.3.x/server-kotlin/java/functions/create.md index a02365dc6..1b280c257 100644 --- a/examples/2.3.x/server-kotlin/java/functions/create.md +++ b/examples/2.3.x/server-kotlin/java/functions/create.md @@ -19,7 +19,7 @@ functions.create( List.of("any"), // execute (optional) List.of(), // events (optional) "0 0 * * *", // schedule (optional) - 1, // timeout (optional) + 1L, // timeout (optional) false, // enabled (optional) false, // logging (optional) "<ENTRYPOINT>", // entrypoint (optional) @@ -34,7 +34,7 @@ functions.create( List.of(), // providerPaths (optional) "s-1vcpu-512mb", // buildSpecification (optional) "s-1vcpu-512mb", // runtimeSpecification (optional) - 0, // deploymentRetention (optional) + 0L, // deploymentRetention (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/functions/list-runtimes.md b/examples/2.3.x/server-kotlin/java/functions/list-runtimes.md index 0a4a240c8..d45deece8 100644 --- a/examples/2.3.x/server-kotlin/java/functions/list-runtimes.md +++ b/examples/2.3.x/server-kotlin/java/functions/list-runtimes.md @@ -10,12 +10,16 @@ Client client = new Client() Functions functions = new Functions(client); -functions.listRuntimes(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +functions.listRuntimes( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/functions/list-specifications.md b/examples/2.3.x/server-kotlin/java/functions/list-specifications.md index 7a6c7f51c..145e691cc 100644 --- a/examples/2.3.x/server-kotlin/java/functions/list-specifications.md +++ b/examples/2.3.x/server-kotlin/java/functions/list-specifications.md @@ -12,6 +12,7 @@ Functions functions = new Functions(client); functions.listSpecifications( "runtimes", // type (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/functions/update.md b/examples/2.3.x/server-kotlin/java/functions/update.md index 30bb95586..b8164c896 100644 --- a/examples/2.3.x/server-kotlin/java/functions/update.md +++ b/examples/2.3.x/server-kotlin/java/functions/update.md @@ -19,7 +19,7 @@ functions.update( List.of("any"), // execute (optional) List.of(), // events (optional) "0 0 * * *", // schedule (optional) - 1, // timeout (optional) + 1L, // timeout (optional) false, // enabled (optional) false, // logging (optional) "<ENTRYPOINT>", // entrypoint (optional) @@ -34,7 +34,7 @@ functions.update( List.of(), // providerPaths (optional) "s-1vcpu-512mb", // buildSpecification (optional) "s-1vcpu-512mb", // runtimeSpecification (optional) - 0, // deploymentRetention (optional) + 0L, // deploymentRetention (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/graphql/mutation.md b/examples/2.3.x/server-kotlin/java/graphql/mutation.md index 1f327de50..9c973ce2e 100644 --- a/examples/2.3.x/server-kotlin/java/graphql/mutation.md +++ b/examples/2.3.x/server-kotlin/java/graphql/mutation.md @@ -11,7 +11,9 @@ Client client = new Client() Graphql graphql = new Graphql(client); graphql.mutation( - Map.of("a", "b"), // query + Map.of( + "query", "mutation { accountUpdateName(name: \"Walter\") { name } }" + ), // query new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/graphql/query.md b/examples/2.3.x/server-kotlin/java/graphql/query.md index 29ea821d6..96b479b68 100644 --- a/examples/2.3.x/server-kotlin/java/graphql/query.md +++ b/examples/2.3.x/server-kotlin/java/graphql/query.md @@ -11,7 +11,9 @@ Client client = new Client() Graphql graphql = new Graphql(client); graphql.query( - Map.of("a", "b"), // query + Map.of( + "query", "query { localeGet { ip } }" + ), // query new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/locale/list-codes.md b/examples/2.3.x/server-kotlin/java/locale/list-codes.md index 25555499b..3a77e308a 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-codes.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-codes.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listCodes(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCodes( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-continents.md b/examples/2.3.x/server-kotlin/java/locale/list-continents.md index f7098f332..d2620eb83 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-continents.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-continents.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listContinents(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listContinents( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-countries-eu.md b/examples/2.3.x/server-kotlin/java/locale/list-countries-eu.md index b312639fc..35dbccdd5 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-countries-eu.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-countries-eu.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listCountriesEU(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountriesEU( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-countries-phones.md b/examples/2.3.x/server-kotlin/java/locale/list-countries-phones.md index aed72e0ff..eb6b24e71 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-countries-phones.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-countries-phones.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listCountriesPhones(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountriesPhones( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-countries.md b/examples/2.3.x/server-kotlin/java/locale/list-countries.md index 8eef04d63..af1d55c90 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-countries.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-countries.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listCountries(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCountries( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-currencies.md b/examples/2.3.x/server-kotlin/java/locale/list-currencies.md index fc4ee4d9d..00719a631 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-currencies.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-currencies.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listCurrencies(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listCurrencies( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/locale/list-languages.md b/examples/2.3.x/server-kotlin/java/locale/list-languages.md index 44d101564..99bc1681d 100644 --- a/examples/2.3.x/server-kotlin/java/locale/list-languages.md +++ b/examples/2.3.x/server-kotlin/java/locale/list-languages.md @@ -10,12 +10,16 @@ Client client = new Client() Locale locale = new Locale(client); -locale.listLanguages(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +locale.listLanguages( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/messaging/create-appwrite-provider.md b/examples/2.3.x/server-kotlin/java/messaging/create-appwrite-provider.md index d60e304d7..082ce376a 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/create-appwrite-provider.md +++ b/examples/2.3.x/server-kotlin/java/messaging/create-appwrite-provider.md @@ -14,8 +14,8 @@ messaging.createAppwriteProvider( "<PROVIDER_ID>", // providerId "<NAME>", // name false, // enabled (optional) - 0, // qos (optional) - 0, // expiry (optional) + 0L, // qos (optional) + 0L, // expiry (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/create-push.md b/examples/2.3.x/server-kotlin/java/messaging/create-push.md index 9caac2d47..6b43ef84e 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/create-push.md +++ b/examples/2.3.x/server-kotlin/java/messaging/create-push.md @@ -25,12 +25,13 @@ messaging.createPush( "<SOUND>", // sound (optional) "<COLOR>", // color (optional) "<TAG>", // tag (optional) - 1, // badge (optional) + 1L, // badge (optional) false, // draft (optional) "2020-10-15T06:38:00.000+00:00", // scheduledAt (optional) false, // contentAvailable (optional) false, // critical (optional) MessagePriority.NORMAL, // priority (optional) + "<CHANNEL_ID>", // channelId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/create-smtp-provider.md b/examples/2.3.x/server-kotlin/java/messaging/create-smtp-provider.md index 2b0046bc4..2a890982d 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/create-smtp-provider.md +++ b/examples/2.3.x/server-kotlin/java/messaging/create-smtp-provider.md @@ -15,7 +15,7 @@ messaging.createSMTPProvider( "<PROVIDER_ID>", // providerId "<NAME>", // name "<HOST>", // host - 587, // port (optional) + 587L, // port (optional) "<USERNAME>", // username (optional) "password", // password (optional) SmtpEncryption.NONE, // encryption (optional) diff --git a/examples/2.3.x/server-kotlin/java/messaging/create-topic.md b/examples/2.3.x/server-kotlin/java/messaging/create-topic.md index 5a1e5f2f5..f1bad78d4 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/create-topic.md +++ b/examples/2.3.x/server-kotlin/java/messaging/create-topic.md @@ -14,8 +14,8 @@ messaging.createTopic( "<TOPIC_ID>", // topicId "<NAME>", // name List.of("any"), // subscribe (optional) - 0, // qos (optional) - 0, // expiry (optional) + 0L, // qos (optional) + 0L, // expiry (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-appwrite-provider.md b/examples/2.3.x/server-kotlin/java/messaging/update-appwrite-provider.md index 10cc9e55f..2a3b7fe7d 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-appwrite-provider.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-appwrite-provider.md @@ -14,8 +14,8 @@ messaging.updateAppwriteProvider( "<PROVIDER_ID>", // providerId "<NAME>", // name (optional) false, // enabled (optional) - 0, // qos (optional) - 0, // expiry (optional) + 0L, // qos (optional) + 0L, // expiry (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-email.md b/examples/2.3.x/server-kotlin/java/messaging/update-email.md index 71d82db5b..9bbf4222b 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-email.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-email.md @@ -12,19 +12,19 @@ Messaging messaging = new Messaging(client); messaging.updateEmail( "<MESSAGE_ID>", // messageId + "<SUBJECT>", // subject (optional) + "<CONTENT>", // content (optional) List.of(), // topics (optional) List.of(), // users (optional) List.of(), // targets (optional) - "<SUBJECT>", // subject (optional) - "<CONTENT>", // content (optional) - false, // draft (optional) - false, // html (optional) List.of(), // cc (optional) List.of(), // bcc (optional) + List.of(), // attachments (optional) "email@example.com", // replyToEmail (optional) "<REPLY_TO_NAME>", // replyToName (optional) + false, // draft (optional) + false, // html (optional) "2020-10-15T06:38:00.000+00:00", // scheduledAt (optional) - List.of(), // attachments (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-push.md b/examples/2.3.x/server-kotlin/java/messaging/update-push.md index 263dfaab1..e7ca28563 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-push.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-push.md @@ -13,11 +13,11 @@ Messaging messaging = new Messaging(client); messaging.updatePush( "<MESSAGE_ID>", // messageId + "<TITLE>", // title (optional) + "<BODY>", // body (optional) List.of(), // topics (optional) List.of(), // users (optional) List.of(), // targets (optional) - "<TITLE>", // title (optional) - "<BODY>", // body (optional) Map.of("a", "b"), // data (optional) "<ACTION>", // action (optional) "<ID1:ID2>", // image (optional) @@ -25,12 +25,13 @@ messaging.updatePush( "<SOUND>", // sound (optional) "<COLOR>", // color (optional) "<TAG>", // tag (optional) - 1, // badge (optional) + 1L, // badge (optional) false, // draft (optional) "2020-10-15T06:38:00.000+00:00", // scheduledAt (optional) false, // contentAvailable (optional) false, // critical (optional) MessagePriority.NORMAL, // priority (optional) + "<CHANNEL_ID>", // channelId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-sms.md b/examples/2.3.x/server-kotlin/java/messaging/update-sms.md index 808be650a..e86f22e19 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-sms.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-sms.md @@ -12,10 +12,10 @@ Messaging messaging = new Messaging(client); messaging.updateSMS( "<MESSAGE_ID>", // messageId + "<CONTENT>", // content (optional) List.of(), // topics (optional) List.of(), // users (optional) List.of(), // targets (optional) - "<CONTENT>", // content (optional) false, // draft (optional) "2020-10-15T06:38:00.000+00:00", // scheduledAt (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-smtp-provider.md b/examples/2.3.x/server-kotlin/java/messaging/update-smtp-provider.md index 70a017c9b..f946342e1 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-smtp-provider.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-smtp-provider.md @@ -15,7 +15,7 @@ messaging.updateSMTPProvider( "<PROVIDER_ID>", // providerId "<NAME>", // name (optional) "<HOST>", // host (optional) - 1, // port (optional) + 1L, // port (optional) "<USERNAME>", // username (optional) "password", // password (optional) SmtpEncryption.NONE, // encryption (optional) diff --git a/examples/2.3.x/server-kotlin/java/messaging/update-topic.md b/examples/2.3.x/server-kotlin/java/messaging/update-topic.md index 88a30e0cf..04213fdd9 100644 --- a/examples/2.3.x/server-kotlin/java/messaging/update-topic.md +++ b/examples/2.3.x/server-kotlin/java/messaging/update-topic.md @@ -14,8 +14,8 @@ messaging.updateTopic( "<TOPIC_ID>", // topicId "<NAME>", // name (optional) List.of("any"), // subscribe (optional) - 0, // qos (optional) - 0, // expiry (optional) + 0L, // qos (optional) + 0L, // expiry (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/create-backup-policy.md b/examples/2.3.x/server-kotlin/java/mongo/create-backup-policy.md index 0ef94ad13..e936c29a9 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/create-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/mongo/create-backup-policy.md @@ -15,7 +15,7 @@ mongo.createBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name "", // schedule - 1, // retention + 1L, // retention "full", // type (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/mongo/create-branch.md b/examples/2.3.x/server-kotlin/java/mongo/create-branch.md index 122dec847..7c9e49e01 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/create-branch.md +++ b/examples/2.3.x/server-kotlin/java/mongo/create-branch.md @@ -13,7 +13,7 @@ Mongo mongo = new Mongo(client); mongo.createBranch( "<DATABASE_ID>", // databaseId "<BRANCH_ID>", // branchId (optional) - 300, // ttl (optional) + 300L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/create.md b/examples/2.3.x/server-kotlin/java/mongo/create.md index fda3da697..bd3ffb8ae 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/create.md +++ b/examples/2.3.x/server-kotlin/java/mongo/create.md @@ -15,16 +15,16 @@ mongo.create( "<NAME>", // name "17", // version (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/list-operations.md b/examples/2.3.x/server-kotlin/java/mongo/list-operations.md index a54f416fc..f7b2dc99b 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/mongo/list-operations.md @@ -13,8 +13,8 @@ Mongo mongo = new Mongo(client); mongo.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/list-restorations.md b/examples/2.3.x/server-kotlin/java/mongo/list-restorations.md index 1b714093e..913405bae 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/list-restorations.md +++ b/examples/2.3.x/server-kotlin/java/mongo/list-restorations.md @@ -14,8 +14,8 @@ mongo.listRestorations( "<DATABASE_ID>", // databaseId "pending", // status (optional) "backup", // type (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/update-backup-policy.md b/examples/2.3.x/server-kotlin/java/mongo/update-backup-policy.md index 976f4f077..7691246c3 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/update-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/mongo/update-backup-policy.md @@ -15,7 +15,7 @@ mongo.updateBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name (optional) "", // schedule (optional) - 1, // retention (optional) + 1L, // retention (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/mongo/update-maintenance.md b/examples/2.3.x/server-kotlin/java/mongo/update-maintenance.md index fd3ea6a7b..df3d2cbb3 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/update-maintenance.md +++ b/examples/2.3.x/server-kotlin/java/mongo/update-maintenance.md @@ -13,7 +13,7 @@ Mongo mongo = new Mongo(client); mongo.updateMaintenance( "<DATABASE_ID>", // databaseId "sun", // day - 0, // hourUtc + 0L, // hourUtc new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mongo/update.md b/examples/2.3.x/server-kotlin/java/mongo/update.md index e5bb32e2a..e92f458d0 100644 --- a/examples/2.3.x/server-kotlin/java/mongo/update.md +++ b/examples/2.3.x/server-kotlin/java/mongo/update.md @@ -15,23 +15,23 @@ mongo.update( "<NAME>", // name (optional) "ready", // status (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) - 0, // metricsTraceSampleRate (optional) - 0, // metricsSlowQueryLogThresholdMs (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) + 0.0, // metricsTraceSampleRate (optional) + 0L, // metricsSlowQueryLogThresholdMs (optional) false, // sqlApiEnabled (optional) List.of(), // sqlApiAllowedStatements (optional) - 1, // sqlApiMaxRows (optional) - 1024, // sqlApiMaxBytes (optional) - 1, // sqlApiTimeoutSeconds (optional) + 1L, // sqlApiMaxRows (optional) + 1024L, // sqlApiMaxBytes (optional) + 1L, // sqlApiTimeoutSeconds (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/create-backup-policy.md b/examples/2.3.x/server-kotlin/java/mysql/create-backup-policy.md index c419db167..7b7b52dd8 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/create-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/mysql/create-backup-policy.md @@ -15,7 +15,7 @@ mysql.createBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name "", // schedule - 1, // retention + 1L, // retention "full", // type (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/mysql/create-branch.md b/examples/2.3.x/server-kotlin/java/mysql/create-branch.md index 5b8798941..20e477e13 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/create-branch.md +++ b/examples/2.3.x/server-kotlin/java/mysql/create-branch.md @@ -13,7 +13,7 @@ Mysql mysql = new Mysql(client); mysql.createBranch( "<DATABASE_ID>", // databaseId "<BRANCH_ID>", // branchId (optional) - 300, // ttl (optional) + 300L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/create-execution.md b/examples/2.3.x/server-kotlin/java/mysql/create-execution.md index ecf9d48c8..33e71ad33 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/create-execution.md +++ b/examples/2.3.x/server-kotlin/java/mysql/create-execution.md @@ -14,7 +14,7 @@ mysql.createExecution( "<DATABASE_ID>", // databaseId "<SQL>", // sql Map.of("a", "b"), // bindings (optional) - 1, // timeoutSeconds (optional) + 1L, // timeoutSeconds (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/create.md b/examples/2.3.x/server-kotlin/java/mysql/create.md index 9017b6c9b..0f89c2945 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/create.md +++ b/examples/2.3.x/server-kotlin/java/mysql/create.md @@ -15,16 +15,16 @@ mysql.create( "<NAME>", // name "17", // version (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/list-operations.md b/examples/2.3.x/server-kotlin/java/mysql/list-operations.md index 199611a9a..aed636c04 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/mysql/list-operations.md @@ -13,8 +13,8 @@ Mysql mysql = new Mysql(client); mysql.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/list-restorations.md b/examples/2.3.x/server-kotlin/java/mysql/list-restorations.md index 6f852b7cd..3145b7bac 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/list-restorations.md +++ b/examples/2.3.x/server-kotlin/java/mysql/list-restorations.md @@ -14,8 +14,8 @@ mysql.listRestorations( "<DATABASE_ID>", // databaseId "pending", // status (optional) "backup", // type (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/update-backup-policy.md b/examples/2.3.x/server-kotlin/java/mysql/update-backup-policy.md index 6496629a2..59468c0b4 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/update-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/mysql/update-backup-policy.md @@ -15,7 +15,7 @@ mysql.updateBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name (optional) "", // schedule (optional) - 1, // retention (optional) + 1L, // retention (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/mysql/update-maintenance.md b/examples/2.3.x/server-kotlin/java/mysql/update-maintenance.md index a1fdc41ff..ed1418afb 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/update-maintenance.md +++ b/examples/2.3.x/server-kotlin/java/mysql/update-maintenance.md @@ -13,7 +13,7 @@ Mysql mysql = new Mysql(client); mysql.updateMaintenance( "<DATABASE_ID>", // databaseId "sun", // day - 0, // hourUtc + 0L, // hourUtc new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/mysql/update-pooler.md b/examples/2.3.x/server-kotlin/java/mysql/update-pooler.md index 1eaf09c02..c912ff303 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/update-pooler.md +++ b/examples/2.3.x/server-kotlin/java/mysql/update-pooler.md @@ -13,8 +13,8 @@ Mysql mysql = new Mysql(client); mysql.updatePooler( "<DATABASE_ID>", // databaseId "transaction", // mode (optional) - 10, // maxConnections (optional) - 1, // defaultPoolSize (optional) + 10L, // maxConnections (optional) + 1L, // defaultPoolSize (optional) false, // readWriteSplitting (optional) "<POOLER_CPU_REQUEST>", // poolerCpuRequest (optional) "<POOLER_CPU_LIMIT>", // poolerCpuLimit (optional) diff --git a/examples/2.3.x/server-kotlin/java/mysql/update.md b/examples/2.3.x/server-kotlin/java/mysql/update.md index 32a2b48e2..04c3caf0d 100644 --- a/examples/2.3.x/server-kotlin/java/mysql/update.md +++ b/examples/2.3.x/server-kotlin/java/mysql/update.md @@ -15,23 +15,23 @@ mysql.update( "<NAME>", // name (optional) "ready", // status (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) - 0, // metricsTraceSampleRate (optional) - 0, // metricsSlowQueryLogThresholdMs (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) + 0.0, // metricsTraceSampleRate (optional) + 0L, // metricsSlowQueryLogThresholdMs (optional) false, // sqlApiEnabled (optional) List.of(), // sqlApiAllowedStatements (optional) - 1, // sqlApiMaxRows (optional) - 1024, // sqlApiMaxBytes (optional) - 1, // sqlApiTimeoutSeconds (optional) + 1L, // sqlApiMaxRows (optional) + 1024L, // sqlApiMaxBytes (optional) + 1L, // sqlApiTimeoutSeconds (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/oauth2/authorize-post.md b/examples/2.3.x/server-kotlin/java/oauth2/authorize-post.md index 2818bca17..2d68706f0 100644 --- a/examples/2.3.x/server-kotlin/java/oauth2/authorize-post.md +++ b/examples/2.3.x/server-kotlin/java/oauth2/authorize-post.md @@ -20,7 +20,7 @@ oauth2.authorizePost( "<CODE_CHALLENGE>", // code_challenge (optional) "s256", // code_challenge_method (optional) "<PROMPT>", // prompt (optional) - 0, // max_age (optional) + 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) "", // resource (optional) "<AUDIENCE>", // audience (optional) diff --git a/examples/2.3.x/server-kotlin/java/oauth2/authorize.md b/examples/2.3.x/server-kotlin/java/oauth2/authorize.md index 4c43fc45c..1f5bbe42a 100644 --- a/examples/2.3.x/server-kotlin/java/oauth2/authorize.md +++ b/examples/2.3.x/server-kotlin/java/oauth2/authorize.md @@ -20,7 +20,7 @@ oauth2.authorize( "<CODE_CHALLENGE>", // code_challenge (optional) "s256", // code_challenge_method (optional) "<PROMPT>", // prompt (optional) - 0, // max_age (optional) + 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) "", // resource (optional) "<AUDIENCE>", // audience (optional) diff --git a/examples/2.3.x/server-kotlin/java/oauth2/create-par.md b/examples/2.3.x/server-kotlin/java/oauth2/create-par.md index 4e26ea3ed..360dfd023 100644 --- a/examples/2.3.x/server-kotlin/java/oauth2/create-par.md +++ b/examples/2.3.x/server-kotlin/java/oauth2/create-par.md @@ -20,7 +20,7 @@ oauth2.createPAR( "<CODE_CHALLENGE>", // code_challenge (optional) "s256", // code_challenge_method (optional) "<PROMPT>", // prompt (optional) - 0, // max_age (optional) + 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) "", // resource (optional) "<AUDIENCE>", // audience (optional) diff --git a/examples/2.3.x/server-kotlin/java/oauth2/introspect.md b/examples/2.3.x/server-kotlin/java/oauth2/introspect.md new file mode 100644 index 000000000..39d7687bc --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/oauth2/introspect.md @@ -0,0 +1,28 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.introspect( + "<TOKEN>", // token + "access_token", // token_type_hint (optional) + "<CLIENT_ID>", // client_id (optional) + "<CLIENT_SECRET>", // client_secret (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/oauth2/list-organizations.md b/examples/2.3.x/server-kotlin/java/oauth2/list-organizations.md index 80ff8c445..c39d072b1 100644 --- a/examples/2.3.x/server-kotlin/java/oauth2/list-organizations.md +++ b/examples/2.3.x/server-kotlin/java/oauth2/list-organizations.md @@ -11,8 +11,8 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); oauth2.listOrganizations( - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) "<SEARCH>", // search (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/oauth2/list-projects.md b/examples/2.3.x/server-kotlin/java/oauth2/list-projects.md index 6f712d3d1..94b055e8d 100644 --- a/examples/2.3.x/server-kotlin/java/oauth2/list-projects.md +++ b/examples/2.3.x/server-kotlin/java/oauth2/list-projects.md @@ -11,8 +11,8 @@ Client client = new Client() Oauth2 oauth2 = new Oauth2(client); oauth2.listProjects( - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) "<SEARCH>", // search (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-kotlin/java/organization/create-ephemeral-project-key.md index 8530b4eca..607b66550 100644 --- a/examples/2.3.x/server-kotlin/java/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-kotlin/java/organization/create-ephemeral-project-key.md @@ -13,8 +13,8 @@ Organization organization = new Organization(client); organization.createEphemeralProjectKey( "<PROJECT_ID>", // projectId - List.of(ProjectKeyScopes.PROJECT_READ), // scopes - 600, // duration + List.of(ProjectKeyScopes.USERS_READ), // scopes + 600L, // duration new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/organization/update-project-key.md b/examples/2.3.x/server-kotlin/java/organization/update-project-key.md index 30ad4c649..5725b5fb5 100644 --- a/examples/2.3.x/server-kotlin/java/organization/update-project-key.md +++ b/examples/2.3.x/server-kotlin/java/organization/update-project-key.md @@ -15,7 +15,7 @@ organization.updateProjectKey( "<PROJECT_ID>", // projectId "<KEY_ID>", // keyId "<NAME>", // name - List.of(ProjectKeyScopes.PROJECT_READ), // scopes + List.of(ProjectKeyScopes.USERS_READ), // scopes "2020-10-15T06:38:00.000+00:00", // expire (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/postgresql/create-backup-policy.md b/examples/2.3.x/server-kotlin/java/postgresql/create-backup-policy.md index fb9715a41..2cc9da493 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/create-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/create-backup-policy.md @@ -15,7 +15,7 @@ postgresql.createBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name "", // schedule - 1, // retention + 1L, // retention "full", // type (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/postgresql/create-branch.md b/examples/2.3.x/server-kotlin/java/postgresql/create-branch.md index 0c8fb8372..5a9cbb4f7 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/create-branch.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/create-branch.md @@ -13,7 +13,7 @@ Postgresql postgresql = new Postgresql(client); postgresql.createBranch( "<DATABASE_ID>", // databaseId "<BRANCH_ID>", // branchId (optional) - 300, // ttl (optional) + 300L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/create-execution.md b/examples/2.3.x/server-kotlin/java/postgresql/create-execution.md index 4ea6a48b5..b9b3720f3 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/create-execution.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/create-execution.md @@ -14,7 +14,7 @@ postgresql.createExecution( "<DATABASE_ID>", // databaseId "<SQL>", // sql Map.of("a", "b"), // bindings (optional) - 1, // timeoutSeconds (optional) + 1L, // timeoutSeconds (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/create.md b/examples/2.3.x/server-kotlin/java/postgresql/create.md index 4bc32d31c..fe731e19d 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/create.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/create.md @@ -15,16 +15,16 @@ postgresql.create( "<NAME>", // name "17", // version (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/list-operations.md b/examples/2.3.x/server-kotlin/java/postgresql/list-operations.md index 3018a960b..6c5f1b281 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/list-operations.md @@ -13,8 +13,8 @@ Postgresql postgresql = new Postgresql(client); postgresql.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/list-restorations.md b/examples/2.3.x/server-kotlin/java/postgresql/list-restorations.md index 151f1dc94..1b1110107 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/list-restorations.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/list-restorations.md @@ -14,8 +14,8 @@ postgresql.listRestorations( "<DATABASE_ID>", // databaseId "pending", // status (optional) "backup", // type (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/update-backup-policy.md b/examples/2.3.x/server-kotlin/java/postgresql/update-backup-policy.md index fd21de689..a312aa394 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/update-backup-policy.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/update-backup-policy.md @@ -15,7 +15,7 @@ postgresql.updateBackupPolicy( "<POLICY_ID>", // policyId "<NAME>", // name (optional) "", // schedule (optional) - 1, // retention (optional) + 1L, // retention (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/postgresql/update-maintenance.md b/examples/2.3.x/server-kotlin/java/postgresql/update-maintenance.md index 471d0e278..19d43d2b5 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/update-maintenance.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/update-maintenance.md @@ -13,7 +13,7 @@ Postgresql postgresql = new Postgresql(client); postgresql.updateMaintenance( "<DATABASE_ID>", // databaseId "sun", // day - 0, // hourUtc + 0L, // hourUtc new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/postgresql/update-pooler.md b/examples/2.3.x/server-kotlin/java/postgresql/update-pooler.md index 35fbadec9..529cb7e50 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/update-pooler.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/update-pooler.md @@ -13,8 +13,8 @@ Postgresql postgresql = new Postgresql(client); postgresql.updatePooler( "<DATABASE_ID>", // databaseId "transaction", // mode (optional) - 10, // maxConnections (optional) - 1, // defaultPoolSize (optional) + 10L, // maxConnections (optional) + 1L, // defaultPoolSize (optional) false, // readWriteSplitting (optional) "<POOLER_CPU_REQUEST>", // poolerCpuRequest (optional) "<POOLER_CPU_LIMIT>", // poolerCpuLimit (optional) diff --git a/examples/2.3.x/server-kotlin/java/postgresql/update.md b/examples/2.3.x/server-kotlin/java/postgresql/update.md index a7b35cd64..5033d25ea 100644 --- a/examples/2.3.x/server-kotlin/java/postgresql/update.md +++ b/examples/2.3.x/server-kotlin/java/postgresql/update.md @@ -15,23 +15,23 @@ postgresql.update( "<NAME>", // name (optional) "ready", // status (optional) "<SPECIFICATION>", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) - 60, // networkIdleTimeoutSeconds (optional) + 60L, // networkIdleTimeoutSeconds (optional) List.of(), // networkIPAllowlist (optional) - 5, // idleTimeoutMinutes (optional) + 5L, // idleTimeoutMinutes (optional) false, // pitr (optional) - 1, // pitrRetentionDays (optional) + 1L, // pitrRetentionDays (optional) false, // storageAutoscaling (optional) - 50, // storageAutoscalingThresholdPercent (optional) - 0, // storageAutoscalingMaxGb (optional) - 0, // metricsTraceSampleRate (optional) - 0, // metricsSlowQueryLogThresholdMs (optional) + 50L, // storageAutoscalingThresholdPercent (optional) + 0L, // storageAutoscalingMaxGb (optional) + 0.0, // metricsTraceSampleRate (optional) + 0L, // metricsSlowQueryLogThresholdMs (optional) false, // sqlApiEnabled (optional) List.of(), // sqlApiAllowedStatements (optional) - 1, // sqlApiMaxRows (optional) - 1024, // sqlApiMaxBytes (optional) - 1, // sqlApiTimeoutSeconds (optional) + 1L, // sqlApiMaxRows (optional) + 1024L, // sqlApiMaxBytes (optional) + 1L, // sqlApiTimeoutSeconds (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/presences/list.md b/examples/2.3.x/server-kotlin/java/presences/list.md index b43741d29..c4aaad34c 100644 --- a/examples/2.3.x/server-kotlin/java/presences/list.md +++ b/examples/2.3.x/server-kotlin/java/presences/list.md @@ -13,7 +13,7 @@ Presences presences = new Presences(client); presences.list( List.of(), // queries (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/create-ephemeral-key.md b/examples/2.3.x/server-kotlin/java/project/create-ephemeral-key.md index 545e16d25..3a5ad262a 100644 --- a/examples/2.3.x/server-kotlin/java/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-kotlin/java/project/create-ephemeral-key.md @@ -12,8 +12,8 @@ Client client = new Client() Project project = new Project(client); project.createEphemeralKey( - List.of(ProjectKeyScopes.PROJECT_READ), // scopes - 600, // duration + List.of(ProjectKeyScopes.USERS_READ), // scopes + 600L, // duration new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/create-smtp-test.md b/examples/2.3.x/server-kotlin/java/project/create-smtp-test.md index e6a700663..02394284c 100644 --- a/examples/2.3.x/server-kotlin/java/project/create-smtp-test.md +++ b/examples/2.3.x/server-kotlin/java/project/create-smtp-test.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.createSMTPTest( - List.of(), // emails + List.of("recipient@example.com"), // emails new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/update-key.md b/examples/2.3.x/server-kotlin/java/project/update-key.md index 4fa79bbbb..d381b2b9d 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-key.md +++ b/examples/2.3.x/server-kotlin/java/project/update-key.md @@ -14,7 +14,7 @@ Project project = new Project(client); project.updateKey( "<KEY_ID>", // keyId "<NAME>", // name - List.of(ProjectKeyScopes.PROJECT_READ), // scopes + List.of(ProjectKeyScopes.USERS_READ), // scopes "2020-10-15T06:38:00.000+00:00", // expire (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-labels.md b/examples/2.3.x/server-kotlin/java/project/update-labels.md index c8c9e1bce..ef367da6a 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-labels.md +++ b/examples/2.3.x/server-kotlin/java/project/update-labels.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updateLabels( - List.of(), // labels + List.of("production"), // labels new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-auth-0.md index c14a8ef5f..4891c7239 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-auth-0.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2Auth0Prompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ project.updateOAuth2Auth0( "<CLIENT_ID>", // clientId (optional) "<CLIENT_SECRET>", // clientSecret (optional) "<ENDPOINT>", // endpoint (optional) + List.of(ProjectOAuth2Auth0Prompt.NONE), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-discord.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-discord.md index 82139314b..a293cc996 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-discord.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2DiscordPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ Project project = new Project(client); project.updateOAuth2Discord( "<CLIENT_ID>", // clientId (optional) "<CLIENT_SECRET>", // clientSecret (optional) + List.of(ProjectOAuth2DiscordPrompt.NONE), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-git-hub.md index e795770a5..28f2bb764 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-git-hub.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2GitHubPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ Project project = new Project(client); project.updateOAuth2GitHub( "<CLIENT_ID>", // clientId (optional) "<CLIENT_SECRET>", // clientSecret (optional) + List.of(ProjectOAuth2GitHubPrompt.SELECT_ACCOUNT), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-kakao.md index da93f607b..cee7eebd7 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-kakao.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2KakaoPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ Project project = new Project(client); project.updateOAuth2Kakao( "<CLIENT_ID>", // clientId (optional) "<CLIENT_SECRET>", // clientSecret (optional) + List.of(ProjectOAuth2KakaoPrompt.NONE), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-microsoft.md index 801cc7c8a..934d4d366 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-microsoft.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2MicrosoftPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ project.updateOAuth2Microsoft( "<APPLICATION_ID>", // applicationId (optional) "<APPLICATION_SECRET>", // applicationSecret (optional) "<TENANT>", // tenant (optional) + List.of(ProjectOAuth2MicrosoftPrompt.NONE), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-oidc.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-oidc.md index 033173877..8b57d3e6c 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-oidc.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-oidc.md @@ -19,7 +19,7 @@ project.updateOAuth2Oidc( "https://example.com", // tokenURL (optional) "https://example.com", // userInfoURL (optional) List.of(ProjectOAuth2OidcPrompt.NONE), // prompt (optional) - 0, // maxAge (optional) + 0L, // maxAge (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-okta.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-okta.md index 588894314..7e451d108 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-okta.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2OktaPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -15,6 +16,7 @@ project.updateOAuth2Okta( "<CLIENT_SECRET>", // clientSecret (optional) "example.com", // domain (optional) "<AUTHORIZATION_SERVER_ID>", // authorizationServerId (optional) + List.of(ProjectOAuth2OktaPrompt.NONE), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-salesforce.md index e6aa570af..120430b74 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-salesforce.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2SalesforcePrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ Project project = new Project(client); project.updateOAuth2Salesforce( "<CUSTOMER_KEY>", // customerKey (optional) "<CUSTOMER_SECRET>", // customerSecret (optional) + List.of(ProjectOAuth2SalesforcePrompt.LOGIN), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-server.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-server.md index df21916b6..fd0344be0 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-server.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-server.md @@ -15,16 +15,16 @@ project.updateOAuth2Server( "https://example.com", // authorizationUrl List.of(), // scopes (optional) List.of(), // authorizationDetailsTypes (optional) - 60, // accessTokenDuration (optional) - 60, // refreshTokenDuration (optional) - 60, // publicAccessTokenDuration (optional) - 60, // publicRefreshTokenDuration (optional) - 60, // installationAccessTokenDuration (optional) + 60L, // accessTokenDuration (optional) + 60L, // refreshTokenDuration (optional) + 60L, // publicAccessTokenDuration (optional) + 60L, // publicRefreshTokenDuration (optional) + 60L, // installationAccessTokenDuration (optional) false, // confidentialPkce (optional) "https://example.com", // verificationUrl (optional) - 6, // userCodeLength (optional) + 6L, // userCodeLength (optional) "numeric", // userCodeFormat (optional) - 60, // deviceCodeDuration (optional) + 60L, // deviceCodeDuration (optional) List.of(), // defaultScopes (optional) List.of(), // installationScopes (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..ce67d0364 --- /dev/null +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-webflow.md @@ -0,0 +1,27 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Project; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Project project = new Project(client); + +project.updateOAuth2Webflow( + "<CLIENT_ID>", // clientId (optional) + "<CLIENT_SECRET>", // clientSecret (optional) + false, // enabled (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-zoho.md index c8c5e1362..59b671bca 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-kotlin/java/project/update-o-auth-2-zoho.md @@ -2,6 +2,7 @@ import io.appwrite.Client; import io.appwrite.coroutines.CoroutineCallback; import io.appwrite.services.Project; +import io.appwrite.enums.ProjectOAuth2ZohoPrompt; Client client = new Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ Project project = new Project(client); project.updateOAuth2Zoho( "<CLIENT_ID>", // clientId (optional) "<CLIENT_SECRET>", // clientSecret (optional) + List.of(ProjectOAuth2ZohoPrompt.CONSENT), // prompt (optional) false, // enabled (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/project/update-password-history-policy.md b/examples/2.3.x/server-kotlin/java/project/update-password-history-policy.md index e873c7f8f..de1c1e1b4 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-password-history-policy.md +++ b/examples/2.3.x/server-kotlin/java/project/update-password-history-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updatePasswordHistoryPolicy( - 1, // total + 1L, // total new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/update-password-strength-policy.md b/examples/2.3.x/server-kotlin/java/project/update-password-strength-policy.md index a147d52d8..340687922 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-password-strength-policy.md +++ b/examples/2.3.x/server-kotlin/java/project/update-password-strength-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updatePasswordStrengthPolicy( - 8, // min (optional) + 8L, // min (optional) false, // uppercase (optional) false, // lowercase (optional) false, // number (optional) diff --git a/examples/2.3.x/server-kotlin/java/project/update-session-duration-policy.md b/examples/2.3.x/server-kotlin/java/project/update-session-duration-policy.md index 47c3f3be3..618482d35 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-session-duration-policy.md +++ b/examples/2.3.x/server-kotlin/java/project/update-session-duration-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updateSessionDurationPolicy( - 60, // duration + 60L, // duration new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/update-session-limit-policy.md b/examples/2.3.x/server-kotlin/java/project/update-session-limit-policy.md index 13204c06c..6b11cac21 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-session-limit-policy.md +++ b/examples/2.3.x/server-kotlin/java/project/update-session-limit-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updateSessionLimitPolicy( - 1, // total + 1L, // total new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/project/update-smtp.md b/examples/2.3.x/server-kotlin/java/project/update-smtp.md index 04a01b711..504bc0b22 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-smtp.md +++ b/examples/2.3.x/server-kotlin/java/project/update-smtp.md @@ -13,7 +13,7 @@ Project project = new Project(client); project.updateSMTP( "example.com", // host (optional) - 587, // port (optional) + 587L, // port (optional) "<USERNAME>", // username (optional) "password", // password (optional) "email@example.com", // senderEmail (optional) diff --git a/examples/2.3.x/server-kotlin/java/project/update-user-limit-policy.md b/examples/2.3.x/server-kotlin/java/project/update-user-limit-policy.md index 4e0a99343..186fdaf45 100644 --- a/examples/2.3.x/server-kotlin/java/project/update-user-limit-policy.md +++ b/examples/2.3.x/server-kotlin/java/project/update-user-limit-policy.md @@ -11,7 +11,7 @@ Client client = new Client() Project project = new Project(client); project.updateUserLimitPolicy( - 0, // total + 0L, // total new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/sites/create.md b/examples/2.3.x/server-kotlin/java/sites/create.md index fb154d30a..5c09756a0 100644 --- a/examples/2.3.x/server-kotlin/java/sites/create.md +++ b/examples/2.3.x/server-kotlin/java/sites/create.md @@ -21,7 +21,7 @@ sites.create( BuildRuntime.NODE_14_5, // buildRuntime false, // enabled (optional) false, // logging (optional) - 1, // timeout (optional) + 1L, // timeout (optional) "<INSTALL_COMMAND>", // installCommand (optional) "<BUILD_COMMAND>", // buildCommand (optional) "<START_COMMAND>", // startCommand (optional) @@ -37,7 +37,7 @@ sites.create( List.of(), // providerPaths (optional) "s-1vcpu-512mb", // buildSpecification (optional) "s-1vcpu-512mb", // runtimeSpecification (optional) - 0, // deploymentRetention (optional) + 0L, // deploymentRetention (optional) List.of(ProjectKeyScopes.PROJECT_READ), // scopes (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/sites/list-frameworks.md b/examples/2.3.x/server-kotlin/java/sites/list-frameworks.md index 6192bf29f..b0f4c8e42 100644 --- a/examples/2.3.x/server-kotlin/java/sites/list-frameworks.md +++ b/examples/2.3.x/server-kotlin/java/sites/list-frameworks.md @@ -10,12 +10,16 @@ Client client = new Client() Sites sites = new Sites(client); -sites.listFrameworks(new CoroutineCallback<>((result, error) -> { - if (error != null) { - error.printStackTrace(); - return; - } +sites.listFrameworks( + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); - System.out.println(result); -})); ``` diff --git a/examples/2.3.x/server-kotlin/java/sites/list-specifications.md b/examples/2.3.x/server-kotlin/java/sites/list-specifications.md index f9a8fe994..b14e8abd8 100644 --- a/examples/2.3.x/server-kotlin/java/sites/list-specifications.md +++ b/examples/2.3.x/server-kotlin/java/sites/list-specifications.md @@ -12,6 +12,7 @@ Sites sites = new Sites(client); sites.listSpecifications( "runtimes", // type (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/sites/update.md b/examples/2.3.x/server-kotlin/java/sites/update.md index d87f47a1a..8d4bd45ae 100644 --- a/examples/2.3.x/server-kotlin/java/sites/update.md +++ b/examples/2.3.x/server-kotlin/java/sites/update.md @@ -20,7 +20,7 @@ sites.update( Framework.ANALOG, // framework false, // enabled (optional) false, // logging (optional) - 1, // timeout (optional) + 1L, // timeout (optional) "<INSTALL_COMMAND>", // installCommand (optional) "<BUILD_COMMAND>", // buildCommand (optional) "<START_COMMAND>", // startCommand (optional) @@ -37,7 +37,7 @@ sites.update( List.of(), // providerPaths (optional) "s-1vcpu-512mb", // buildSpecification (optional) "s-1vcpu-512mb", // runtimeSpecification (optional) - 0, // deploymentRetention (optional) + 0L, // deploymentRetention (optional) List.of(ProjectKeyScopes.PROJECT_READ), // scopes (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/storage/create-bucket.md b/examples/2.3.x/server-kotlin/java/storage/create-bucket.md index 7a15d3264..16305930a 100644 --- a/examples/2.3.x/server-kotlin/java/storage/create-bucket.md +++ b/examples/2.3.x/server-kotlin/java/storage/create-bucket.md @@ -19,7 +19,7 @@ storage.createBucket( List.of(Permission.read(Role.any())), // permissions (optional) false, // fileSecurity (optional) false, // enabled (optional) - 1, // maximumFileSize (optional) + 1L, // maximumFileSize (optional) List.of(), // allowedFileExtensions (optional) Compression.NONE, // compression (optional) false, // encryption (optional) diff --git a/examples/2.3.x/server-kotlin/java/storage/get-file-preview.md b/examples/2.3.x/server-kotlin/java/storage/get-file-preview.md index 45be19a5a..ddf0c7628 100644 --- a/examples/2.3.x/server-kotlin/java/storage/get-file-preview.md +++ b/examples/2.3.x/server-kotlin/java/storage/get-file-preview.md @@ -15,15 +15,15 @@ Storage storage = new Storage(client); storage.getFilePreview( "<BUCKET_ID>", // bucketId "<FILE_ID>", // fileId - 0, // width (optional) - 0, // height (optional) + 0L, // width (optional) + 0L, // height (optional) ImageGravity.AUTO, // gravity (optional) - -1, // quality (optional) - 0, // borderWidth (optional) + -1L, // quality (optional) + 0L, // borderWidth (optional) "FFFFFF", // borderColor (optional) - 0, // borderRadius (optional) - 0, // opacity (optional) - -360, // rotation (optional) + 0L, // borderRadius (optional) + 0.0, // opacity (optional) + -360L, // rotation (optional) "FFFFFF", // background (optional) ImageFormat.JPG, // output (optional) "<TOKEN>", // token (optional) diff --git a/examples/2.3.x/server-kotlin/java/storage/update-bucket.md b/examples/2.3.x/server-kotlin/java/storage/update-bucket.md index 7f94346da..abb9f57da 100644 --- a/examples/2.3.x/server-kotlin/java/storage/update-bucket.md +++ b/examples/2.3.x/server-kotlin/java/storage/update-bucket.md @@ -19,7 +19,7 @@ storage.updateBucket( List.of(Permission.read(Role.any())), // permissions (optional) false, // fileSecurity (optional) false, // enabled (optional) - 1, // maximumFileSize (optional) + 1L, // maximumFileSize (optional) List.of(), // allowedFileExtensions (optional) Compression.NONE, // compression (optional) false, // encryption (optional) diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-big-int-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-big-int-column.md index 3be25e2bd..164a7de47 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-big-int-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-big-int-column.md @@ -15,9 +15,9 @@ tablesDB.createBigIntColumn( "<TABLE_ID>", // tableId "<KEY>", // key false, // required - 0, // min (optional) - 1000000, // max (optional) - 0, // default (optional) + 0L, // min (optional) + 1000000L, // max (optional) + 0L, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-float-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-float-column.md index 5067f5cf6..f1e9c0e17 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-float-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-float-column.md @@ -15,8 +15,8 @@ tablesDB.createFloatColumn( "<TABLE_ID>", // tableId "<KEY>", // key false, // required - 0, // min (optional) - 100, // max (optional) + 0.0, // min (optional) + 100.0, // max (optional) 10.5, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-index.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-index.md index 0eb20835e..477b0c427 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-index.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-index.md @@ -17,7 +17,7 @@ tablesDB.createIndex( "<TABLE_ID>", // tableId "<KEY>", // key TablesDBIndexType.KEY, // type - List.of(), // columns + List.of("username"), // columns List.of(OrderBy.ASC), // orders (optional) List.of(), // lengths (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-integer-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-integer-column.md index dd879b3bf..8932c3282 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-integer-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-integer-column.md @@ -15,9 +15,9 @@ tablesDB.createIntegerColumn( "<TABLE_ID>", // tableId "<KEY>", // key false, // required - 0, // min (optional) - 100, // max (optional) - 10, // default (optional) + 0L, // min (optional) + 100L, // max (optional) + 10L, // default (optional) false, // array (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-rows.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-rows.md index 1e16a4dfd..dd6fbdf4d 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-rows.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-rows.md @@ -13,7 +13,14 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.createRows( "<DATABASE_ID>", // databaseId "<TABLE_ID>", // tableId - List.of(), // rows + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // rows "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-string-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-string-column.md index e396357a4..f85102784 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-string-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-string-column.md @@ -14,7 +14,7 @@ tablesDB.createStringColumn( "<DATABASE_ID>", // databaseId "<TABLE_ID>", // tableId "<KEY>", // key - 1, // size + 1L, // size false, // required "Hello World", // default (optional) false, // array (optional) diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-transaction.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-transaction.md index d66c22005..508df1a68 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-transaction.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-transaction.md @@ -11,7 +11,7 @@ Client client = new Client() TablesDB tablesDB = new TablesDB(client); tablesDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create-varchar-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/create-varchar-column.md index 7f8ecfa11..48016c8c2 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create-varchar-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create-varchar-column.md @@ -14,7 +14,7 @@ tablesDB.createVarcharColumn( "<DATABASE_ID>", // databaseId "<TABLE_ID>", // tableId "<KEY>", // key - 1, // size + 1L, // size false, // required "Hello World", // default (optional) false, // array (optional) diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/create.md b/examples/2.3.x/server-kotlin/java/tablesdb/create.md index aa47e87d1..05f6d4c1c 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/create.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/create.md @@ -15,7 +15,7 @@ tablesDB.create( "<NAME>", // name false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/decrement-row-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/decrement-row-column.md index b74427365..a1de53392 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/decrement-row-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/decrement-row-column.md @@ -15,8 +15,8 @@ tablesDB.decrementRowColumn( "<TABLE_ID>", // tableId "<ROW_ID>", // rowId "<COLUMN>", // column - 1, // value (optional) - 0, // min (optional) + 1.0, // value (optional) + 0.0, // min (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/delete-rows.md b/examples/2.3.x/server-kotlin/java/tablesdb/delete-rows.md index f12aaa368..4fc061757 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/delete-rows.md @@ -13,7 +13,7 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.deleteRows( "<DATABASE_ID>", // databaseId "<TABLE_ID>", // tableId - List.of(), // queries (optional) + List.of("{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/increment-row-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/increment-row-column.md index 3112170a2..febb767fe 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/increment-row-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/increment-row-column.md @@ -15,8 +15,8 @@ tablesDB.incrementRowColumn( "<TABLE_ID>", // tableId "<ROW_ID>", // rowId "<COLUMN>", // column - 1, // value (optional) - 100, // max (optional) + 1.0, // value (optional) + 100.0, // max (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/list-operations.md b/examples/2.3.x/server-kotlin/java/tablesdb/list-operations.md index a0f4745af..69d04b90a 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/list-operations.md @@ -13,8 +13,8 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/list-rows.md b/examples/2.3.x/server-kotlin/java/tablesdb/list-rows.md index 174b4255b..0c372db0f 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/list-rows.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/list-rows.md @@ -16,7 +16,7 @@ tablesDB.listRows( List.of(), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/list-transactions.md b/examples/2.3.x/server-kotlin/java/tablesdb/list-transactions.md index 38ae582b1..229ff8795 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/list-transactions.md @@ -12,6 +12,7 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update-big-int-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/update-big-int-column.md index decd80da2..f8409387b 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update-big-int-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update-big-int-column.md @@ -15,9 +15,9 @@ tablesDB.updateBigIntColumn( "<TABLE_ID>", // tableId "<KEY>", // key false, // required - 0, // default - 0, // min (optional) - 1000000, // max (optional) + 0L, // default + 0L, // min (optional) + 1000000L, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update-float-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/update-float-column.md index edc988a5d..e10b7c6c8 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update-float-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update-float-column.md @@ -16,8 +16,8 @@ tablesDB.updateFloatColumn( "<KEY>", // key false, // required 10.5, // default - 0, // min (optional) - 100, // max (optional) + 0.0, // min (optional) + 100.0, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update-integer-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/update-integer-column.md index 84380679f..3921afb79 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update-integer-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update-integer-column.md @@ -15,9 +15,9 @@ tablesDB.updateIntegerColumn( "<TABLE_ID>", // tableId "<KEY>", // key false, // required - 10, // default - 0, // min (optional) - 100, // max (optional) + 10L, // default + 0L, // min (optional) + 100L, // max (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update-string-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/update-string-column.md index 5478b4289..125a861ed 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update-string-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update-string-column.md @@ -16,7 +16,7 @@ tablesDB.updateStringColumn( "<KEY>", // key false, // required "Hello World", // default - 1, // size (optional) + 1L, // size (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update-varchar-column.md b/examples/2.3.x/server-kotlin/java/tablesdb/update-varchar-column.md index d1e44b5ad..091a71477 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update-varchar-column.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update-varchar-column.md @@ -16,7 +16,7 @@ tablesDB.updateVarcharColumn( "<KEY>", // key false, // required "Hello World", // default - 1, // size (optional) + 1L, // size (optional) "<NEW_KEY>", // newKey (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/update.md b/examples/2.3.x/server-kotlin/java/tablesdb/update.md index f341fee98..662f562b8 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/update.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/update.md @@ -15,7 +15,7 @@ tablesDB.update( "<NAME>", // name (optional) false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/tablesdb/upsert-rows.md b/examples/2.3.x/server-kotlin/java/tablesdb/upsert-rows.md index 1c46abfe7..8d511a01b 100644 --- a/examples/2.3.x/server-kotlin/java/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-kotlin/java/tablesdb/upsert-rows.md @@ -13,7 +13,14 @@ TablesDB tablesDB = new TablesDB(client); tablesDB.upsertRows( "<DATABASE_ID>", // databaseId "<TABLE_ID>", // tableId - List.of(), // rows + List.of(Map.of( + "$id", "example1", + "username", "walter.obrien", + "email", "walter.obrien@example.com", + "fullName", "Walter O'Brien", + "age", 30, + "isAdmin", false + )), // rows "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/teams/create-membership.md b/examples/2.3.x/server-kotlin/java/teams/create-membership.md index 52cf1043d..f1f2d5af3 100644 --- a/examples/2.3.x/server-kotlin/java/teams/create-membership.md +++ b/examples/2.3.x/server-kotlin/java/teams/create-membership.md @@ -12,7 +12,7 @@ Teams teams = new Teams(client); teams.createMembership( "<TEAM_ID>", // teamId - List.of(), // roles + List.of("editor"), // roles "email@example.com", // email (optional) "<USER_ID>", // userId (optional) "+12065550100", // phone (optional) diff --git a/examples/2.3.x/server-kotlin/java/teams/update-membership.md b/examples/2.3.x/server-kotlin/java/teams/update-membership.md index 97034ae32..403c2a967 100644 --- a/examples/2.3.x/server-kotlin/java/teams/update-membership.md +++ b/examples/2.3.x/server-kotlin/java/teams/update-membership.md @@ -13,7 +13,7 @@ Teams teams = new Teams(client); teams.updateMembership( "<TEAM_ID>", // teamId "<MEMBERSHIP_ID>", // membershipId - List.of(), // roles + List.of("editor"), // roles new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/users/create-jwt.md b/examples/2.3.x/server-kotlin/java/users/create-jwt.md index 0c88f2030..4a3911f1c 100644 --- a/examples/2.3.x/server-kotlin/java/users/create-jwt.md +++ b/examples/2.3.x/server-kotlin/java/users/create-jwt.md @@ -13,7 +13,7 @@ Users users = new Users(client); users.createJWT( "<USER_ID>", // userId "recent()", // sessionId (optional) - 0, // duration (optional) + 0L, // duration (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/users/create-scrypt-user.md b/examples/2.3.x/server-kotlin/java/users/create-scrypt-user.md index 817264a99..803ee006c 100644 --- a/examples/2.3.x/server-kotlin/java/users/create-scrypt-user.md +++ b/examples/2.3.x/server-kotlin/java/users/create-scrypt-user.md @@ -15,10 +15,10 @@ users.createScryptUser( "email@example.com", // email "password", // password "<PASSWORD_SALT>", // passwordSalt - 8, // passwordCpu - 65536, // passwordMemory - 1, // passwordParallel - 64, // passwordLength + 8L, // passwordCpu + 65536L, // passwordMemory + 1L, // passwordParallel + 64L, // passwordLength "<NAME>", // name (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/users/create-token.md b/examples/2.3.x/server-kotlin/java/users/create-token.md index fccdf6bae..37458e2f9 100644 --- a/examples/2.3.x/server-kotlin/java/users/create-token.md +++ b/examples/2.3.x/server-kotlin/java/users/create-token.md @@ -12,8 +12,8 @@ Users users = new Users(client); users.createToken( "<USER_ID>", // userId - 4, // length (optional) - 60, // expire (optional) + 4L, // length (optional) + 60L, // expire (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/users/update-labels.md b/examples/2.3.x/server-kotlin/java/users/update-labels.md index ae52debaa..7b079ce5e 100644 --- a/examples/2.3.x/server-kotlin/java/users/update-labels.md +++ b/examples/2.3.x/server-kotlin/java/users/update-labels.md @@ -12,7 +12,7 @@ Users users = new Users(client); users.updateLabels( "<USER_ID>", // userId - List.of(), // labels + List.of("subscriber"), // labels new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-collection.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-collection.md index d3dc60bee..803cf0973 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-collection.md @@ -16,7 +16,7 @@ vectorsDB.createCollection( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId "<NAME>", // name - 1, // dimension + 4L, // dimension List.of(Permission.read(Role.any())), // permissions (optional) false, // documentSecurity (optional) false, // enabled (optional) diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-documents.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-documents.md index 09628cb30..7392fba5c 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-documents.md @@ -13,7 +13,13 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.createDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "embeddings", List.of(0.12, -0.55, 0.88, 1.02), + "metadata", Map.of( + "name", "First document" + ) + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-index.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-index.md index 8934428c4..7e3b0e432 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-index.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-index.md @@ -17,7 +17,7 @@ vectorsDB.createIndex( "<COLLECTION_ID>", // collectionId "<KEY>", // key VectorsDBIndexType.HNSW_EUCLIDEAN, // type - List.of(), // attributes + List.of("embeddings"), // attributes List.of(OrderBy.ASC), // orders (optional) List.of(), // lengths (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-operations.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-operations.md index bc2f85e7c..db3ad3ec9 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-operations.md @@ -18,7 +18,10 @@ vectorsDB.createOperations( "collectionId", "<COLLECTION_ID>", "documentId", "<DOCUMENT_ID>", "data", Map.of( - "name", "Walter O'Brien" + "embeddings", List.of(0.12, -0.55, 0.88, 1.02), + "metadata", Map.of( + "name", "First document" + ) ) )), // operations (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-query.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-query.md index 21ca0cebb..c27a86fd3 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-query.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-query.md @@ -16,7 +16,7 @@ vectorsDB.createQuery( List.of(), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create-transaction.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create-transaction.md index c855284b3..e4f2c762b 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create-transaction.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create-transaction.md @@ -11,7 +11,7 @@ Client client = new Client() VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.createTransaction( - 60, // ttl (optional) + 60L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/create.md b/examples/2.3.x/server-kotlin/java/vectorsdb/create.md index 433f6f08e..b21d941f3 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/create.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/create.md @@ -15,7 +15,7 @@ vectorsDB.create( "<NAME>", // name false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/delete-documents.md b/examples/2.3.x/server-kotlin/java/vectorsdb/delete-documents.md index 31a425a4e..4feaf614c 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/delete-documents.md @@ -13,7 +13,7 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.deleteDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // queries (optional) + List.of("{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/list-documents.md b/examples/2.3.x/server-kotlin/java/vectorsdb/list-documents.md index 857d79677..460327df6 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/list-documents.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/list-documents.md @@ -16,7 +16,7 @@ vectorsDB.listDocuments( List.of(), // queries (optional) "<TRANSACTION_ID>", // transactionId (optional) false, // total (optional) - 0, // ttl (optional) + 0L, // ttl (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/list-operations.md b/examples/2.3.x/server-kotlin/java/vectorsdb/list-operations.md index de53b2740..885daeaf6 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/list-operations.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/list-operations.md @@ -13,8 +13,8 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.listOperations( "<DATABASE_ID>", // databaseId "queued", // status (optional) - 1, // limit (optional) - 0, // offset (optional) + 1L, // limit (optional) + 0L, // offset (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/list-transactions.md b/examples/2.3.x/server-kotlin/java/vectorsdb/list-transactions.md index 6b0890a63..1d57acc4f 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/list-transactions.md @@ -12,6 +12,7 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.listTransactions( List.of(), // queries (optional) + false, // total (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { error.printStackTrace(); diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/update-collection.md b/examples/2.3.x/server-kotlin/java/vectorsdb/update-collection.md index 9359c8086..8952e2db5 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/update-collection.md @@ -16,7 +16,7 @@ vectorsDB.updateCollection( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId "<NAME>", // name - 1, // dimension (optional) + 4L, // dimension (optional) List.of(Permission.read(Role.any())), // permissions (optional) false, // documentSecurity (optional) false, // enabled (optional) diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/update.md b/examples/2.3.x/server-kotlin/java/vectorsdb/update.md index 01d23bdf9..a06e2d94e 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/update.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/update.md @@ -15,7 +15,7 @@ vectorsDB.update( "<NAME>", // name false, // enabled (optional) "serverless", // specification (optional) - 0, // replicas (optional) + 0L, // replicas (optional) "async", // syncMode (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/vectorsdb/upsert-documents.md b/examples/2.3.x/server-kotlin/java/vectorsdb/upsert-documents.md index 6371a0cb5..eea5748e7 100644 --- a/examples/2.3.x/server-kotlin/java/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/java/vectorsdb/upsert-documents.md @@ -13,7 +13,13 @@ VectorsDB vectorsDB = new VectorsDB(client); vectorsDB.upsertDocuments( "<DATABASE_ID>", // databaseId "<COLLECTION_ID>", // collectionId - List.of(), // documents + List.of(Map.of( + "$id", "example1", + "embeddings", List.of(0.12, -0.55, 0.88, 1.02), + "metadata", Map.of( + "name", "First document" + ) + )), // documents "<TRANSACTION_ID>", // transactionId (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.3.x/server-kotlin/java/webhooks/create.md b/examples/2.3.x/server-kotlin/java/webhooks/create.md index 9759465e8..32e42515b 100644 --- a/examples/2.3.x/server-kotlin/java/webhooks/create.md +++ b/examples/2.3.x/server-kotlin/java/webhooks/create.md @@ -14,7 +14,7 @@ webhooks.create( "<WEBHOOK_ID>", // webhookId "https://example.com/webhook", // url "<NAME>", // name - List.of(), // events + List.of("users.*.create"), // events false, // enabled (optional) false, // tls (optional) "<AUTH_USERNAME>", // authUsername (optional) diff --git a/examples/2.3.x/server-kotlin/java/webhooks/update.md b/examples/2.3.x/server-kotlin/java/webhooks/update.md index 5c7f85f83..274b4d88d 100644 --- a/examples/2.3.x/server-kotlin/java/webhooks/update.md +++ b/examples/2.3.x/server-kotlin/java/webhooks/update.md @@ -14,7 +14,7 @@ webhooks.update( "<WEBHOOK_ID>", // webhookId "<NAME>", // name "https://example.com/webhook", // url - List.of(), // events + List.of("users.*.create"), // events false, // enabled (optional) false, // tls (optional) "<AUTH_USERNAME>", // authUsername (optional) diff --git a/examples/2.3.x/server-kotlin/kotlin/account/create-email-password-session.md b/examples/2.3.x/server-kotlin/kotlin/account/create-email-password-session.md index a1cea8ff9..8039c0d72 100644 --- a/examples/2.3.x/server-kotlin/kotlin/account/create-email-password-session.md +++ b/examples/2.3.x/server-kotlin/kotlin/account/create-email-password-session.md @@ -12,6 +12,7 @@ val account = Account(client) val response = account.createEmailPasswordSession( email = "email@example.com", - password = "password" + password = "password", + duration = 60 // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/account/delete-sessions.md b/examples/2.3.x/server-kotlin/kotlin/account/delete-sessions.md index 5232e675e..16aab2410 100644 --- a/examples/2.3.x/server-kotlin/kotlin/account/delete-sessions.md +++ b/examples/2.3.x/server-kotlin/kotlin/account/delete-sessions.md @@ -10,5 +10,7 @@ val client = Client() val account = Account(client) -val response = account.deleteSessions() +val response = account.deleteSessions( + current = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/account/list-sessions.md b/examples/2.3.x/server-kotlin/kotlin/account/list-sessions.md index 120766637..0644bf135 100644 --- a/examples/2.3.x/server-kotlin/kotlin/account/list-sessions.md +++ b/examples/2.3.x/server-kotlin/kotlin/account/list-sessions.md @@ -10,5 +10,7 @@ val client = Client() val account = Account(client) -val response = account.listSessions() +val response = account.listSessions( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/create-event.md b/examples/2.3.x/server-kotlin/kotlin/analytics/create-event.md new file mode 100644 index 000000000..6b76fb62f --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/create-event.md @@ -0,0 +1,28 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +val analytics = Analytics(client) + +val response = analytics.createEvent( + propertyId = "<PROPERTY_ID>", + name = "<NAME>", + url = "https://example.com", + domain = "<DOMAIN>", // optional + referrer = "<REFERRER>", // optional + screenWidth = 0, // optional + sessionHash = "<SESSION_HASH>", // optional + scrollDepth = 0, // optional + engagementTime = 0, // optional + props = listOf(), // optional + userId = "<USER_ID>", // optional + ip = "<IP>", // optional + userAgent = "<USER_AGENT>" // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/create-property.md b/examples/2.3.x/server-kotlin/kotlin/analytics/create-property.md new file mode 100644 index 000000000..bec232510 --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/create-property.md @@ -0,0 +1,22 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.createProperty( + propertyId = "<PROPERTY_ID>", + name = "<NAME>", + domain = "<DOMAIN>", // optional + timezone = "<TIMEZONE>", // optional + enabled = false, // optional + public = false, // optional + allowedOrigins = listOf() // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/delete-property.md b/examples/2.3.x/server-kotlin/kotlin/analytics/delete-property.md new file mode 100644 index 000000000..f9bbbf831 --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/delete-property.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.deleteProperty( + propertyId = "<PROPERTY_ID>" +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/get-property.md b/examples/2.3.x/server-kotlin/kotlin/analytics/get-property.md new file mode 100644 index 000000000..14478ecb4 --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/get-property.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.getProperty( + propertyId = "<PROPERTY_ID>" +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/list-metrics.md b/examples/2.3.x/server-kotlin/kotlin/analytics/list-metrics.md new file mode 100644 index 000000000..884af423e --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/list-metrics.md @@ -0,0 +1,25 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics +import io.appwrite.enums.AnalyticsInterval +import io.appwrite.enums.AnalyticsDimension + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.listMetrics( + propertyId = "<PROPERTY_ID>", + queries = listOf(), // optional + interval = AnalyticsInterval.ONE_HOUR, // optional + dimensions = listOf(AnalyticsDimension.COUNTRY), // optional + dateRange = "<DATE_RANGE>", // optional + startAt = "2020-10-15T06:38:00.000+00:00", // optional + endAt = "2020-10-15T06:38:00.000+00:00", // optional + limit = 1 // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/list-properties.md b/examples/2.3.x/server-kotlin/kotlin/analytics/list-properties.md new file mode 100644 index 000000000..afce64f86 --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/list-properties.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.listProperties( + queries = listOf(), // optional + search = "<SEARCH>", // optional + total = false // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/analytics/update-property.md b/examples/2.3.x/server-kotlin/kotlin/analytics/update-property.md new file mode 100644 index 000000000..0e275a77a --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/analytics/update-property.md @@ -0,0 +1,22 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Analytics + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val analytics = Analytics(client) + +val response = analytics.updateProperty( + propertyId = "<PROPERTY_ID>", + name = "<NAME>", // optional + domain = "<DOMAIN>", // optional + timezone = "<TIMEZONE>", // optional + enabled = false, // optional + public = false, // optional + allowedOrigins = listOf() // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/avatars/delete-photo.md b/examples/2.3.x/server-kotlin/kotlin/avatars/delete-photo.md new file mode 100644 index 000000000..c2ea65f3b --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/avatars/delete-photo.md @@ -0,0 +1,14 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Avatars + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +val avatars = Avatars(client) + +val response = avatars.deletePhoto() +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/avatars/get-screenshot.md b/examples/2.3.x/server-kotlin/kotlin/avatars/get-screenshot.md index ea26656a8..aee9eb6a8 100644 --- a/examples/2.3.x/server-kotlin/kotlin/avatars/get-screenshot.md +++ b/examples/2.3.x/server-kotlin/kotlin/avatars/get-screenshot.md @@ -17,12 +17,11 @@ val avatars = Avatars(client) val result = avatars.getScreenshot( url = "https://example.com", headers = mapOf( - "Authorization" to "Bearer token123", - "X-Custom-Header" to "value" + "Accept-Language" to "en-US,en;q=0.9" ), // optional viewportWidth = 1920, // optional viewportHeight = 1080, // optional - scale = 2, // optional + scale = 2.0, // optional theme = BrowserTheme.DARK, // optional userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // optional fullpage = true, // optional @@ -30,7 +29,7 @@ val result = avatars.getScreenshot( timezone = Timezone.AFRICA_ABIDJAN, // optional latitude = 37.7749, // optional longitude = -122.4194, // optional - accuracy = 100, // optional + accuracy = 100.0, // optional touch = true, // optional permissions = listOf(BrowserPermission.GEOLOCATION, BrowserPermission.NOTIFICATIONS), // optional sleep = 3, // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/avatars/update-photo.md b/examples/2.3.x/server-kotlin/kotlin/avatars/update-photo.md new file mode 100644 index 000000000..130590c16 --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/avatars/update-photo.md @@ -0,0 +1,17 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.models.InputFile +import io.appwrite.services.Avatars + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +val avatars = Avatars(client) + +val response = avatars.updatePhoto( + file = InputFile.fromPath("file.png") +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/create-documents.md b/examples/2.3.x/server-kotlin/kotlin/databases/create-documents.md index a0f32b6c3..19b9f5f02 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/create-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/create-documents.md @@ -13,7 +13,14 @@ val databases = Databases(client) val response = databases.createDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/create-float-attribute.md b/examples/2.3.x/server-kotlin/kotlin/databases/create-float-attribute.md index 2476449b9..7acee4aa3 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/create-float-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/create-float-attribute.md @@ -15,8 +15,8 @@ val response = databases.createFloatAttribute( collectionId = "<COLLECTION_ID>", key = "<KEY>", required = false, - min = 0, // optional - max = 100, // optional + min = 0.0, // optional + max = 100.0, // optional default = 10.5, // optional array = false // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/create-index.md b/examples/2.3.x/server-kotlin/kotlin/databases/create-index.md index 4dd7197c3..de5c64a51 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/create-index.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/create-index.md @@ -17,7 +17,7 @@ val response = databases.createIndex( collectionId = "<COLLECTION_ID>", key = "<KEY>", type = DatabasesIndexType.KEY, - attributes = listOf(), + attributes = listOf("username"), orders = listOf(OrderBy.ASC), // optional lengths = listOf() // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/decrement-document-attribute.md b/examples/2.3.x/server-kotlin/kotlin/databases/decrement-document-attribute.md index fca8286ea..648879701 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/decrement-document-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/decrement-document-attribute.md @@ -15,8 +15,8 @@ val response = databases.decrementDocumentAttribute( collectionId = "<COLLECTION_ID>", documentId = "<DOCUMENT_ID>", attribute = "<ATTRIBUTE>", - value = 1, // optional - min = 0, // optional + value = 1.0, // optional + min = 0.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/delete-documents.md b/examples/2.3.x/server-kotlin/kotlin/databases/delete-documents.md index 43baf47bc..1377db781 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/delete-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/delete-documents.md @@ -13,7 +13,7 @@ val databases = Databases(client) val response = databases.deleteDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - queries = listOf(), // optional + queries = listOf("{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/increment-document-attribute.md b/examples/2.3.x/server-kotlin/kotlin/databases/increment-document-attribute.md index 4d0ffb2a9..0822e5b65 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/increment-document-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/increment-document-attribute.md @@ -15,8 +15,8 @@ val response = databases.incrementDocumentAttribute( collectionId = "<COLLECTION_ID>", documentId = "<DOCUMENT_ID>", attribute = "<ATTRIBUTE>", - value = 1, // optional - max = 100, // optional + value = 1.0, // optional + max = 100.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/list-transactions.md b/examples/2.3.x/server-kotlin/kotlin/databases/list-transactions.md index 1195069e1..3058fdc43 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/list-transactions.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/list-transactions.md @@ -11,6 +11,7 @@ val client = Client() val databases = Databases(client) val response = databases.listTransactions( - queries = listOf() // optional + queries = listOf(), // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/update-float-attribute.md b/examples/2.3.x/server-kotlin/kotlin/databases/update-float-attribute.md index d0049003c..8284539ad 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/update-float-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/update-float-attribute.md @@ -16,8 +16,8 @@ val response = databases.updateFloatAttribute( key = "<KEY>", required = false, default = 10.5, - min = 0, // optional - max = 100, // optional + min = 0.0, // optional + max = 100.0, // optional newKey = "<NEW_KEY>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/databases/upsert-documents.md b/examples/2.3.x/server-kotlin/kotlin/databases/upsert-documents.md index a9e673c20..549b83e61 100644 --- a/examples/2.3.x/server-kotlin/kotlin/databases/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/databases/upsert-documents.md @@ -13,7 +13,14 @@ val databases = Databases(client) val response = databases.upsertDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-documents.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-documents.md index b6f084798..3b7e17651 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-documents.md @@ -13,7 +13,14 @@ val documentsDB = DocumentsDB(client) val response = documentsDB.createDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-index.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-index.md index df6fdb523..cb750802d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-index.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/create-index.md @@ -17,7 +17,7 @@ val response = documentsDB.createIndex( collectionId = "<COLLECTION_ID>", key = "<KEY>", type = DocumentsDBIndexType.KEY, - attributes = listOf(), + attributes = listOf("username"), orders = listOf(OrderBy.ASC), // optional lengths = listOf() // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/decrement-document-attribute.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/decrement-document-attribute.md index c4668ec55..22e757751 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/decrement-document-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/decrement-document-attribute.md @@ -15,8 +15,8 @@ val response = documentsDB.decrementDocumentAttribute( collectionId = "<COLLECTION_ID>", documentId = "<DOCUMENT_ID>", attribute = "<ATTRIBUTE>", - value = 1, // optional - min = 0, // optional + value = 1.0, // optional + min = 0.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/delete-documents.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/delete-documents.md index 9a5397c07..1cf65006b 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/delete-documents.md @@ -13,7 +13,7 @@ val documentsDB = DocumentsDB(client) val response = documentsDB.deleteDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - queries = listOf(), // optional + queries = listOf("{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/increment-document-attribute.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/increment-document-attribute.md index bfc586033..53ce0a7a3 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/increment-document-attribute.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/increment-document-attribute.md @@ -15,8 +15,8 @@ val response = documentsDB.incrementDocumentAttribute( collectionId = "<COLLECTION_ID>", documentId = "<DOCUMENT_ID>", attribute = "<ATTRIBUTE>", - value = 1, // optional - max = 100, // optional + value = 1.0, // optional + max = 100.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/list-transactions.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/list-transactions.md index 00967cc24..809b48ea0 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/list-transactions.md @@ -11,6 +11,7 @@ val client = Client() val documentsDB = DocumentsDB(client) val response = documentsDB.listTransactions( - queries = listOf() // optional + queries = listOf(), // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/documentsdb/upsert-documents.md b/examples/2.3.x/server-kotlin/kotlin/documentsdb/upsert-documents.md index abf463385..130ac785a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/documentsdb/upsert-documents.md @@ -13,7 +13,14 @@ val documentsDB = DocumentsDB(client) val response = documentsDB.upsertDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/embeddings/create-text-embeddings.md b/examples/2.3.x/server-kotlin/kotlin/embeddings/create-text-embeddings.md index 6d0b3c1ca..0a7900a9d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-kotlin/kotlin/embeddings/create-text-embeddings.md @@ -12,7 +12,7 @@ val client = Client() val embeddings = Embeddings(client) val response = embeddings.createTextEmbeddings( - texts = listOf(), + texts = listOf("Appwrite helps developers build applications.", "Find documents with semantic search."), model = EmbeddingModel.NOMIC_EMBED_TEXT // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/functions/list-runtimes.md b/examples/2.3.x/server-kotlin/kotlin/functions/list-runtimes.md index b32e73bf0..59f6f8254 100644 --- a/examples/2.3.x/server-kotlin/kotlin/functions/list-runtimes.md +++ b/examples/2.3.x/server-kotlin/kotlin/functions/list-runtimes.md @@ -10,5 +10,7 @@ val client = Client() val functions = Functions(client) -val response = functions.listRuntimes() +val response = functions.listRuntimes( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/functions/list-specifications.md b/examples/2.3.x/server-kotlin/kotlin/functions/list-specifications.md index 516eeb856..24f36457b 100644 --- a/examples/2.3.x/server-kotlin/kotlin/functions/list-specifications.md +++ b/examples/2.3.x/server-kotlin/kotlin/functions/list-specifications.md @@ -11,6 +11,7 @@ val client = Client() val functions = Functions(client) val response = functions.listSpecifications( - type = "runtimes" // optional + type = "runtimes", // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/graphql/mutation.md b/examples/2.3.x/server-kotlin/kotlin/graphql/mutation.md index 3ec94a5d4..d5f6bade8 100644 --- a/examples/2.3.x/server-kotlin/kotlin/graphql/mutation.md +++ b/examples/2.3.x/server-kotlin/kotlin/graphql/mutation.md @@ -11,6 +11,8 @@ val client = Client() val graphql = Graphql(client) val response = graphql.mutation( - query = mapOf( "a" to "b" ) + query = mapOf( + "query" to "mutation { accountUpdateName(name: \"Walter\") { name } }" + ) ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/graphql/query.md b/examples/2.3.x/server-kotlin/kotlin/graphql/query.md index e22d508b3..136eeb93a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/graphql/query.md +++ b/examples/2.3.x/server-kotlin/kotlin/graphql/query.md @@ -11,6 +11,8 @@ val client = Client() val graphql = Graphql(client) val response = graphql.query( - query = mapOf( "a" to "b" ) + query = mapOf( + "query" to "query { localeGet { ip } }" + ) ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-codes.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-codes.md index d7d323e4f..fe8fe003b 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-codes.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-codes.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listCodes() +val response = locale.listCodes( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-continents.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-continents.md index 84fd76bcf..09fdfb045 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-continents.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-continents.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listContinents() +val response = locale.listContinents( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-eu.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-eu.md index 4fbcee6c1..6767c7a25 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-eu.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-eu.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listCountriesEU() +val response = locale.listCountriesEU( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-phones.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-phones.md index 02c56bbcc..d24c0fd3d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-phones.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries-phones.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listCountriesPhones() +val response = locale.listCountriesPhones( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries.md index 441e130e5..f8f0125d6 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-countries.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-countries.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listCountries() +val response = locale.listCountries( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-currencies.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-currencies.md index c68d676a5..842dcece9 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-currencies.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-currencies.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listCurrencies() +val response = locale.listCurrencies( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/locale/list-languages.md b/examples/2.3.x/server-kotlin/kotlin/locale/list-languages.md index 307d0b796..6943c46fe 100644 --- a/examples/2.3.x/server-kotlin/kotlin/locale/list-languages.md +++ b/examples/2.3.x/server-kotlin/kotlin/locale/list-languages.md @@ -10,5 +10,7 @@ val client = Client() val locale = Locale(client) -val response = locale.listLanguages() +val response = locale.listLanguages( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/messaging/create-push.md b/examples/2.3.x/server-kotlin/kotlin/messaging/create-push.md index 500478d68..1d37c5680 100644 --- a/examples/2.3.x/server-kotlin/kotlin/messaging/create-push.md +++ b/examples/2.3.x/server-kotlin/kotlin/messaging/create-push.md @@ -30,6 +30,7 @@ val response = messaging.createPush( scheduledAt = "2020-10-15T06:38:00.000+00:00", // optional contentAvailable = false, // optional critical = false, // optional - priority = MessagePriority.NORMAL // optional + priority = MessagePriority.NORMAL, // optional + channelId = "<CHANNEL_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/messaging/update-email.md b/examples/2.3.x/server-kotlin/kotlin/messaging/update-email.md index de4c73476..aa4c5c8aa 100644 --- a/examples/2.3.x/server-kotlin/kotlin/messaging/update-email.md +++ b/examples/2.3.x/server-kotlin/kotlin/messaging/update-email.md @@ -12,18 +12,18 @@ val messaging = Messaging(client) val response = messaging.updateEmail( messageId = "<MESSAGE_ID>", + subject = "<SUBJECT>", // optional + content = "<CONTENT>", // optional topics = listOf(), // optional users = listOf(), // optional targets = listOf(), // optional - subject = "<SUBJECT>", // optional - content = "<CONTENT>", // optional - draft = false, // optional - html = false, // optional cc = listOf(), // optional bcc = listOf(), // optional + attachments = listOf(), // optional replyToEmail = "email@example.com", // optional replyToName = "<REPLY_TO_NAME>", // optional - scheduledAt = "2020-10-15T06:38:00.000+00:00", // optional - attachments = listOf() // optional + draft = false, // optional + html = false, // optional + scheduledAt = "2020-10-15T06:38:00.000+00:00" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/messaging/update-push.md b/examples/2.3.x/server-kotlin/kotlin/messaging/update-push.md index 9d9f24e6b..e752a99b6 100644 --- a/examples/2.3.x/server-kotlin/kotlin/messaging/update-push.md +++ b/examples/2.3.x/server-kotlin/kotlin/messaging/update-push.md @@ -13,11 +13,11 @@ val messaging = Messaging(client) val response = messaging.updatePush( messageId = "<MESSAGE_ID>", + title = "<TITLE>", // optional + body = "<BODY>", // optional topics = listOf(), // optional users = listOf(), // optional targets = listOf(), // optional - title = "<TITLE>", // optional - body = "<BODY>", // optional data = mapOf( "a" to "b" ), // optional action = "<ACTION>", // optional image = "<ID1:ID2>", // optional @@ -30,6 +30,7 @@ val response = messaging.updatePush( scheduledAt = "2020-10-15T06:38:00.000+00:00", // optional contentAvailable = false, // optional critical = false, // optional - priority = MessagePriority.NORMAL // optional + priority = MessagePriority.NORMAL, // optional + channelId = "<CHANNEL_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/messaging/update-sms.md b/examples/2.3.x/server-kotlin/kotlin/messaging/update-sms.md index aa53bf147..7b8c9f853 100644 --- a/examples/2.3.x/server-kotlin/kotlin/messaging/update-sms.md +++ b/examples/2.3.x/server-kotlin/kotlin/messaging/update-sms.md @@ -12,10 +12,10 @@ val messaging = Messaging(client) val response = messaging.updateSMS( messageId = "<MESSAGE_ID>", + content = "<CONTENT>", // optional topics = listOf(), // optional users = listOf(), // optional targets = listOf(), // optional - content = "<CONTENT>", // optional draft = false, // optional scheduledAt = "2020-10-15T06:38:00.000+00:00" // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/mongo/update.md b/examples/2.3.x/server-kotlin/kotlin/mongo/update.md index 3089cd928..f50ed9026 100644 --- a/examples/2.3.x/server-kotlin/kotlin/mongo/update.md +++ b/examples/2.3.x/server-kotlin/kotlin/mongo/update.md @@ -25,7 +25,7 @@ val response = mongo.update( storageAutoscaling = false, // optional storageAutoscalingThresholdPercent = 50, // optional storageAutoscalingMaxGb = 0, // optional - metricsTraceSampleRate = 0, // optional + metricsTraceSampleRate = 0.0, // optional metricsSlowQueryLogThresholdMs = 0, // optional sqlApiEnabled = false, // optional sqlApiAllowedStatements = listOf(), // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/mysql/update.md b/examples/2.3.x/server-kotlin/kotlin/mysql/update.md index 1b38deedf..d20693a39 100644 --- a/examples/2.3.x/server-kotlin/kotlin/mysql/update.md +++ b/examples/2.3.x/server-kotlin/kotlin/mysql/update.md @@ -25,7 +25,7 @@ val response = mysql.update( storageAutoscaling = false, // optional storageAutoscalingThresholdPercent = 50, // optional storageAutoscalingMaxGb = 0, // optional - metricsTraceSampleRate = 0, // optional + metricsTraceSampleRate = 0.0, // optional metricsSlowQueryLogThresholdMs = 0, // optional sqlApiEnabled = false, // optional sqlApiAllowedStatements = listOf(), // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/approve.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/approve.md index 7cde17080..8e7fbcbbd 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/approve.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/approve.md @@ -11,8 +11,8 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.approve( - grant_id = "<GRANT_ID>", - authorization_details = "<AUTHORIZATION_DETAILS>", // optional + grantId = "<GRANT_ID>", + authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional scope = "<SCOPE>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize-post.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize-post.md index 103466bca..9e24f0542 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize-post.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize-post.md @@ -11,19 +11,19 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.authorizePost( - client_id = "<CLIENT_ID>", // optional - redirect_uri = "https://example.com", // optional - response_type = "", // optional + clientId = "<CLIENT_ID>", // optional + redirectUri = "https://example.com", // optional + responseType = "", // optional scope = "<SCOPE>", // optional state = "<STATE>", // optional nonce = "<NONCE>", // optional - code_challenge = "<CODE_CHALLENGE>", // optional - code_challenge_method = "s256", // optional + codeChallenge = "<CODE_CHALLENGE>", // optional + codeChallengeMethod = "s256", // optional prompt = "<PROMPT>", // optional - max_age = 0, // optional - authorization_details = "<AUTHORIZATION_DETAILS>", // optional + maxAge = 0, // optional + authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional resource = "", // optional audience = "<AUDIENCE>", // optional - request_uri = "<REQUEST_URI>" // optional + requestUri = "<REQUEST_URI>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize.md index 839bf24a2..206524295 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/authorize.md @@ -11,19 +11,19 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.authorize( - client_id = "<CLIENT_ID>", // optional - redirect_uri = "https://example.com", // optional - response_type = "", // optional + clientId = "<CLIENT_ID>", // optional + redirectUri = "https://example.com", // optional + responseType = "", // optional scope = "<SCOPE>", // optional state = "<STATE>", // optional nonce = "<NONCE>", // optional - code_challenge = "<CODE_CHALLENGE>", // optional - code_challenge_method = "s256", // optional + codeChallenge = "<CODE_CHALLENGE>", // optional + codeChallengeMethod = "s256", // optional prompt = "<PROMPT>", // optional - max_age = 0, // optional - authorization_details = "<AUTHORIZATION_DETAILS>", // optional + maxAge = 0, // optional + authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional resource = "", // optional audience = "<AUDIENCE>", // optional - request_uri = "<REQUEST_URI>" // optional + requestUri = "<REQUEST_URI>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-device-authorization.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-device-authorization.md index 60b7fa0d9..e2506689a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-device-authorization.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-device-authorization.md @@ -11,9 +11,9 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.createDeviceAuthorization( - client_id = "<CLIENT_ID>", // optional + clientId = "<CLIENT_ID>", // optional scope = "<SCOPE>", // optional - authorization_details = "<AUTHORIZATION_DETAILS>", // optional + authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional resource = "", // optional audience = "<AUDIENCE>" // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-grant.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-grant.md index 1fe13388d..76b4c1c97 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-grant.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-grant.md @@ -11,6 +11,6 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.createGrant( - user_code = "<USER_CODE>" + userCode = "<USER_CODE>" ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-par.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-par.md index 8d9789e1c..66496f375 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-par.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-par.md @@ -11,17 +11,17 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.createPAR( - client_id = "<CLIENT_ID>", - redirect_uri = "https://example.com", - response_type = "code", + clientId = "<CLIENT_ID>", + redirectUri = "https://example.com", + responseType = "code", scope = "<SCOPE>", // optional state = "<STATE>", // optional nonce = "<NONCE>", // optional - code_challenge = "<CODE_CHALLENGE>", // optional - code_challenge_method = "s256", // optional + codeChallenge = "<CODE_CHALLENGE>", // optional + codeChallengeMethod = "s256", // optional prompt = "<PROMPT>", // optional - max_age = 0, // optional - authorization_details = "<AUTHORIZATION_DETAILS>", // optional + maxAge = 0, // optional + authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional resource = "", // optional audience = "<AUDIENCE>" // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-token.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-token.md index 6541e3aa2..8bb955cc6 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/create-token.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/create-token.md @@ -11,14 +11,14 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.createToken( - grant_type = "<GRANT_TYPE>", + grantType = "<GRANT_TYPE>", code = "<CODE>", // optional - refresh_token = "<REFRESH_TOKEN>", // optional - device_code = "<DEVICE_CODE>", // optional - client_id = "<CLIENT_ID>", // optional - client_secret = "<CLIENT_SECRET>", // optional - code_verifier = "<CODE_VERIFIER>", // optional - redirect_uri = "https://example.com", // optional + refreshToken = "<REFRESH_TOKEN>", // optional + deviceCode = "<DEVICE_CODE>", // optional + clientId = "<CLIENT_ID>", // optional + clientSecret = "<CLIENT_SECRET>", // optional + codeVerifier = "<CODE_VERIFIER>", // optional + redirectUri = "https://example.com", // optional resource = "", // optional audience = "<AUDIENCE>" // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/get-grant.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/get-grant.md index a4ef6641a..f0e642775 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/get-grant.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/get-grant.md @@ -11,6 +11,6 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.getGrant( - grant_id = "<GRANT_ID>" + grantId = "<GRANT_ID>" ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/introspect.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/introspect.md new file mode 100644 index 000000000..3107384ff --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/introspect.md @@ -0,0 +1,19 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val oauth2 = Oauth2(client) + +val response = oauth2.introspect( + token = "<TOKEN>", + tokenTypeHint = "access_token", // optional + clientId = "<CLIENT_ID>", // optional + clientSecret = "<CLIENT_SECRET>" // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/reject.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/reject.md index 88532e607..85ddd42b4 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/reject.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/reject.md @@ -11,6 +11,6 @@ val client = Client() val oauth2 = Oauth2(client) val response = oauth2.reject( - grant_id = "<GRANT_ID>" + grantId = "<GRANT_ID>" ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/oauth2/revoke.md b/examples/2.3.x/server-kotlin/kotlin/oauth2/revoke.md index 9d298a4ac..94cd5ec27 100644 --- a/examples/2.3.x/server-kotlin/kotlin/oauth2/revoke.md +++ b/examples/2.3.x/server-kotlin/kotlin/oauth2/revoke.md @@ -12,8 +12,8 @@ val oauth2 = Oauth2(client) val response = oauth2.revoke( token = "<TOKEN>", - token_type_hint = "access_token", // optional - client_id = "<CLIENT_ID>", // optional - client_secret = "<CLIENT_SECRET>" // optional + tokenTypeHint = "access_token", // optional + clientId = "<CLIENT_ID>", // optional + clientSecret = "<CLIENT_SECRET>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-kotlin/kotlin/organization/create-ephemeral-project-key.md index df053ca63..6982b4901 100644 --- a/examples/2.3.x/server-kotlin/kotlin/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-kotlin/kotlin/organization/create-ephemeral-project-key.md @@ -13,7 +13,7 @@ val organization = Organization(client) val response = organization.createEphemeralProjectKey( projectId = "<PROJECT_ID>", - scopes = listOf(ProjectKeyScopes.PROJECT_READ), + scopes = listOf(ProjectKeyScopes.USERS_READ), duration = 600 ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/organization/update-project-key.md b/examples/2.3.x/server-kotlin/kotlin/organization/update-project-key.md index 81c930dc9..8fc46f60d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/organization/update-project-key.md +++ b/examples/2.3.x/server-kotlin/kotlin/organization/update-project-key.md @@ -15,7 +15,7 @@ val response = organization.updateProjectKey( projectId = "<PROJECT_ID>", keyId = "<KEY_ID>", name = "<NAME>", - scopes = listOf(ProjectKeyScopes.PROJECT_READ), + scopes = listOf(ProjectKeyScopes.USERS_READ), expire = "2020-10-15T06:38:00.000+00:00" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/postgresql/update.md b/examples/2.3.x/server-kotlin/kotlin/postgresql/update.md index 3c3f1da54..68dbe35f4 100644 --- a/examples/2.3.x/server-kotlin/kotlin/postgresql/update.md +++ b/examples/2.3.x/server-kotlin/kotlin/postgresql/update.md @@ -25,7 +25,7 @@ val response = postgresql.update( storageAutoscaling = false, // optional storageAutoscalingThresholdPercent = 50, // optional storageAutoscalingMaxGb = 0, // optional - metricsTraceSampleRate = 0, // optional + metricsTraceSampleRate = 0.0, // optional metricsSlowQueryLogThresholdMs = 0, // optional sqlApiEnabled = false, // optional sqlApiAllowedStatements = listOf(), // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/project/create-ephemeral-key.md b/examples/2.3.x/server-kotlin/kotlin/project/create-ephemeral-key.md index b29f4b406..c2a6aa08f 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/create-ephemeral-key.md @@ -12,7 +12,7 @@ val client = Client() val project = Project(client) val response = project.createEphemeralKey( - scopes = listOf(ProjectKeyScopes.PROJECT_READ), + scopes = listOf(ProjectKeyScopes.USERS_READ), duration = 600 ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/create-smtp-test.md b/examples/2.3.x/server-kotlin/kotlin/project/create-smtp-test.md index b457518ec..effd1d739 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/create-smtp-test.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/create-smtp-test.md @@ -11,6 +11,6 @@ val client = Client() val project = Project(client) val response = project.createSMTPTest( - emails = listOf() + emails = listOf("recipient@example.com") ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-key.md b/examples/2.3.x/server-kotlin/kotlin/project/update-key.md index 714a20e20..128c99851 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-key.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-key.md @@ -14,7 +14,7 @@ val project = Project(client) val response = project.updateKey( keyId = "<KEY_ID>", name = "<NAME>", - scopes = listOf(ProjectKeyScopes.PROJECT_READ), + scopes = listOf(ProjectKeyScopes.USERS_READ), expire = "2020-10-15T06:38:00.000+00:00" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-labels.md b/examples/2.3.x/server-kotlin/kotlin/project/update-labels.md index fd68ba524..40edc7ca5 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-labels.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-labels.md @@ -11,6 +11,6 @@ val client = Client() val project = Project(client) val response = project.updateLabels( - labels = listOf() + labels = listOf("production") ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-auth-0.md index da0419765..039795a6a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-auth-0.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2Auth0Prompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ val response = project.updateOAuth2Auth0( clientId = "<CLIENT_ID>", // optional clientSecret = "<CLIENT_SECRET>", // optional endpoint = "<ENDPOINT>", // optional + prompt = listOf(ProjectOAuth2Auth0Prompt.NONE), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-discord.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-discord.md index a4d506b3f..8c1446dd2 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-discord.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2DiscordPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ val project = Project(client) val response = project.updateOAuth2Discord( clientId = "<CLIENT_ID>", // optional clientSecret = "<CLIENT_SECRET>", // optional + prompt = listOf(ProjectOAuth2DiscordPrompt.NONE), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-git-hub.md index e4070b396..b9c94d8ca 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-git-hub.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2GitHubPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ val project = Project(client) val response = project.updateOAuth2GitHub( clientId = "<CLIENT_ID>", // optional clientSecret = "<CLIENT_SECRET>", // optional + prompt = listOf(ProjectOAuth2GitHubPrompt.SELECT_ACCOUNT), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-kakao.md index 364c9b5df..8afddeb1a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-kakao.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2KakaoPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ val project = Project(client) val response = project.updateOAuth2Kakao( clientId = "<CLIENT_ID>", // optional clientSecret = "<CLIENT_SECRET>", // optional + prompt = listOf(ProjectOAuth2KakaoPrompt.NONE), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-microsoft.md index c44372a88..41b30037f 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-microsoft.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2MicrosoftPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -14,6 +15,7 @@ val response = project.updateOAuth2Microsoft( applicationId = "<APPLICATION_ID>", // optional applicationSecret = "<APPLICATION_SECRET>", // optional tenant = "<TENANT>", // optional + prompt = listOf(ProjectOAuth2MicrosoftPrompt.NONE), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-okta.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-okta.md index 532079ae8..1a8fe396e 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-okta.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2OktaPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -15,6 +16,7 @@ val response = project.updateOAuth2Okta( clientSecret = "<CLIENT_SECRET>", // optional domain = "example.com", // optional authorizationServerId = "<AUTHORIZATION_SERVER_ID>", // optional + prompt = listOf(ProjectOAuth2OktaPrompt.NONE), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-salesforce.md index a8b1244b4..38a5c58f4 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-salesforce.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2SalesforcePrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ val project = Project(client) val response = project.updateOAuth2Salesforce( customerKey = "<CUSTOMER_KEY>", // optional customerSecret = "<CUSTOMER_SECRET>", // optional + prompt = listOf(ProjectOAuth2SalesforcePrompt.LOGIN), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..e076145ff --- /dev/null +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-webflow.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Project + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val project = Project(client) + +val response = project.updateOAuth2Webflow( + clientId = "<CLIENT_ID>", // optional + clientSecret = "<CLIENT_SECRET>", // optional + enabled = false // optional +) +``` diff --git a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-zoho.md index 98f72a65f..84ec54c5a 100644 --- a/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-kotlin/kotlin/project/update-o-auth-2-zoho.md @@ -2,6 +2,7 @@ import io.appwrite.Client import io.appwrite.coroutines.CoroutineCallback import io.appwrite.services.Project +import io.appwrite.enums.ProjectOAuth2ZohoPrompt val client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ val project = Project(client) val response = project.updateOAuth2Zoho( clientId = "<CLIENT_ID>", // optional clientSecret = "<CLIENT_SECRET>", // optional + prompt = listOf(ProjectOAuth2ZohoPrompt.CONSENT), // optional enabled = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/sites/list-frameworks.md b/examples/2.3.x/server-kotlin/kotlin/sites/list-frameworks.md index 6c7aa92de..50ef800f7 100644 --- a/examples/2.3.x/server-kotlin/kotlin/sites/list-frameworks.md +++ b/examples/2.3.x/server-kotlin/kotlin/sites/list-frameworks.md @@ -10,5 +10,7 @@ val client = Client() val sites = Sites(client) -val response = sites.listFrameworks() +val response = sites.listFrameworks( + total = false // optional +) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/sites/list-specifications.md b/examples/2.3.x/server-kotlin/kotlin/sites/list-specifications.md index 12d0e9c8f..debd1aee9 100644 --- a/examples/2.3.x/server-kotlin/kotlin/sites/list-specifications.md +++ b/examples/2.3.x/server-kotlin/kotlin/sites/list-specifications.md @@ -11,6 +11,7 @@ val client = Client() val sites = Sites(client) val response = sites.listSpecifications( - type = "runtimes" // optional + type = "runtimes", // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/storage/get-file-preview.md b/examples/2.3.x/server-kotlin/kotlin/storage/get-file-preview.md index a9df2c0cf..012b4616d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/storage/get-file-preview.md +++ b/examples/2.3.x/server-kotlin/kotlin/storage/get-file-preview.md @@ -22,7 +22,7 @@ val result = storage.getFilePreview( borderWidth = 0, // optional borderColor = "FFFFFF", // optional borderRadius = 0, // optional - opacity = 0, // optional + opacity = 0.0, // optional rotation = -360, // optional background = "FFFFFF", // optional output = ImageFormat.JPG, // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-float-column.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-float-column.md index 321b83c2c..7a8c7f4fc 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-float-column.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-float-column.md @@ -15,8 +15,8 @@ val response = tablesDB.createFloatColumn( tableId = "<TABLE_ID>", key = "<KEY>", required = false, - min = 0, // optional - max = 100, // optional + min = 0.0, // optional + max = 100.0, // optional default = 10.5, // optional array = false // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-index.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-index.md index 5364f58d1..d9b79605d 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-index.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-index.md @@ -17,7 +17,7 @@ val response = tablesDB.createIndex( tableId = "<TABLE_ID>", key = "<KEY>", type = TablesDBIndexType.KEY, - columns = listOf(), + columns = listOf("username"), orders = listOf(OrderBy.ASC), // optional lengths = listOf() // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-rows.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-rows.md index 5cb02b780..857e2f1c0 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-rows.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/create-rows.md @@ -13,7 +13,14 @@ val tablesDB = TablesDB(client) val response = tablesDB.createRows( databaseId = "<DATABASE_ID>", tableId = "<TABLE_ID>", - rows = listOf(), + rows = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/decrement-row-column.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/decrement-row-column.md index bba950a9d..8591f02a4 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/decrement-row-column.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/decrement-row-column.md @@ -15,8 +15,8 @@ val response = tablesDB.decrementRowColumn( tableId = "<TABLE_ID>", rowId = "<ROW_ID>", column = "<COLUMN>", - value = 1, // optional - min = 0, // optional + value = 1.0, // optional + min = 0.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/delete-rows.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/delete-rows.md index 00cd5abe0..faee1ca15 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/delete-rows.md @@ -13,7 +13,7 @@ val tablesDB = TablesDB(client) val response = tablesDB.deleteRows( databaseId = "<DATABASE_ID>", tableId = "<TABLE_ID>", - queries = listOf(), // optional + queries = listOf("{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<ROW_ID>\"]}"), // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/increment-row-column.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/increment-row-column.md index ad4056d4d..2cab28526 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/increment-row-column.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/increment-row-column.md @@ -15,8 +15,8 @@ val response = tablesDB.incrementRowColumn( tableId = "<TABLE_ID>", rowId = "<ROW_ID>", column = "<COLUMN>", - value = 1, // optional - max = 100, // optional + value = 1.0, // optional + max = 100.0, // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/list-transactions.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/list-transactions.md index 52ebbefbb..e28a6e163 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/list-transactions.md @@ -11,6 +11,7 @@ val client = Client() val tablesDB = TablesDB(client) val response = tablesDB.listTransactions( - queries = listOf() // optional + queries = listOf(), // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/update-float-column.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/update-float-column.md index 4d156e060..56b836501 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/update-float-column.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/update-float-column.md @@ -16,8 +16,8 @@ val response = tablesDB.updateFloatColumn( key = "<KEY>", required = false, default = 10.5, - min = 0, // optional - max = 100, // optional + min = 0.0, // optional + max = 100.0, // optional newKey = "<NEW_KEY>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/tablesdb/upsert-rows.md b/examples/2.3.x/server-kotlin/kotlin/tablesdb/upsert-rows.md index 5ee9beb6c..96a6b8b99 100644 --- a/examples/2.3.x/server-kotlin/kotlin/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-kotlin/kotlin/tablesdb/upsert-rows.md @@ -13,7 +13,14 @@ val tablesDB = TablesDB(client) val response = tablesDB.upsertRows( databaseId = "<DATABASE_ID>", tableId = "<TABLE_ID>", - rows = listOf(), + rows = listOf(mapOf( + "\$id" to "example1", + "username" to "walter.obrien", + "email" to "walter.obrien@example.com", + "fullName" to "Walter O'Brien", + "age" to 30, + "isAdmin" to false + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/teams/create-membership.md b/examples/2.3.x/server-kotlin/kotlin/teams/create-membership.md index 8a27e6ea2..23a5016d7 100644 --- a/examples/2.3.x/server-kotlin/kotlin/teams/create-membership.md +++ b/examples/2.3.x/server-kotlin/kotlin/teams/create-membership.md @@ -12,7 +12,7 @@ val teams = Teams(client) val response = teams.createMembership( teamId = "<TEAM_ID>", - roles = listOf(), + roles = listOf("editor"), email = "email@example.com", // optional userId = "<USER_ID>", // optional phone = "+12065550100", // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/teams/update-membership.md b/examples/2.3.x/server-kotlin/kotlin/teams/update-membership.md index 51e01d69c..0de04daf7 100644 --- a/examples/2.3.x/server-kotlin/kotlin/teams/update-membership.md +++ b/examples/2.3.x/server-kotlin/kotlin/teams/update-membership.md @@ -13,6 +13,6 @@ val teams = Teams(client) val response = teams.updateMembership( teamId = "<TEAM_ID>", membershipId = "<MEMBERSHIP_ID>", - roles = listOf() + roles = listOf("editor") ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/users/update-labels.md b/examples/2.3.x/server-kotlin/kotlin/users/update-labels.md index 3d88c7aff..04c0109a1 100644 --- a/examples/2.3.x/server-kotlin/kotlin/users/update-labels.md +++ b/examples/2.3.x/server-kotlin/kotlin/users/update-labels.md @@ -12,6 +12,6 @@ val users = Users(client) val response = users.updateLabels( userId = "<USER_ID>", - labels = listOf() + labels = listOf("subscriber") ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-collection.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-collection.md index 0cd1e4a51..5173b280f 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-collection.md @@ -16,7 +16,7 @@ val response = vectorsDB.createCollection( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", name = "<NAME>", - dimension = 1, + dimension = 4, permissions = listOf(Permission.read(Role.any())), // optional documentSecurity = false, // optional enabled = false // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-documents.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-documents.md index 3a79fd2db..5329c97bc 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-documents.md @@ -13,7 +13,13 @@ val vectorsDB = VectorsDB(client) val response = vectorsDB.createDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "embeddings" to listOf(0.12, -0.55, 0.88, 1.02), + "metadata" to mapOf( + "name" to "First document" + ) + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-index.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-index.md index 76e691162..ff7b7d44c 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-index.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-index.md @@ -17,7 +17,7 @@ val response = vectorsDB.createIndex( collectionId = "<COLLECTION_ID>", key = "<KEY>", type = VectorsDBIndexType.HNSW_EUCLIDEAN, - attributes = listOf(), + attributes = listOf("embeddings"), orders = listOf(OrderBy.ASC), // optional lengths = listOf() // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-operations.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-operations.md index f6bc63626..b22911764 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/create-operations.md @@ -18,7 +18,10 @@ val response = vectorsDB.createOperations( "collectionId" to "<COLLECTION_ID>", "documentId" to "<DOCUMENT_ID>", "data" to mapOf( - "name" to "Walter O'Brien" + "embeddings" to listOf(0.12, -0.55, 0.88, 1.02), + "metadata" to mapOf( + "name" to "First document" + ) ) )) // optional ) diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/delete-documents.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/delete-documents.md index 53ecd505d..ca349daa5 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/delete-documents.md @@ -13,7 +13,7 @@ val vectorsDB = VectorsDB(client) val response = vectorsDB.deleteDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - queries = listOf(), // optional + queries = listOf("{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<DOCUMENT_ID>\"]}"), // optional transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/list-transactions.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/list-transactions.md index 3801d18e7..8d91507e3 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/list-transactions.md @@ -11,6 +11,7 @@ val client = Client() val vectorsDB = VectorsDB(client) val response = vectorsDB.listTransactions( - queries = listOf() // optional + queries = listOf(), // optional + total = false // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/update-collection.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/update-collection.md index 331c85c27..bdfd380e0 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/update-collection.md @@ -16,7 +16,7 @@ val response = vectorsDB.updateCollection( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", name = "<NAME>", - dimension = 1, // optional + dimension = 4, // optional permissions = listOf(Permission.read(Role.any())), // optional documentSecurity = false, // optional enabled = false // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/upsert-documents.md b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/upsert-documents.md index 717222282..3b4f4af39 100644 --- a/examples/2.3.x/server-kotlin/kotlin/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-kotlin/kotlin/vectorsdb/upsert-documents.md @@ -13,7 +13,13 @@ val vectorsDB = VectorsDB(client) val response = vectorsDB.upsertDocuments( databaseId = "<DATABASE_ID>", collectionId = "<COLLECTION_ID>", - documents = listOf(), + documents = listOf(mapOf( + "\$id" to "example1", + "embeddings" to listOf(0.12, -0.55, 0.88, 1.02), + "metadata" to mapOf( + "name" to "First document" + ) + )), transactionId = "<TRANSACTION_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-kotlin/kotlin/webhooks/create.md b/examples/2.3.x/server-kotlin/kotlin/webhooks/create.md index 5de5b5593..470adc247 100644 --- a/examples/2.3.x/server-kotlin/kotlin/webhooks/create.md +++ b/examples/2.3.x/server-kotlin/kotlin/webhooks/create.md @@ -14,7 +14,7 @@ val response = webhooks.create( webhookId = "<WEBHOOK_ID>", url = "https://example.com/webhook", name = "<NAME>", - events = listOf(), + events = listOf("users.*.create"), enabled = false, // optional tls = false, // optional authUsername = "<AUTH_USERNAME>", // optional diff --git a/examples/2.3.x/server-kotlin/kotlin/webhooks/update.md b/examples/2.3.x/server-kotlin/kotlin/webhooks/update.md index daa1706a9..c2a704008 100644 --- a/examples/2.3.x/server-kotlin/kotlin/webhooks/update.md +++ b/examples/2.3.x/server-kotlin/kotlin/webhooks/update.md @@ -14,7 +14,7 @@ val response = webhooks.update( webhookId = "<WEBHOOK_ID>", name = "<NAME>", url = "https://example.com/webhook", - events = listOf(), + events = listOf("users.*.create"), enabled = false, // optional tls = false, // optional authUsername = "<AUTH_USERNAME>", // optional diff --git a/examples/2.3.x/server-nodejs/examples/account/create-email-password-session.md b/examples/2.3.x/server-nodejs/examples/account/create-email-password-session.md index fcc1ff183..f6ce44a12 100644 --- a/examples/2.3.x/server-nodejs/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-nodejs/examples/account/create-email-password-session.md @@ -11,5 +11,6 @@ const account = new sdk.Account(client); const result = await account.createEmailPasswordSession({ email: 'email@example.com', password: 'password', + duration: 60, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/account/delete-sessions.md b/examples/2.3.x/server-nodejs/examples/account/delete-sessions.md index 912575cea..d65f323da 100644 --- a/examples/2.3.x/server-nodejs/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-nodejs/examples/account/delete-sessions.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const account = new sdk.Account(client); -const result = await account.deleteSessions(); +const result = await account.deleteSessions({ + current: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/account/list-sessions.md b/examples/2.3.x/server-nodejs/examples/account/list-sessions.md index 0bbd093e9..a2d096018 100644 --- a/examples/2.3.x/server-nodejs/examples/account/list-sessions.md +++ b/examples/2.3.x/server-nodejs/examples/account/list-sessions.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const account = new sdk.Account(client); -const result = await account.listSessions(); +const result = await account.listSessions({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/create-event.md b/examples/2.3.x/server-nodejs/examples/analytics/create-event.md new file mode 100644 index 000000000..227ae6e29 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/create-event.md @@ -0,0 +1,26 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +const analytics = new sdk.Analytics(client); + +const result = await analytics.createEvent({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + url: 'https://example.com', + domain: '<DOMAIN>', // optional + referrer: '<REFERRER>', // optional + screenWidth: null, // optional + sessionHash: '<SESSION_HASH>', // optional + scrollDepth: 0, // optional + engagementTime: null, // optional + props: [], // optional + userId: '<USER_ID>', // optional + ip: '<IP>', // optional + userAgent: '<USER_AGENT>', // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/create-property.md b/examples/2.3.x/server-nodejs/examples/analytics/create-property.md new file mode 100644 index 000000000..d3a344287 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/create-property.md @@ -0,0 +1,20 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.createProperty({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + xpublic: false, // optional + allowedOrigins: [], // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/delete-property.md b/examples/2.3.x/server-nodejs/examples/analytics/delete-property.md new file mode 100644 index 000000000..a187eb9f7 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/delete-property.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.deleteProperty({ + propertyId: '<PROPERTY_ID>', +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/get-property.md b/examples/2.3.x/server-nodejs/examples/analytics/get-property.md new file mode 100644 index 000000000..acff67224 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/get-property.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.getProperty({ + propertyId: '<PROPERTY_ID>', +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/list-metrics.md b/examples/2.3.x/server-nodejs/examples/analytics/list-metrics.md new file mode 100644 index 000000000..b303d72c8 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/list-metrics.md @@ -0,0 +1,21 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.listMetrics({ + propertyId: '<PROPERTY_ID>', + queries: [], // optional + interval: sdk.AnalyticsInterval.OneHour, // optional + dimensions: [sdk.AnalyticsDimension.Country], // optional + dateRange: '<DATE_RANGE>', // optional + startAt: '2020-10-15T06:38:00.000+00:00', // optional + endAt: '2020-10-15T06:38:00.000+00:00', // optional + limit: 1, // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/list-properties.md b/examples/2.3.x/server-nodejs/examples/analytics/list-properties.md new file mode 100644 index 000000000..ad91f6994 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/list-properties.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.listProperties({ + queries: [], // optional + search: '<SEARCH>', // optional + total: false, // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/analytics/update-property.md b/examples/2.3.x/server-nodejs/examples/analytics/update-property.md new file mode 100644 index 000000000..6fd125fc4 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/analytics/update-property.md @@ -0,0 +1,20 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const analytics = new sdk.Analytics(client); + +const result = await analytics.updateProperty({ + propertyId: '<PROPERTY_ID>', + name: '<NAME>', // optional + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + xpublic: false, // optional + allowedOrigins: [], // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/avatars/delete-photo.md b/examples/2.3.x/server-nodejs/examples/avatars/delete-photo.md new file mode 100644 index 000000000..7f36a1c33 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/avatars/delete-photo.md @@ -0,0 +1,12 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +const avatars = new sdk.Avatars(client); + +const result = await avatars.deletePhoto(); +``` diff --git a/examples/2.3.x/server-nodejs/examples/avatars/get-screenshot.md b/examples/2.3.x/server-nodejs/examples/avatars/get-screenshot.md index 708db1ca9..737bfcfc3 100644 --- a/examples/2.3.x/server-nodejs/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-nodejs/examples/avatars/get-screenshot.md @@ -11,8 +11,7 @@ const avatars = new sdk.Avatars(client); const result = await avatars.getScreenshot({ url: 'https://example.com', headers: { - Authorization: 'Bearer token123', - 'X-Custom-Header': 'value', + 'Accept-Language': 'en-US,en;q=0.9', }, // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/server-nodejs/examples/avatars/update-photo.md b/examples/2.3.x/server-nodejs/examples/avatars/update-photo.md new file mode 100644 index 000000000..5019adf7c --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/avatars/update-photo.md @@ -0,0 +1,15 @@ +```javascript +const sdk = require('node-appwrite'); +const fs = require('fs'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setSession(''); // The user session to authenticate with + +const avatars = new sdk.Avatars(client); + +const result = await avatars.updatePhoto({ + file: InputFile.fromPath('/path/to/file', 'filename'), +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/databases/create-documents.md b/examples/2.3.x/server-nodejs/examples/databases/create-documents.md index 29f12043a..71f797c92 100644 --- a/examples/2.3.x/server-nodejs/examples/databases/create-documents.md +++ b/examples/2.3.x/server-nodejs/examples/databases/create-documents.md @@ -11,7 +11,16 @@ const databases = new sdk.Databases(client); const result = await databases.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/databases/create-index.md b/examples/2.3.x/server-nodejs/examples/databases/create-index.md index 095bd46a8..ae2437852 100644 --- a/examples/2.3.x/server-nodejs/examples/databases/create-index.md +++ b/examples/2.3.x/server-nodejs/examples/databases/create-index.md @@ -13,7 +13,7 @@ const result = await databases.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: sdk.DatabasesIndexType.Key, - attributes: [], + attributes: ['username'], orders: [sdk.OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/server-nodejs/examples/databases/delete-documents.md b/examples/2.3.x/server-nodejs/examples/databases/delete-documents.md index 682c0e7bc..11e6437f2 100644 --- a/examples/2.3.x/server-nodejs/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-nodejs/examples/databases/delete-documents.md @@ -11,7 +11,9 @@ const databases = new sdk.Databases(client); const result = await databases.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/databases/list-transactions.md b/examples/2.3.x/server-nodejs/examples/databases/list-transactions.md index c33568281..2accdeaf9 100644 --- a/examples/2.3.x/server-nodejs/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-nodejs/examples/databases/list-transactions.md @@ -10,5 +10,6 @@ const databases = new sdk.Databases(client); const result = await databases.listTransactions({ queries: [], // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/databases/upsert-documents.md b/examples/2.3.x/server-nodejs/examples/databases/upsert-documents.md index aa2535473..b7054cbd4 100644 --- a/examples/2.3.x/server-nodejs/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-nodejs/examples/databases/upsert-documents.md @@ -11,7 +11,16 @@ const databases = new sdk.Databases(client); const result = await databases.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/documentsdb/create-documents.md b/examples/2.3.x/server-nodejs/examples/documentsdb/create-documents.md index 298af8c6a..d3d645979 100644 --- a/examples/2.3.x/server-nodejs/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-nodejs/examples/documentsdb/create-documents.md @@ -11,7 +11,16 @@ const documentsDB = new sdk.DocumentsDB(client); const result = await documentsDB.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/documentsdb/create-index.md b/examples/2.3.x/server-nodejs/examples/documentsdb/create-index.md index 72e4669c1..40035eadf 100644 --- a/examples/2.3.x/server-nodejs/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-nodejs/examples/documentsdb/create-index.md @@ -13,7 +13,7 @@ const result = await documentsDB.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: sdk.DocumentsDBIndexType.Key, - attributes: [], + attributes: ['username'], orders: [sdk.OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/server-nodejs/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-nodejs/examples/documentsdb/delete-documents.md index 9bb214ee7..97415eb45 100644 --- a/examples/2.3.x/server-nodejs/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-nodejs/examples/documentsdb/delete-documents.md @@ -11,7 +11,9 @@ const documentsDB = new sdk.DocumentsDB(client); const result = await documentsDB.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-nodejs/examples/documentsdb/list-transactions.md index 8bc66d4b6..8ea781a1d 100644 --- a/examples/2.3.x/server-nodejs/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-nodejs/examples/documentsdb/list-transactions.md @@ -10,5 +10,6 @@ const documentsDB = new sdk.DocumentsDB(client); const result = await documentsDB.listTransactions({ queries: [], // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-nodejs/examples/documentsdb/upsert-documents.md index 23b522008..ba03ebe66 100644 --- a/examples/2.3.x/server-nodejs/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-nodejs/examples/documentsdb/upsert-documents.md @@ -11,7 +11,16 @@ const documentsDB = new sdk.DocumentsDB(client); const result = await documentsDB.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-nodejs/examples/embeddings/create-text-embeddings.md index 537a44021..68fdb1d9e 100644 --- a/examples/2.3.x/server-nodejs/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-nodejs/examples/embeddings/create-text-embeddings.md @@ -9,7 +9,10 @@ const client = new sdk.Client() const embeddings = new sdk.Embeddings(client); const result = await embeddings.createTextEmbeddings({ - texts: [], + texts: [ + 'Appwrite helps developers build applications.', + 'Find documents with semantic search.', + ], model: sdk.EmbeddingModel.NomicEmbedText, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/functions/list-runtimes.md b/examples/2.3.x/server-nodejs/examples/functions/list-runtimes.md index fdaefd3ae..4989aef05 100644 --- a/examples/2.3.x/server-nodejs/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-nodejs/examples/functions/list-runtimes.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const functions = new sdk.Functions(client); -const result = await functions.listRuntimes(); +const result = await functions.listRuntimes({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/functions/list-specifications.md b/examples/2.3.x/server-nodejs/examples/functions/list-specifications.md index f779206d4..f2205c09a 100644 --- a/examples/2.3.x/server-nodejs/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-nodejs/examples/functions/list-specifications.md @@ -10,5 +10,6 @@ const functions = new sdk.Functions(client); const result = await functions.listSpecifications({ type: 'runtimes', // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/graphql/mutation.md b/examples/2.3.x/server-nodejs/examples/graphql/mutation.md index cb60aa527..31f0b604a 100644 --- a/examples/2.3.x/server-nodejs/examples/graphql/mutation.md +++ b/examples/2.3.x/server-nodejs/examples/graphql/mutation.md @@ -9,6 +9,8 @@ const client = new sdk.Client() const graphql = new sdk.Graphql(client); const result = await graphql.mutation({ - query: {}, + query: { + query: 'mutation { accountUpdateName(name: "Walter") { name } }', + }, }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/graphql/query.md b/examples/2.3.x/server-nodejs/examples/graphql/query.md index 86ba69626..c68610532 100644 --- a/examples/2.3.x/server-nodejs/examples/graphql/query.md +++ b/examples/2.3.x/server-nodejs/examples/graphql/query.md @@ -9,6 +9,8 @@ const client = new sdk.Client() const graphql = new sdk.Graphql(client); const result = await graphql.query({ - query: {}, + query: { + query: 'query { localeGet { ip } }', + }, }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-codes.md b/examples/2.3.x/server-nodejs/examples/locale/list-codes.md index 136992f40..0d173beb8 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-codes.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-codes.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listCodes(); +const result = await locale.listCodes({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-continents.md b/examples/2.3.x/server-nodejs/examples/locale/list-continents.md index aa58ec572..13a334544 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-continents.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-continents.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listContinents(); +const result = await locale.listContinents({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-countries-eu.md b/examples/2.3.x/server-nodejs/examples/locale/list-countries-eu.md index 538b49271..dbd873c43 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-countries-eu.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listCountriesEU(); +const result = await locale.listCountriesEU({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-countries-phones.md b/examples/2.3.x/server-nodejs/examples/locale/list-countries-phones.md index c27014185..dee00d082 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-countries-phones.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listCountriesPhones(); +const result = await locale.listCountriesPhones({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-countries.md b/examples/2.3.x/server-nodejs/examples/locale/list-countries.md index 99ee2d350..0b2bd5b85 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-countries.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-countries.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listCountries(); +const result = await locale.listCountries({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-currencies.md b/examples/2.3.x/server-nodejs/examples/locale/list-currencies.md index c381774d2..07ae165a4 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-currencies.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listCurrencies(); +const result = await locale.listCurrencies({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/locale/list-languages.md b/examples/2.3.x/server-nodejs/examples/locale/list-languages.md index cfd522c6f..9f48ffb44 100644 --- a/examples/2.3.x/server-nodejs/examples/locale/list-languages.md +++ b/examples/2.3.x/server-nodejs/examples/locale/list-languages.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const locale = new sdk.Locale(client); -const result = await locale.listLanguages(); +const result = await locale.listLanguages({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/messaging/create-push.md b/examples/2.3.x/server-nodejs/examples/messaging/create-push.md index 6e2fd1409..46436b33f 100644 --- a/examples/2.3.x/server-nodejs/examples/messaging/create-push.md +++ b/examples/2.3.x/server-nodejs/examples/messaging/create-push.md @@ -28,5 +28,6 @@ const result = await messaging.createPush({ contentAvailable: false, // optional critical: false, // optional priority: sdk.MessagePriority.Normal, // optional + channelId: '<CHANNEL_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/messaging/update-email.md b/examples/2.3.x/server-nodejs/examples/messaging/update-email.md index 426641c78..04e86f769 100644 --- a/examples/2.3.x/server-nodejs/examples/messaging/update-email.md +++ b/examples/2.3.x/server-nodejs/examples/messaging/update-email.md @@ -10,18 +10,18 @@ const messaging = new sdk.Messaging(client); const result = await messaging.updateEmail({ messageId: '<MESSAGE_ID>', + subject: '<SUBJECT>', // optional + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - subject: '<SUBJECT>', // optional - content: '<CONTENT>', // optional - draft: false, // optional - html: false, // optional cc: [], // optional bcc: [], // optional + attachments: [], // optional replyToEmail: 'email@example.com', // optional replyToName: '<REPLY_TO_NAME>', // optional + draft: false, // optional + html: false, // optional scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional - attachments: [], // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/messaging/update-push.md b/examples/2.3.x/server-nodejs/examples/messaging/update-push.md index cf8f6f1b5..d62e3468e 100644 --- a/examples/2.3.x/server-nodejs/examples/messaging/update-push.md +++ b/examples/2.3.x/server-nodejs/examples/messaging/update-push.md @@ -10,11 +10,11 @@ const messaging = new sdk.Messaging(client); const result = await messaging.updatePush({ messageId: '<MESSAGE_ID>', + title: '<TITLE>', // optional + body: '<BODY>', // optional topics: [], // optional users: [], // optional targets: [], // optional - title: '<TITLE>', // optional - body: '<BODY>', // optional data: {}, // optional action: '<ACTION>', // optional image: '<ID1:ID2>', // optional @@ -28,5 +28,6 @@ const result = await messaging.updatePush({ contentAvailable: false, // optional critical: false, // optional priority: sdk.MessagePriority.Normal, // optional + channelId: '<CHANNEL_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/messaging/update-sms.md b/examples/2.3.x/server-nodejs/examples/messaging/update-sms.md index 940474a44..7c95f4fcf 100644 --- a/examples/2.3.x/server-nodejs/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-nodejs/examples/messaging/update-sms.md @@ -10,10 +10,10 @@ const messaging = new sdk.Messaging(client); const result = await messaging.updateSMS({ messageId: '<MESSAGE_ID>', + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - content: '<CONTENT>', // optional draft: false, // optional scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional }); diff --git a/examples/2.3.x/server-nodejs/examples/oauth2/introspect.md b/examples/2.3.x/server-nodejs/examples/oauth2/introspect.md new file mode 100644 index 000000000..5845699bc --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/oauth2/introspect.md @@ -0,0 +1,17 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const oauth2 = new sdk.Oauth2(client); + +const result = await oauth2.introspect({ + token: '<TOKEN>', + tokenTypeHint: 'access_token', // optional + clientId: '<CLIENT_ID>', // optional + clientSecret: '<CLIENT_SECRET>', // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-nodejs/examples/organization/create-ephemeral-project-key.md index a2801e67a..cf080c776 100644 --- a/examples/2.3.x/server-nodejs/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-nodejs/examples/organization/create-ephemeral-project-key.md @@ -10,7 +10,7 @@ const organization = new sdk.Organization(client); const result = await organization.createEphemeralProjectKey({ projectId: '<PROJECT_ID>', - scopes: [sdk.ProjectKeyScopes.ProjectRead], + scopes: [sdk.ProjectKeyScopes.UsersRead], duration: 600, }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/organization/update-project-key.md b/examples/2.3.x/server-nodejs/examples/organization/update-project-key.md index 17d19c4f9..07440b6e5 100644 --- a/examples/2.3.x/server-nodejs/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-nodejs/examples/organization/update-project-key.md @@ -12,7 +12,7 @@ const result = await organization.updateProjectKey({ projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', - scopes: [sdk.ProjectKeyScopes.ProjectRead], + scopes: [sdk.ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-nodejs/examples/project/create-ephemeral-key.md index 352c6316a..9b40232e4 100644 --- a/examples/2.3.x/server-nodejs/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-nodejs/examples/project/create-ephemeral-key.md @@ -9,7 +9,7 @@ const client = new sdk.Client() const project = new sdk.Project(client); const result = await project.createEphemeralKey({ - scopes: [sdk.ProjectKeyScopes.ProjectRead], + scopes: [sdk.ProjectKeyScopes.UsersRead], duration: 600, }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/create-smtp-test.md b/examples/2.3.x/server-nodejs/examples/project/create-smtp-test.md index 0246650b0..162f1381b 100644 --- a/examples/2.3.x/server-nodejs/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-nodejs/examples/project/create-smtp-test.md @@ -9,6 +9,6 @@ const client = new sdk.Client() const project = new sdk.Project(client); const result = await project.createSMTPTest({ - emails: [], + emails: ['recipient@example.com'], }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-key.md b/examples/2.3.x/server-nodejs/examples/project/update-key.md index 0505a54f9..81c77a730 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-key.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-key.md @@ -11,7 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateKey({ keyId: '<KEY_ID>', name: '<NAME>', - scopes: [sdk.ProjectKeyScopes.ProjectRead], + scopes: [sdk.ProjectKeyScopes.UsersRead], expire: '2020-10-15T06:38:00.000+00:00', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-labels.md b/examples/2.3.x/server-nodejs/examples/project/update-labels.md index 1d58ef1c8..e594576de 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-labels.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-labels.md @@ -9,6 +9,6 @@ const client = new sdk.Client() const project = new sdk.Project(client); const result = await project.updateLabels({ - labels: [], + labels: ['production'], }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-auth-0.md index d23fb2c5a..61fb73c04 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-auth-0.md @@ -12,6 +12,7 @@ const result = await project.updateOAuth2Auth0({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional endpoint: '<ENDPOINT>', // optional + prompt: [sdk.ProjectOAuth2Auth0Prompt.None], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-discord.md index 151b93c1a..d76ac95af 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-discord.md @@ -11,6 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateOAuth2Discord({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [sdk.ProjectOAuth2DiscordPrompt.None], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-git-hub.md index 0a7a757d1..cb497dbe6 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-git-hub.md @@ -11,6 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateOAuth2GitHub({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [sdk.ProjectOAuth2GitHubPrompt.SelectAccount], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-kakao.md index 1a26ea6a7..cb310ae37 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-kakao.md @@ -11,6 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateOAuth2Kakao({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [sdk.ProjectOAuth2KakaoPrompt.None], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-microsoft.md index 29e186977..7a7edb203 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-microsoft.md @@ -12,6 +12,7 @@ const result = await project.updateOAuth2Microsoft({ applicationId: '<APPLICATION_ID>', // optional applicationSecret: '<APPLICATION_SECRET>', // optional tenant: '<TENANT>', // optional + prompt: [sdk.ProjectOAuth2MicrosoftPrompt.None], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-okta.md index 519f02654..4b6deba14 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-okta.md @@ -13,6 +13,7 @@ const result = await project.updateOAuth2Okta({ clientSecret: '<CLIENT_SECRET>', // optional domain: 'example.com', // optional authorizationServerId: '<AUTHORIZATION_SERVER_ID>', // optional + prompt: [sdk.ProjectOAuth2OktaPrompt.None], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-salesforce.md index 642249f1d..12698d043 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-salesforce.md @@ -11,6 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateOAuth2Salesforce({ customerKey: '<CUSTOMER_KEY>', // optional customerSecret: '<CUSTOMER_SECRET>', // optional + prompt: [sdk.ProjectOAuth2SalesforcePrompt.Login], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..daf2e3072 --- /dev/null +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const project = new sdk.Project(client); + +const result = await project.updateOAuth2Webflow({ + clientId: '<CLIENT_ID>', // optional + clientSecret: '<CLIENT_SECRET>', // optional + enabled: false, // optional +}); +``` diff --git a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-zoho.md index 8b623cd8e..baa7bc819 100644 --- a/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-nodejs/examples/project/update-o-auth-2-zoho.md @@ -11,6 +11,7 @@ const project = new sdk.Project(client); const result = await project.updateOAuth2Zoho({ clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [sdk.ProjectOAuth2ZohoPrompt.Consent], // optional enabled: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/sites/list-frameworks.md b/examples/2.3.x/server-nodejs/examples/sites/list-frameworks.md index 9a417bfd0..774d280f8 100644 --- a/examples/2.3.x/server-nodejs/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-nodejs/examples/sites/list-frameworks.md @@ -8,5 +8,7 @@ const client = new sdk.Client() const sites = new sdk.Sites(client); -const result = await sites.listFrameworks(); +const result = await sites.listFrameworks({ + total: false, // optional +}); ``` diff --git a/examples/2.3.x/server-nodejs/examples/sites/list-specifications.md b/examples/2.3.x/server-nodejs/examples/sites/list-specifications.md index 85a1a84fb..87575708b 100644 --- a/examples/2.3.x/server-nodejs/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-nodejs/examples/sites/list-specifications.md @@ -10,5 +10,6 @@ const sites = new sdk.Sites(client); const result = await sites.listSpecifications({ type: 'runtimes', // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/tablesdb/create-index.md b/examples/2.3.x/server-nodejs/examples/tablesdb/create-index.md index 2bd4818e2..5a9094380 100644 --- a/examples/2.3.x/server-nodejs/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-nodejs/examples/tablesdb/create-index.md @@ -13,7 +13,7 @@ const result = await tablesDB.createIndex({ tableId: '<TABLE_ID>', key: '<KEY>', type: sdk.TablesDBIndexType.Key, - columns: [], + columns: ['username'], orders: [sdk.OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/server-nodejs/examples/tablesdb/create-rows.md b/examples/2.3.x/server-nodejs/examples/tablesdb/create-rows.md index af17e879d..c7448b8da 100644 --- a/examples/2.3.x/server-nodejs/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-nodejs/examples/tablesdb/create-rows.md @@ -11,7 +11,16 @@ const tablesDB = new sdk.TablesDB(client); const result = await tablesDB.createRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-nodejs/examples/tablesdb/delete-rows.md index ccc97155d..a79b78821 100644 --- a/examples/2.3.x/server-nodejs/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-nodejs/examples/tablesdb/delete-rows.md @@ -11,7 +11,7 @@ const tablesDB = new sdk.TablesDB(client); const result = await tablesDB.deleteRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - queries: [], // optional + queries: ['{"method":"equal", "attribute":"$id", "values":["<ROW_ID>"]}'], // optional transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-nodejs/examples/tablesdb/list-transactions.md index 51a3fc45e..9a3778bdd 100644 --- a/examples/2.3.x/server-nodejs/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-nodejs/examples/tablesdb/list-transactions.md @@ -10,5 +10,6 @@ const tablesDB = new sdk.TablesDB(client); const result = await tablesDB.listTransactions({ queries: [], // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-nodejs/examples/tablesdb/upsert-rows.md index fea4cbcbb..f04859fd8 100644 --- a/examples/2.3.x/server-nodejs/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-nodejs/examples/tablesdb/upsert-rows.md @@ -11,7 +11,16 @@ const tablesDB = new sdk.TablesDB(client); const result = await tablesDB.upsertRows({ databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + $id: 'example1', + username: 'walter.obrien', + email: 'walter.obrien@example.com', + fullName: "Walter O'Brien", + age: 30, + isAdmin: false, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/teams/create-membership.md b/examples/2.3.x/server-nodejs/examples/teams/create-membership.md index 3aa45e3b1..47773fb5c 100644 --- a/examples/2.3.x/server-nodejs/examples/teams/create-membership.md +++ b/examples/2.3.x/server-nodejs/examples/teams/create-membership.md @@ -10,7 +10,7 @@ const teams = new sdk.Teams(client); const result = await teams.createMembership({ teamId: '<TEAM_ID>', - roles: [], + roles: ['editor'], email: 'email@example.com', // optional userId: '<USER_ID>', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/server-nodejs/examples/teams/update-membership.md b/examples/2.3.x/server-nodejs/examples/teams/update-membership.md index 7b6fe57f7..07a3e2b3b 100644 --- a/examples/2.3.x/server-nodejs/examples/teams/update-membership.md +++ b/examples/2.3.x/server-nodejs/examples/teams/update-membership.md @@ -11,6 +11,6 @@ const teams = new sdk.Teams(client); const result = await teams.updateMembership({ teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', - roles: [], + roles: ['editor'], }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/users/update-labels.md b/examples/2.3.x/server-nodejs/examples/users/update-labels.md index e74ec102d..4dbc44d9c 100644 --- a/examples/2.3.x/server-nodejs/examples/users/update-labels.md +++ b/examples/2.3.x/server-nodejs/examples/users/update-labels.md @@ -10,6 +10,6 @@ const users = new sdk.Users(client); const result = await users.updateLabels({ userId: '<USER_ID>', - labels: [], + labels: ['subscriber'], }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-collection.md index d7ccf5359..fa1be7a7a 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-collection.md @@ -12,7 +12,7 @@ const result = await vectorsDB.createCollection({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, + dimension: 4, permissions: [sdk.Permission.read(sdk.Role.any())], // optional documentSecurity: false, // optional enabled: false, // optional diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-documents.md index bcaedd48c..3e764a3ee 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-documents.md @@ -11,7 +11,15 @@ const vectorsDB = new sdk.VectorsDB(client); const result = await vectorsDB.createDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-index.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-index.md index 4b092220a..583faeecf 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-index.md @@ -13,7 +13,7 @@ const result = await vectorsDB.createIndex({ collectionId: '<COLLECTION_ID>', key: '<KEY>', type: sdk.VectorsDBIndexType.HnswEuclidean, - attributes: [], + attributes: ['embeddings'], orders: [sdk.OrderBy.Asc], // optional lengths: [], // optional }); diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-operations.md index 3804aeed9..56f2ef2ee 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/create-operations.md @@ -17,7 +17,10 @@ const result = await vectorsDB.createOperations({ collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', data: { - name: "Walter O'Brien", + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, }, }, ], // optional diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/delete-documents.md index a3905b374..2aae8cd56 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/delete-documents.md @@ -11,7 +11,9 @@ const vectorsDB = new sdk.VectorsDB(client); const result = await vectorsDB.deleteDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: [ + '{"method":"equal", "attribute":"$id", "values":["<DOCUMENT_ID>"]}', + ], // optional transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/list-transactions.md index 3dfb27329..330f8eec2 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/list-transactions.md @@ -10,5 +10,6 @@ const vectorsDB = new sdk.VectorsDB(client); const result = await vectorsDB.listTransactions({ queries: [], // optional + total: false, // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/update-collection.md index 4f5465429..f1ca760b0 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/update-collection.md @@ -12,7 +12,7 @@ const result = await vectorsDB.updateCollection({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, // optional + dimension: 4, // optional permissions: [sdk.Permission.read(sdk.Role.any())], // optional documentSecurity: false, // optional enabled: false, // optional diff --git a/examples/2.3.x/server-nodejs/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-nodejs/examples/vectorsdb/upsert-documents.md index 38079b970..eafbe97ea 100644 --- a/examples/2.3.x/server-nodejs/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-nodejs/examples/vectorsdb/upsert-documents.md @@ -11,7 +11,15 @@ const vectorsDB = new sdk.VectorsDB(client); const result = await vectorsDB.upsertDocuments({ databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + $id: 'example1', + embeddings: [0.12, -0.55, 0.88, 1.02], + metadata: { + name: 'First document', + }, + }, + ], transactionId: '<TRANSACTION_ID>', // optional }); ``` diff --git a/examples/2.3.x/server-nodejs/examples/webhooks/create.md b/examples/2.3.x/server-nodejs/examples/webhooks/create.md index 21ecaccc2..c56e892d2 100644 --- a/examples/2.3.x/server-nodejs/examples/webhooks/create.md +++ b/examples/2.3.x/server-nodejs/examples/webhooks/create.md @@ -12,7 +12,7 @@ const result = await webhooks.create({ webhookId: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', - events: [], + events: ['users.*.create'], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/server-nodejs/examples/webhooks/update.md b/examples/2.3.x/server-nodejs/examples/webhooks/update.md index 25362bf14..283cf7880 100644 --- a/examples/2.3.x/server-nodejs/examples/webhooks/update.md +++ b/examples/2.3.x/server-nodejs/examples/webhooks/update.md @@ -12,7 +12,7 @@ const result = await webhooks.update({ webhookId: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', - events: [], + events: ['users.*.create'], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/server-php/examples/account/create-email-password-session.md b/examples/2.3.x/server-php/examples/account/create-email-password-session.md index b462ef807..44770741b 100644 --- a/examples/2.3.x/server-php/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-php/examples/account/create-email-password-session.md @@ -13,6 +13,7 @@ $account = new Account($client); $result = $account->createEmailPasswordSession( email: 'email@example.com', - password: 'password' + password: 'password', + duration: 60 // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/account/delete-sessions.md b/examples/2.3.x/server-php/examples/account/delete-sessions.md index 7886fabf7..e5ce7f239 100644 --- a/examples/2.3.x/server-php/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-php/examples/account/delete-sessions.md @@ -11,5 +11,7 @@ $client = (new Client()) $account = new Account($client); -$result = $account->deleteSessions(); +$result = $account->deleteSessions( + current: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/account/list-sessions.md b/examples/2.3.x/server-php/examples/account/list-sessions.md index 9c42f8ca8..a737fc742 100644 --- a/examples/2.3.x/server-php/examples/account/list-sessions.md +++ b/examples/2.3.x/server-php/examples/account/list-sessions.md @@ -11,5 +11,7 @@ $client = (new Client()) $account = new Account($client); -$result = $account->listSessions(); +$result = $account->listSessions( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/analytics/create-event.md b/examples/2.3.x/server-php/examples/analytics/create-event.md new file mode 100644 index 000000000..f22fea406 --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/create-event.md @@ -0,0 +1,29 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setSession(''); // The user session to authenticate with + +$analytics = new Analytics($client); + +$result = $analytics->createEvent( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + url: 'https://example.com', + domain: '<DOMAIN>', // optional + referrer: '<REFERRER>', // optional + screenWidth: null, // optional + sessionHash: '<SESSION_HASH>', // optional + scrollDepth: 0, // optional + engagementTime: null, // optional + props: [], // optional + userId: '<USER_ID>', // optional + ip: '<IP>', // optional + userAgent: '<USER_AGENT>' // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/create-property.md b/examples/2.3.x/server-php/examples/analytics/create-property.md new file mode 100644 index 000000000..a27db5e17 --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/create-property.md @@ -0,0 +1,23 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->createProperty( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: [] // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/delete-property.md b/examples/2.3.x/server-php/examples/analytics/delete-property.md new file mode 100644 index 000000000..3a507c747 --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/delete-property.md @@ -0,0 +1,17 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->deleteProperty( + propertyId: '<PROPERTY_ID>' +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/get-property.md b/examples/2.3.x/server-php/examples/analytics/get-property.md new file mode 100644 index 000000000..cc18a430b --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/get-property.md @@ -0,0 +1,17 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->getProperty( + propertyId: '<PROPERTY_ID>' +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/list-metrics.md b/examples/2.3.x/server-php/examples/analytics/list-metrics.md new file mode 100644 index 000000000..6f2d6a6f1 --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/list-metrics.md @@ -0,0 +1,26 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; +use Appwrite\Enums\AnalyticsInterval; +use Appwrite\Enums\AnalyticsDimension; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->listMetrics( + propertyId: '<PROPERTY_ID>', + queries: [], // optional + interval: AnalyticsInterval::ONEHOUR(), // optional + dimensions: [AnalyticsDimension::COUNTRY()], // optional + dateRange: '<DATE_RANGE>', // optional + startAt: '2020-10-15T06:38:00.000+00:00', // optional + endAt: '2020-10-15T06:38:00.000+00:00', // optional + limit: 1 // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/list-properties.md b/examples/2.3.x/server-php/examples/analytics/list-properties.md new file mode 100644 index 000000000..a733bbfcd --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/list-properties.md @@ -0,0 +1,19 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->listProperties( + queries: [], // optional + search: '<SEARCH>', // optional + total: false // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/analytics/update-property.md b/examples/2.3.x/server-php/examples/analytics/update-property.md new file mode 100644 index 000000000..0c2f7b4a1 --- /dev/null +++ b/examples/2.3.x/server-php/examples/analytics/update-property.md @@ -0,0 +1,23 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Analytics; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$analytics = new Analytics($client); + +$result = $analytics->updateProperty( + propertyId: '<PROPERTY_ID>', + name: '<NAME>', // optional + domain: '<DOMAIN>', // optional + timezone: '<TIMEZONE>', // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: [] // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/avatars/delete-photo.md b/examples/2.3.x/server-php/examples/avatars/delete-photo.md new file mode 100644 index 000000000..f6e300b13 --- /dev/null +++ b/examples/2.3.x/server-php/examples/avatars/delete-photo.md @@ -0,0 +1,15 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Avatars; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setSession(''); // The user session to authenticate with + +$avatars = new Avatars($client); + +$result = $avatars->deletePhoto(); +``` diff --git a/examples/2.3.x/server-php/examples/avatars/get-screenshot.md b/examples/2.3.x/server-php/examples/avatars/get-screenshot.md index 59fbd663d..a5eb5e995 100644 --- a/examples/2.3.x/server-php/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-php/examples/avatars/get-screenshot.md @@ -18,8 +18,7 @@ $avatars = new Avatars($client); $result = $avatars->getScreenshot( url: 'https://example.com', headers: [ - 'Authorization' => 'Bearer token123', - 'X-Custom-Header' => 'value' + 'Accept-Language' => 'en-US,en;q=0.9' ], // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/server-php/examples/avatars/update-photo.md b/examples/2.3.x/server-php/examples/avatars/update-photo.md new file mode 100644 index 000000000..c031ea7f0 --- /dev/null +++ b/examples/2.3.x/server-php/examples/avatars/update-photo.md @@ -0,0 +1,18 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\InputFile; +use Appwrite\Services\Avatars; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setSession(''); // The user session to authenticate with + +$avatars = new Avatars($client); + +$result = $avatars->updatePhoto( + file: InputFile::withPath('file.png') +); +``` diff --git a/examples/2.3.x/server-php/examples/databases/create-documents.md b/examples/2.3.x/server-php/examples/databases/create-documents.md index 1f64387b5..de0fae2b0 100644 --- a/examples/2.3.x/server-php/examples/databases/create-documents.md +++ b/examples/2.3.x/server-php/examples/databases/create-documents.md @@ -14,7 +14,16 @@ $databases = new Databases($client); $result = $databases->createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/databases/create-index.md b/examples/2.3.x/server-php/examples/databases/create-index.md index 1005239ed..cd5e8c0c6 100644 --- a/examples/2.3.x/server-php/examples/databases/create-index.md +++ b/examples/2.3.x/server-php/examples/databases/create-index.md @@ -18,7 +18,7 @@ $result = $databases->createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: DatabasesIndexType::KEY(), - attributes: [], + attributes: ["username"], orders: [OrderBy::ASC()], // optional lengths: [] // optional ); diff --git a/examples/2.3.x/server-php/examples/databases/delete-documents.md b/examples/2.3.x/server-php/examples/databases/delete-documents.md index f39cbfe0a..5d5860398 100644 --- a/examples/2.3.x/server-php/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-php/examples/databases/delete-documents.md @@ -14,7 +14,7 @@ $databases = new Databases($client); $result = $databases->deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/databases/list-transactions.md b/examples/2.3.x/server-php/examples/databases/list-transactions.md index 97cb6abd9..1c2ec60a1 100644 --- a/examples/2.3.x/server-php/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-php/examples/databases/list-transactions.md @@ -12,6 +12,7 @@ $client = (new Client()) $databases = new Databases($client); $result = $databases->listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/databases/upsert-documents.md b/examples/2.3.x/server-php/examples/databases/upsert-documents.md index 0049fdc69..60877dc3c 100644 --- a/examples/2.3.x/server-php/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-php/examples/databases/upsert-documents.md @@ -14,7 +14,16 @@ $databases = new Databases($client); $result = $databases->upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/documentsdb/create-documents.md b/examples/2.3.x/server-php/examples/documentsdb/create-documents.md index ec6a43552..ce85177cc 100644 --- a/examples/2.3.x/server-php/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-php/examples/documentsdb/create-documents.md @@ -14,7 +14,16 @@ $documentsDB = new DocumentsDB($client); $result = $documentsDB->createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/documentsdb/create-index.md b/examples/2.3.x/server-php/examples/documentsdb/create-index.md index b64d1f8af..68506db41 100644 --- a/examples/2.3.x/server-php/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-php/examples/documentsdb/create-index.md @@ -18,7 +18,7 @@ $result = $documentsDB->createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: DocumentsDBIndexType::KEY(), - attributes: [], + attributes: ["username"], orders: [OrderBy::ASC()], // optional lengths: [] // optional ); diff --git a/examples/2.3.x/server-php/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-php/examples/documentsdb/delete-documents.md index b77b3756f..f005fea38 100644 --- a/examples/2.3.x/server-php/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-php/examples/documentsdb/delete-documents.md @@ -14,7 +14,7 @@ $documentsDB = new DocumentsDB($client); $result = $documentsDB->deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-php/examples/documentsdb/list-transactions.md index f154df8e1..988d867ae 100644 --- a/examples/2.3.x/server-php/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-php/examples/documentsdb/list-transactions.md @@ -12,6 +12,7 @@ $client = (new Client()) $documentsDB = new DocumentsDB($client); $result = $documentsDB->listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-php/examples/documentsdb/upsert-documents.md index 09021e0af..95ed28a77 100644 --- a/examples/2.3.x/server-php/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-php/examples/documentsdb/upsert-documents.md @@ -14,7 +14,16 @@ $documentsDB = new DocumentsDB($client); $result = $documentsDB->upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-php/examples/embeddings/create-text-embeddings.md index 70f0f7e1d..476f97410 100644 --- a/examples/2.3.x/server-php/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-php/examples/embeddings/create-text-embeddings.md @@ -13,7 +13,7 @@ $client = (new Client()) $embeddings = new Embeddings($client); $result = $embeddings->createTextEmbeddings( - texts: [], + texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: EmbeddingModel::NOMICEMBEDTEXT() // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/functions/list-runtimes.md b/examples/2.3.x/server-php/examples/functions/list-runtimes.md index 320a9dc6c..e2e5cbf4f 100644 --- a/examples/2.3.x/server-php/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-php/examples/functions/list-runtimes.md @@ -11,5 +11,7 @@ $client = (new Client()) $functions = new Functions($client); -$result = $functions->listRuntimes(); +$result = $functions->listRuntimes( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/functions/list-specifications.md b/examples/2.3.x/server-php/examples/functions/list-specifications.md index da2bec2e6..47406b02e 100644 --- a/examples/2.3.x/server-php/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-php/examples/functions/list-specifications.md @@ -12,6 +12,7 @@ $client = (new Client()) $functions = new Functions($client); $result = $functions->listSpecifications( - type: 'runtimes' // optional + type: 'runtimes', // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/graphql/mutation.md b/examples/2.3.x/server-php/examples/graphql/mutation.md index c2f1b9890..267926818 100644 --- a/examples/2.3.x/server-php/examples/graphql/mutation.md +++ b/examples/2.3.x/server-php/examples/graphql/mutation.md @@ -12,6 +12,8 @@ $client = (new Client()) $graphql = new Graphql($client); $result = $graphql->mutation( - query: [] + query: [ + 'query' => 'mutation { accountUpdateName(name: "Walter") { name } }' + ] ); ``` diff --git a/examples/2.3.x/server-php/examples/graphql/query.md b/examples/2.3.x/server-php/examples/graphql/query.md index 9731e9988..f5e562c14 100644 --- a/examples/2.3.x/server-php/examples/graphql/query.md +++ b/examples/2.3.x/server-php/examples/graphql/query.md @@ -12,6 +12,8 @@ $client = (new Client()) $graphql = new Graphql($client); $result = $graphql->query( - query: [] + query: [ + 'query' => 'query { localeGet { ip } }' + ] ); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-codes.md b/examples/2.3.x/server-php/examples/locale/list-codes.md index 5c99bbf2d..af3d0aa61 100644 --- a/examples/2.3.x/server-php/examples/locale/list-codes.md +++ b/examples/2.3.x/server-php/examples/locale/list-codes.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listCodes(); +$result = $locale->listCodes( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-continents.md b/examples/2.3.x/server-php/examples/locale/list-continents.md index 1245b2ecf..0c865bfb8 100644 --- a/examples/2.3.x/server-php/examples/locale/list-continents.md +++ b/examples/2.3.x/server-php/examples/locale/list-continents.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listContinents(); +$result = $locale->listContinents( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-countries-eu.md b/examples/2.3.x/server-php/examples/locale/list-countries-eu.md index 9744c8ea6..afdce554a 100644 --- a/examples/2.3.x/server-php/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-php/examples/locale/list-countries-eu.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listCountriesEU(); +$result = $locale->listCountriesEU( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-countries-phones.md b/examples/2.3.x/server-php/examples/locale/list-countries-phones.md index df66061f6..d330d1ece 100644 --- a/examples/2.3.x/server-php/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-php/examples/locale/list-countries-phones.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listCountriesPhones(); +$result = $locale->listCountriesPhones( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-countries.md b/examples/2.3.x/server-php/examples/locale/list-countries.md index f4f962622..df1a58a77 100644 --- a/examples/2.3.x/server-php/examples/locale/list-countries.md +++ b/examples/2.3.x/server-php/examples/locale/list-countries.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listCountries(); +$result = $locale->listCountries( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-currencies.md b/examples/2.3.x/server-php/examples/locale/list-currencies.md index f4f1125a9..641472565 100644 --- a/examples/2.3.x/server-php/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-php/examples/locale/list-currencies.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listCurrencies(); +$result = $locale->listCurrencies( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/locale/list-languages.md b/examples/2.3.x/server-php/examples/locale/list-languages.md index b25fab642..2d5e0f861 100644 --- a/examples/2.3.x/server-php/examples/locale/list-languages.md +++ b/examples/2.3.x/server-php/examples/locale/list-languages.md @@ -11,5 +11,7 @@ $client = (new Client()) $locale = new Locale($client); -$result = $locale->listLanguages(); +$result = $locale->listLanguages( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/messaging/create-push.md b/examples/2.3.x/server-php/examples/messaging/create-push.md index 75734171e..701dc47d3 100644 --- a/examples/2.3.x/server-php/examples/messaging/create-push.md +++ b/examples/2.3.x/server-php/examples/messaging/create-push.md @@ -31,6 +31,7 @@ $result = $messaging->createPush( scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional contentAvailable: false, // optional critical: false, // optional - priority: MessagePriority::NORMAL() // optional + priority: MessagePriority::NORMAL(), // optional + channelId: '<CHANNEL_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/messaging/update-email.md b/examples/2.3.x/server-php/examples/messaging/update-email.md index b5a2488b1..7194fc364 100644 --- a/examples/2.3.x/server-php/examples/messaging/update-email.md +++ b/examples/2.3.x/server-php/examples/messaging/update-email.md @@ -13,18 +13,18 @@ $messaging = new Messaging($client); $result = $messaging->updateEmail( messageId: '<MESSAGE_ID>', + subject: '<SUBJECT>', // optional + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - subject: '<SUBJECT>', // optional - content: '<CONTENT>', // optional - draft: false, // optional - html: false, // optional cc: [], // optional bcc: [], // optional + attachments: [], // optional replyToEmail: 'email@example.com', // optional replyToName: '<REPLY_TO_NAME>', // optional - scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional - attachments: [] // optional + draft: false, // optional + html: false, // optional + scheduledAt: '2020-10-15T06:38:00.000+00:00' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/messaging/update-push.md b/examples/2.3.x/server-php/examples/messaging/update-push.md index a1b14b71b..f8cc97eea 100644 --- a/examples/2.3.x/server-php/examples/messaging/update-push.md +++ b/examples/2.3.x/server-php/examples/messaging/update-push.md @@ -14,11 +14,11 @@ $messaging = new Messaging($client); $result = $messaging->updatePush( messageId: '<MESSAGE_ID>', + title: '<TITLE>', // optional + body: '<BODY>', // optional topics: [], // optional users: [], // optional targets: [], // optional - title: '<TITLE>', // optional - body: '<BODY>', // optional data: [], // optional action: '<ACTION>', // optional image: '<ID1:ID2>', // optional @@ -31,6 +31,7 @@ $result = $messaging->updatePush( scheduledAt: '2020-10-15T06:38:00.000+00:00', // optional contentAvailable: false, // optional critical: false, // optional - priority: MessagePriority::NORMAL() // optional + priority: MessagePriority::NORMAL(), // optional + channelId: '<CHANNEL_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/messaging/update-sms.md b/examples/2.3.x/server-php/examples/messaging/update-sms.md index 3cfd25800..c6257dba0 100644 --- a/examples/2.3.x/server-php/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-php/examples/messaging/update-sms.md @@ -13,10 +13,10 @@ $messaging = new Messaging($client); $result = $messaging->updateSMS( messageId: '<MESSAGE_ID>', + content: '<CONTENT>', // optional topics: [], // optional users: [], // optional targets: [], // optional - content: '<CONTENT>', // optional draft: false, // optional scheduledAt: '2020-10-15T06:38:00.000+00:00' // optional ); diff --git a/examples/2.3.x/server-php/examples/oauth2/introspect.md b/examples/2.3.x/server-php/examples/oauth2/introspect.md new file mode 100644 index 000000000..cdde0e1e1 --- /dev/null +++ b/examples/2.3.x/server-php/examples/oauth2/introspect.md @@ -0,0 +1,20 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Oauth2; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$oauth2 = new Oauth2($client); + +$result = $oauth2->introspect( + token: '<TOKEN>', + tokenTypeHint: 'access_token', // optional + clientId: '<CLIENT_ID>', // optional + clientSecret: '<CLIENT_SECRET>' // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-php/examples/organization/create-ephemeral-project-key.md index 1272ccd19..445227fdf 100644 --- a/examples/2.3.x/server-php/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-php/examples/organization/create-ephemeral-project-key.md @@ -14,7 +14,7 @@ $organization = new Organization($client); $result = $organization->createEphemeralProjectKey( projectId: '<PROJECT_ID>', - scopes: [ProjectKeyScopes::PROJECTREAD()], + scopes: [ProjectKeyScopes::USERSREAD()], duration: 600 ); ``` diff --git a/examples/2.3.x/server-php/examples/organization/update-project-key.md b/examples/2.3.x/server-php/examples/organization/update-project-key.md index 0781b1fb1..b40f14e17 100644 --- a/examples/2.3.x/server-php/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-php/examples/organization/update-project-key.md @@ -16,7 +16,7 @@ $result = $organization->updateProjectKey( projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes::PROJECTREAD()], + scopes: [ProjectKeyScopes::USERSREAD()], expire: '2020-10-15T06:38:00.000+00:00' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-php/examples/project/create-ephemeral-key.md index 224dc841a..763800e6a 100644 --- a/examples/2.3.x/server-php/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-php/examples/project/create-ephemeral-key.md @@ -13,7 +13,7 @@ $client = (new Client()) $project = new Project($client); $result = $project->createEphemeralKey( - scopes: [ProjectKeyScopes::PROJECTREAD()], + scopes: [ProjectKeyScopes::USERSREAD()], duration: 600 ); ``` diff --git a/examples/2.3.x/server-php/examples/project/create-smtp-test.md b/examples/2.3.x/server-php/examples/project/create-smtp-test.md index a16026a82..e00457505 100644 --- a/examples/2.3.x/server-php/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-php/examples/project/create-smtp-test.md @@ -12,6 +12,6 @@ $client = (new Client()) $project = new Project($client); $result = $project->createSMTPTest( - emails: [] + emails: ["recipient@example.com"] ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-key.md b/examples/2.3.x/server-php/examples/project/update-key.md index db8839455..ae2996b71 100644 --- a/examples/2.3.x/server-php/examples/project/update-key.md +++ b/examples/2.3.x/server-php/examples/project/update-key.md @@ -15,7 +15,7 @@ $project = new Project($client); $result = $project->updateKey( keyId: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes::PROJECTREAD()], + scopes: [ProjectKeyScopes::USERSREAD()], expire: '2020-10-15T06:38:00.000+00:00' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-labels.md b/examples/2.3.x/server-php/examples/project/update-labels.md index aace3165f..1aba54308 100644 --- a/examples/2.3.x/server-php/examples/project/update-labels.md +++ b/examples/2.3.x/server-php/examples/project/update-labels.md @@ -12,6 +12,6 @@ $client = (new Client()) $project = new Project($client); $result = $project->updateLabels( - labels: [] + labels: ["production"] ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-auth-0.md index b80b4b154..ea6c0143e 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-auth-0.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2Auth0Prompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +16,7 @@ $result = $project->updateOAuth2Auth0( clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional endpoint: '<ENDPOINT>', // optional + prompt: [ProjectOAuth2Auth0Prompt::NONE()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-discord.md index 9a0b16162..d512f8eba 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-discord.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2DiscordPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +15,7 @@ $project = new Project($client); $result = $project->updateOAuth2Discord( clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2DiscordPrompt::NONE()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-git-hub.md index 92dc57265..16527ec89 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-git-hub.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2GitHubPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +15,7 @@ $project = new Project($client); $result = $project->updateOAuth2GitHub( clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2GitHubPrompt::SELECTACCOUNT()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-kakao.md index 6262f8694..78fe1cbdf 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-kakao.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2KakaoPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +15,7 @@ $project = new Project($client); $result = $project->updateOAuth2Kakao( clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2KakaoPrompt::NONE()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-microsoft.md index 349bf9329..e62b5ef95 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-microsoft.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2MicrosoftPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -15,6 +16,7 @@ $result = $project->updateOAuth2Microsoft( applicationId: '<APPLICATION_ID>', // optional applicationSecret: '<APPLICATION_SECRET>', // optional tenant: '<TENANT>', // optional + prompt: [ProjectOAuth2MicrosoftPrompt::NONE()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-okta.md index e03c9b833..ae8f1fe6f 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-okta.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2OktaPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -16,6 +17,7 @@ $result = $project->updateOAuth2Okta( clientSecret: '<CLIENT_SECRET>', // optional domain: 'example.com', // optional authorizationServerId: '<AUTHORIZATION_SERVER_ID>', // optional + prompt: [ProjectOAuth2OktaPrompt::NONE()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-salesforce.md index 1247627ca..713f08f95 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-salesforce.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2SalesforcePrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +15,7 @@ $project = new Project($client); $result = $project->updateOAuth2Salesforce( customerKey: '<CUSTOMER_KEY>', // optional customerSecret: '<CUSTOMER_SECRET>', // optional + prompt: [ProjectOAuth2SalesforcePrompt::LOGIN()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..50c90d7ec --- /dev/null +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,19 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Project; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$project = new Project($client); + +$result = $project->updateOAuth2Webflow( + clientId: '<CLIENT_ID>', // optional + clientSecret: '<CLIENT_SECRET>', // optional + enabled: false // optional +); +``` diff --git a/examples/2.3.x/server-php/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-php/examples/project/update-o-auth-2-zoho.md index 624b7f4fc..3c01fc1f2 100644 --- a/examples/2.3.x/server-php/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-php/examples/project/update-o-auth-2-zoho.md @@ -3,6 +3,7 @@ use Appwrite\Client; use Appwrite\Services\Project; +use Appwrite\Enums\ProjectOAuth2ZohoPrompt; $client = (new Client()) ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -14,6 +15,7 @@ $project = new Project($client); $result = $project->updateOAuth2Zoho( clientId: '<CLIENT_ID>', // optional clientSecret: '<CLIENT_SECRET>', // optional + prompt: [ProjectOAuth2ZohoPrompt::CONSENT()], // optional enabled: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/sites/list-frameworks.md b/examples/2.3.x/server-php/examples/sites/list-frameworks.md index 74ea88215..511338ad0 100644 --- a/examples/2.3.x/server-php/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-php/examples/sites/list-frameworks.md @@ -11,5 +11,7 @@ $client = (new Client()) $sites = new Sites($client); -$result = $sites->listFrameworks(); +$result = $sites->listFrameworks( + total: false // optional +); ``` diff --git a/examples/2.3.x/server-php/examples/sites/list-specifications.md b/examples/2.3.x/server-php/examples/sites/list-specifications.md index 3a6826adc..10e98a4cb 100644 --- a/examples/2.3.x/server-php/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-php/examples/sites/list-specifications.md @@ -12,6 +12,7 @@ $client = (new Client()) $sites = new Sites($client); $result = $sites->listSpecifications( - type: 'runtimes' // optional + type: 'runtimes', // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/tablesdb/create-index.md b/examples/2.3.x/server-php/examples/tablesdb/create-index.md index 2b840eb30..89e4650c5 100644 --- a/examples/2.3.x/server-php/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-php/examples/tablesdb/create-index.md @@ -18,7 +18,7 @@ $result = $tablesDB->createIndex( tableId: '<TABLE_ID>', key: '<KEY>', type: TablesDBIndexType::KEY(), - columns: [], + columns: ["username"], orders: [OrderBy::ASC()], // optional lengths: [] // optional ); diff --git a/examples/2.3.x/server-php/examples/tablesdb/create-rows.md b/examples/2.3.x/server-php/examples/tablesdb/create-rows.md index 6ae0f802c..240ddc086 100644 --- a/examples/2.3.x/server-php/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-php/examples/tablesdb/create-rows.md @@ -14,7 +14,16 @@ $tablesDB = new TablesDB($client); $result = $tablesDB->createRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-php/examples/tablesdb/delete-rows.md index 2b13b6c7b..192f52765 100644 --- a/examples/2.3.x/server-php/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-php/examples/tablesdb/delete-rows.md @@ -14,7 +14,7 @@ $tablesDB = new TablesDB($client); $result = $tablesDB->deleteRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - queries: [], // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], // optional transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-php/examples/tablesdb/list-transactions.md index 90b698c57..2cad3139d 100644 --- a/examples/2.3.x/server-php/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-php/examples/tablesdb/list-transactions.md @@ -12,6 +12,7 @@ $client = (new Client()) $tablesDB = new TablesDB($client); $result = $tablesDB->listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-php/examples/tablesdb/upsert-rows.md index 56aa2657f..6150f35e9 100644 --- a/examples/2.3.x/server-php/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-php/examples/tablesdb/upsert-rows.md @@ -14,7 +14,16 @@ $tablesDB = new TablesDB($client); $result = $tablesDB->upsertRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/teams/create-membership.md b/examples/2.3.x/server-php/examples/teams/create-membership.md index 4c09dc7ec..08670ae76 100644 --- a/examples/2.3.x/server-php/examples/teams/create-membership.md +++ b/examples/2.3.x/server-php/examples/teams/create-membership.md @@ -13,7 +13,7 @@ $teams = new Teams($client); $result = $teams->createMembership( teamId: '<TEAM_ID>', - roles: [], + roles: ["editor"], email: 'email@example.com', // optional userId: '<USER_ID>', // optional phone: '+12065550100', // optional diff --git a/examples/2.3.x/server-php/examples/teams/update-membership.md b/examples/2.3.x/server-php/examples/teams/update-membership.md index 87741774b..3cdab5a05 100644 --- a/examples/2.3.x/server-php/examples/teams/update-membership.md +++ b/examples/2.3.x/server-php/examples/teams/update-membership.md @@ -14,6 +14,6 @@ $teams = new Teams($client); $result = $teams->updateMembership( teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', - roles: [] + roles: ["editor"] ); ``` diff --git a/examples/2.3.x/server-php/examples/users/update-labels.md b/examples/2.3.x/server-php/examples/users/update-labels.md index 7ac457f58..b8e573c11 100644 --- a/examples/2.3.x/server-php/examples/users/update-labels.md +++ b/examples/2.3.x/server-php/examples/users/update-labels.md @@ -13,6 +13,6 @@ $users = new Users($client); $result = $users->updateLabels( userId: '<USER_ID>', - labels: [] + labels: ["subscriber"] ); ``` diff --git a/examples/2.3.x/server-php/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-php/examples/vectorsdb/create-collection.md index c3ed66282..3bbdb0763 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/create-collection.md @@ -17,7 +17,7 @@ $result = $vectorsDB->createCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, + dimension: 4, permissions: [Permission::read(Role::any())], // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-php/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-php/examples/vectorsdb/create-documents.md index 2d1c9c2f8..054d3b35f 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/create-documents.md @@ -14,7 +14,20 @@ $vectorsDB = new VectorsDB($client); $result = $vectorsDB->createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/vectorsdb/create-index.md b/examples/2.3.x/server-php/examples/vectorsdb/create-index.md index d3e699cbd..369f018b3 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/create-index.md @@ -18,7 +18,7 @@ $result = $vectorsDB->createIndex( collectionId: '<COLLECTION_ID>', key: '<KEY>', type: VectorsDBIndexType::HNSWEUCLIDEAN(), - attributes: [], + attributes: ["embeddings"], orders: [OrderBy::ASC()], // optional lengths: [] // optional ); diff --git a/examples/2.3.x/server-php/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-php/examples/vectorsdb/create-operations.md index c311d5e41..fa3d9769d 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/create-operations.md @@ -20,7 +20,15 @@ $result = $vectorsDB->createOperations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] // optional diff --git a/examples/2.3.x/server-php/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-php/examples/vectorsdb/delete-documents.md index 17b0831d0..fbca7fd43 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/delete-documents.md @@ -14,7 +14,7 @@ $vectorsDB = new VectorsDB($client); $result = $vectorsDB->deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: [], // optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // optional transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-php/examples/vectorsdb/list-transactions.md index 022bd60e1..6688e404b 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/list-transactions.md @@ -12,6 +12,7 @@ $client = (new Client()) $vectorsDB = new VectorsDB($client); $result = $vectorsDB->listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-php/examples/vectorsdb/update-collection.md index 7898ee038..d9815b610 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/update-collection.md @@ -17,7 +17,7 @@ $result = $vectorsDB->updateCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, // optional + dimension: 4, // optional permissions: [Permission::read(Role::any())], // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-php/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-php/examples/vectorsdb/upsert-documents.md index 11e5d31fd..516b68789 100644 --- a/examples/2.3.x/server-php/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-php/examples/vectorsdb/upsert-documents.md @@ -14,7 +14,20 @@ $vectorsDB = new VectorsDB($client); $result = $vectorsDB->upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transactionId: '<TRANSACTION_ID>' // optional ); ``` diff --git a/examples/2.3.x/server-php/examples/webhooks/create.md b/examples/2.3.x/server-php/examples/webhooks/create.md index 2b437a54b..536657d06 100644 --- a/examples/2.3.x/server-php/examples/webhooks/create.md +++ b/examples/2.3.x/server-php/examples/webhooks/create.md @@ -15,7 +15,7 @@ $result = $webhooks->create( webhookId: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', - events: [], + events: ["users.*.create"], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/server-php/examples/webhooks/update.md b/examples/2.3.x/server-php/examples/webhooks/update.md index 95dafcf0f..7ea370e93 100644 --- a/examples/2.3.x/server-php/examples/webhooks/update.md +++ b/examples/2.3.x/server-php/examples/webhooks/update.md @@ -15,7 +15,7 @@ $result = $webhooks->update( webhookId: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', - events: [], + events: ["users.*.create"], enabled: false, // optional tls: false, // optional authUsername: '<AUTH_USERNAME>', // optional diff --git a/examples/2.3.x/server-python/examples/account/create-email-password-session.md b/examples/2.3.x/server-python/examples/account/create-email-password-session.md index 292074dba..7e016dab2 100644 --- a/examples/2.3.x/server-python/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-python/examples/account/create-email-password-session.md @@ -12,7 +12,8 @@ account = Account(client) result: Session = account.create_email_password_session( email = 'email@example.com', - password = 'password' + password = 'password', + duration = 60 # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/account/delete-sessions.md b/examples/2.3.x/server-python/examples/account/delete-sessions.md index 4db5c1ec6..ae380854b 100644 --- a/examples/2.3.x/server-python/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-python/examples/account/delete-sessions.md @@ -9,5 +9,7 @@ client.set_session('') # The user session to authenticate with account = Account(client) -result = account.delete_sessions() +result = account.delete_sessions( + current = False # optional +) ``` diff --git a/examples/2.3.x/server-python/examples/account/list-sessions.md b/examples/2.3.x/server-python/examples/account/list-sessions.md index d9df7a714..828aad6fd 100644 --- a/examples/2.3.x/server-python/examples/account/list-sessions.md +++ b/examples/2.3.x/server-python/examples/account/list-sessions.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with account = Account(client) -result: SessionList = account.list_sessions() +result: SessionList = account.list_sessions( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/analytics/create-event.md b/examples/2.3.x/server-python/examples/analytics/create-event.md new file mode 100644 index 000000000..b57a48b1d --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/create-event.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_session('') # The user session to authenticate with + +analytics = Analytics(client) + +result = analytics.create_event( + property_id = '<PROPERTY_ID>', + name = '<NAME>', + url = 'https://example.com', + domain = '<DOMAIN>', # optional + referrer = '<REFERRER>', # optional + screen_width = None, # optional + session_hash = '<SESSION_HASH>', # optional + scroll_depth = 0, # optional + engagement_time = None, # optional + props = [], # optional + user_id = '<USER_ID>', # optional + ip = '<IP>', # optional + user_agent = '<USER_AGENT>' # optional +) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/create-property.md b/examples/2.3.x/server-python/examples/analytics/create-property.md new file mode 100644 index 000000000..403301ca8 --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/create-property.md @@ -0,0 +1,24 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics +from appwrite.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.create_property( + property_id = '<PROPERTY_ID>', + name = '<NAME>', + domain = '<DOMAIN>', # optional + timezone = '<TIMEZONE>', # optional + enabled = False, # optional + public = False, # optional + allowed_origins = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/delete-property.md b/examples/2.3.x/server-python/examples/analytics/delete-property.md new file mode 100644 index 000000000..caaf97b15 --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/delete-property.md @@ -0,0 +1,15 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result = analytics.delete_property( + property_id = '<PROPERTY_ID>' +) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/get-property.md b/examples/2.3.x/server-python/examples/analytics/get-property.md new file mode 100644 index 000000000..d8ffc6b6d --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/get-property.md @@ -0,0 +1,18 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics +from appwrite.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.get_property( + property_id = '<PROPERTY_ID>' +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/list-metrics.md b/examples/2.3.x/server-python/examples/analytics/list-metrics.md new file mode 100644 index 000000000..1c3da39e7 --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/list-metrics.md @@ -0,0 +1,27 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics +from appwrite.models import AnalyticsMetricList +from appwrite.enums import AnalyticsInterval +from appwrite.enums import AnalyticsDimension + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result: AnalyticsMetricList = analytics.list_metrics( + property_id = '<PROPERTY_ID>', + queries = [], # optional + interval = AnalyticsInterval.ONE_HOUR, # optional + dimensions = [AnalyticsDimension.COUNTRY], # optional + date_range = '<DATE_RANGE>', # optional + start_at = '2020-10-15T06:38:00.000+00:00', # optional + end_at = '2020-10-15T06:38:00.000+00:00', # optional + limit = 1 # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/list-properties.md b/examples/2.3.x/server-python/examples/analytics/list-properties.md new file mode 100644 index 000000000..c1fe9c15d --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/list-properties.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics +from appwrite.models import AnalyticsPropertyList + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result: AnalyticsPropertyList = analytics.list_properties( + queries = [], # optional + search = '<SEARCH>', # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/analytics/update-property.md b/examples/2.3.x/server-python/examples/analytics/update-property.md new file mode 100644 index 000000000..67b5b8a53 --- /dev/null +++ b/examples/2.3.x/server-python/examples/analytics/update-property.md @@ -0,0 +1,24 @@ +```python +from appwrite.client import Client +from appwrite.services.analytics import Analytics +from appwrite.models import AnalyticsProperty + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics(client) + +result: AnalyticsProperty = analytics.update_property( + property_id = '<PROPERTY_ID>', + name = '<NAME>', # optional + domain = '<DOMAIN>', # optional + timezone = '<TIMEZONE>', # optional + enabled = False, # optional + public = False, # optional + allowed_origins = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/avatars/delete-photo.md b/examples/2.3.x/server-python/examples/avatars/delete-photo.md new file mode 100644 index 000000000..0851c0c5f --- /dev/null +++ b/examples/2.3.x/server-python/examples/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```python +from appwrite.client import Client +from appwrite.services.avatars import Avatars + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_session('') # The user session to authenticate with + +avatars = Avatars(client) + +result = avatars.delete_photo() +``` diff --git a/examples/2.3.x/server-python/examples/avatars/get-screenshot.md b/examples/2.3.x/server-python/examples/avatars/get-screenshot.md index cf7f9a6b4..b837106a9 100644 --- a/examples/2.3.x/server-python/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-python/examples/avatars/get-screenshot.md @@ -16,8 +16,7 @@ avatars = Avatars(client) result: bytes = avatars.get_screenshot( url = 'https://example.com', headers = { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" }, # optional viewport_width = 1920, # optional viewport_height = 1080, # optional diff --git a/examples/2.3.x/server-python/examples/avatars/update-photo.md b/examples/2.3.x/server-python/examples/avatars/update-photo.md new file mode 100644 index 000000000..cdd605a09 --- /dev/null +++ b/examples/2.3.x/server-python/examples/avatars/update-photo.md @@ -0,0 +1,19 @@ +```python +from appwrite.client import Client +from appwrite.services.avatars import Avatars +from appwrite.input_file import InputFile +from appwrite.models import Account + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_session('') # The user session to authenticate with + +avatars = Avatars(client) + +result: Account = avatars.update_photo( + file = InputFile.from_path('file.png') +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/databases/create-documents.md b/examples/2.3.x/server-python/examples/databases/create-documents.md index a1df96a90..13e7b94f1 100644 --- a/examples/2.3.x/server-python/examples/databases/create-documents.md +++ b/examples/2.3.x/server-python/examples/databases/create-documents.md @@ -13,7 +13,16 @@ databases = Databases(client) result: DocumentList = databases.create_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/databases/create-index.md b/examples/2.3.x/server-python/examples/databases/create-index.md index 71c694f1f..1669f248e 100644 --- a/examples/2.3.x/server-python/examples/databases/create-index.md +++ b/examples/2.3.x/server-python/examples/databases/create-index.md @@ -17,7 +17,7 @@ result: Index = databases.create_index( collection_id = '<COLLECTION_ID>', key = '<KEY>', type = DatabasesIndexType.KEY, - attributes = [], + attributes = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/server-python/examples/databases/delete-documents.md b/examples/2.3.x/server-python/examples/databases/delete-documents.md index d410bdefe..21a2a2148 100644 --- a/examples/2.3.x/server-python/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-python/examples/databases/delete-documents.md @@ -13,7 +13,7 @@ databases = Databases(client) result: DocumentList = databases.delete_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/databases/get-attribute.md b/examples/2.3.x/server-python/examples/databases/get-attribute.md index 880a58727..fdcc23da5 100644 --- a/examples/2.3.x/server-python/examples/databases/get-attribute.md +++ b/examples/2.3.x/server-python/examples/databases/get-attribute.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.databases import Databases from appwrite.models import AttributeBoolean +from appwrite.models import AttributeBigint from appwrite.models import AttributeInteger from appwrite.models import AttributeFloat from appwrite.models import AttributeEmail @@ -10,6 +11,13 @@ from appwrite.models import AttributeUrl from appwrite.models import AttributeIp from appwrite.models import AttributeDatetime from appwrite.models import AttributeRelationship +from appwrite.models import AttributePoint +from appwrite.models import AttributeLine +from appwrite.models import AttributePolygon +from appwrite.models import AttributeVarchar +from appwrite.models import AttributeText +from appwrite.models import AttributeMediumtext +from appwrite.models import AttributeLongtext from appwrite.models import AttributeString from typing import Union @@ -20,7 +28,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key databases = Databases(client) -result: Union[AttributeBoolean, AttributeInteger, AttributeFloat, AttributeEmail, AttributeEnum, AttributeUrl, AttributeIp, AttributeDatetime, AttributeRelationship, AttributeString] = databases.get_attribute( +result: Union[AttributeBoolean, AttributeBigint, AttributeInteger, AttributeFloat, AttributeEmail, AttributeEnum, AttributeUrl, AttributeIp, AttributeDatetime, AttributeRelationship, AttributePoint, AttributeLine, AttributePolygon, AttributeVarchar, AttributeText, AttributeMediumtext, AttributeLongtext, AttributeString] = databases.get_attribute( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', key = '<KEY>' diff --git a/examples/2.3.x/server-python/examples/databases/list-transactions.md b/examples/2.3.x/server-python/examples/databases/list-transactions.md index bd0993144..d382cb93c 100644 --- a/examples/2.3.x/server-python/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-python/examples/databases/list-transactions.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key databases = Databases(client) result: TransactionList = databases.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/databases/upsert-documents.md b/examples/2.3.x/server-python/examples/databases/upsert-documents.md index 5039ccb0a..ae28f031a 100644 --- a/examples/2.3.x/server-python/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-python/examples/databases/upsert-documents.md @@ -13,7 +13,16 @@ databases = Databases(client) result: DocumentList = databases.upsert_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/documentsdb/create-documents.md b/examples/2.3.x/server-python/examples/documentsdb/create-documents.md index 2b15e560a..7f470a36a 100644 --- a/examples/2.3.x/server-python/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-python/examples/documentsdb/create-documents.md @@ -13,7 +13,16 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.create_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/documentsdb/create-index.md b/examples/2.3.x/server-python/examples/documentsdb/create-index.md index 34a36dc83..c25950ded 100644 --- a/examples/2.3.x/server-python/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-python/examples/documentsdb/create-index.md @@ -17,7 +17,7 @@ result: Index = documents_db.create_index( collection_id = '<COLLECTION_ID>', key = '<KEY>', type = DocumentsDBIndexType.KEY, - attributes = [], + attributes = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/server-python/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-python/examples/documentsdb/delete-documents.md index 8bc343de9..4b127c797 100644 --- a/examples/2.3.x/server-python/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-python/examples/documentsdb/delete-documents.md @@ -13,7 +13,7 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.delete_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-python/examples/documentsdb/list-transactions.md index 6dc7aae2f..7128d9b5c 100644 --- a/examples/2.3.x/server-python/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-python/examples/documentsdb/list-transactions.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key documents_db = DocumentsDB(client) result: TransactionList = documents_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-python/examples/documentsdb/upsert-documents.md index d98b227c2..f1613df1f 100644 --- a/examples/2.3.x/server-python/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-python/examples/documentsdb/upsert-documents.md @@ -13,7 +13,16 @@ documents_db = DocumentsDB(client) result: DocumentList = documents_db.upsert_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-python/examples/embeddings/create-text-embeddings.md index 49d3c258d..b91c34337 100644 --- a/examples/2.3.x/server-python/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-python/examples/embeddings/create-text-embeddings.md @@ -12,7 +12,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key embeddings = Embeddings(client) result: EmbeddingList = embeddings.create_text_embeddings( - texts = [], + texts = ["Appwrite helps developers build applications.", "Find documents with semantic search."], model = EmbeddingModel.NOMIC_EMBED_TEXT # optional ) diff --git a/examples/2.3.x/server-python/examples/functions/list-runtimes.md b/examples/2.3.x/server-python/examples/functions/list-runtimes.md index ee75c80e6..a33db3ad4 100644 --- a/examples/2.3.x/server-python/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-python/examples/functions/list-runtimes.md @@ -10,7 +10,9 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key functions = Functions(client) -result: RuntimeList = functions.list_runtimes() +result: RuntimeList = functions.list_runtimes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/functions/list-specifications.md b/examples/2.3.x/server-python/examples/functions/list-specifications.md index 7cf529a93..ff71a1be0 100644 --- a/examples/2.3.x/server-python/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-python/examples/functions/list-specifications.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key functions = Functions(client) result: SpecificationList = functions.list_specifications( - type = 'runtimes' # optional + type = 'runtimes', # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/graphql/mutation.md b/examples/2.3.x/server-python/examples/graphql/mutation.md index 26ed1cbed..a7609b1f4 100644 --- a/examples/2.3.x/server-python/examples/graphql/mutation.md +++ b/examples/2.3.x/server-python/examples/graphql/mutation.md @@ -10,6 +10,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key graphql = Graphql(client) result = graphql.mutation( - query = {} + query = { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } ) ``` diff --git a/examples/2.3.x/server-python/examples/graphql/query.md b/examples/2.3.x/server-python/examples/graphql/query.md index 94142f993..350c47ba3 100644 --- a/examples/2.3.x/server-python/examples/graphql/query.md +++ b/examples/2.3.x/server-python/examples/graphql/query.md @@ -10,6 +10,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key graphql = Graphql(client) result = graphql.query( - query = {} + query = { + "query": "query { localeGet { ip } }" + } ) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-codes.md b/examples/2.3.x/server-python/examples/locale/list-codes.md index adc293961..660794111 100644 --- a/examples/2.3.x/server-python/examples/locale/list-codes.md +++ b/examples/2.3.x/server-python/examples/locale/list-codes.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: LocaleCodeList = locale.list_codes() +result: LocaleCodeList = locale.list_codes( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-continents.md b/examples/2.3.x/server-python/examples/locale/list-continents.md index fcf05e6ef..cc7c3fd7e 100644 --- a/examples/2.3.x/server-python/examples/locale/list-continents.md +++ b/examples/2.3.x/server-python/examples/locale/list-continents.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: ContinentList = locale.list_continents() +result: ContinentList = locale.list_continents( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-countries-eu.md b/examples/2.3.x/server-python/examples/locale/list-countries-eu.md index 374cc9a37..d7bebd5a3 100644 --- a/examples/2.3.x/server-python/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-python/examples/locale/list-countries-eu.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: CountryList = locale.list_countries_eu() +result: CountryList = locale.list_countries_eu( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-countries-phones.md b/examples/2.3.x/server-python/examples/locale/list-countries-phones.md index 8b36a1f91..cf23539ba 100644 --- a/examples/2.3.x/server-python/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-python/examples/locale/list-countries-phones.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: PhoneList = locale.list_countries_phones() +result: PhoneList = locale.list_countries_phones( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-countries.md b/examples/2.3.x/server-python/examples/locale/list-countries.md index 5c45a7668..73cb699fe 100644 --- a/examples/2.3.x/server-python/examples/locale/list-countries.md +++ b/examples/2.3.x/server-python/examples/locale/list-countries.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: CountryList = locale.list_countries() +result: CountryList = locale.list_countries( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-currencies.md b/examples/2.3.x/server-python/examples/locale/list-currencies.md index 07f061c96..6d4d26288 100644 --- a/examples/2.3.x/server-python/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-python/examples/locale/list-currencies.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: CurrencyList = locale.list_currencies() +result: CurrencyList = locale.list_currencies( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/locale/list-languages.md b/examples/2.3.x/server-python/examples/locale/list-languages.md index 3fb0c82cf..ea1f75f25 100644 --- a/examples/2.3.x/server-python/examples/locale/list-languages.md +++ b/examples/2.3.x/server-python/examples/locale/list-languages.md @@ -10,7 +10,9 @@ client.set_session('') # The user session to authenticate with locale = Locale(client) -result: LanguageList = locale.list_languages() +result: LanguageList = locale.list_languages( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/messaging/create-push.md b/examples/2.3.x/server-python/examples/messaging/create-push.md index 155128a02..0b169447c 100644 --- a/examples/2.3.x/server-python/examples/messaging/create-push.md +++ b/examples/2.3.x/server-python/examples/messaging/create-push.md @@ -30,7 +30,8 @@ result: Message = messaging.create_push( scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional content_available = False, # optional critical = False, # optional - priority = MessagePriority.NORMAL # optional + priority = MessagePriority.NORMAL, # optional + channel_id = '<CHANNEL_ID>' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/messaging/update-email.md b/examples/2.3.x/server-python/examples/messaging/update-email.md index fc0f9ccba..b8659ff0b 100644 --- a/examples/2.3.x/server-python/examples/messaging/update-email.md +++ b/examples/2.3.x/server-python/examples/messaging/update-email.md @@ -12,19 +12,19 @@ messaging = Messaging(client) result: Message = messaging.update_email( message_id = '<MESSAGE_ID>', + subject = '<SUBJECT>', # optional + content = '<CONTENT>', # optional topics = [], # optional users = [], # optional targets = [], # optional - subject = '<SUBJECT>', # optional - content = '<CONTENT>', # optional - draft = False, # optional - html = False, # optional cc = [], # optional bcc = [], # optional + attachments = [], # optional reply_to_email = 'email@example.com', # optional reply_to_name = '<REPLY_TO_NAME>', # optional - scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional - attachments = [] # optional + draft = False, # optional + html = False, # optional + scheduled_at = '2020-10-15T06:38:00.000+00:00' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/messaging/update-push.md b/examples/2.3.x/server-python/examples/messaging/update-push.md index 0c592d6c1..ed0649e00 100644 --- a/examples/2.3.x/server-python/examples/messaging/update-push.md +++ b/examples/2.3.x/server-python/examples/messaging/update-push.md @@ -13,11 +13,11 @@ messaging = Messaging(client) result: Message = messaging.update_push( message_id = '<MESSAGE_ID>', + title = '<TITLE>', # optional + body = '<BODY>', # optional topics = [], # optional users = [], # optional targets = [], # optional - title = '<TITLE>', # optional - body = '<BODY>', # optional data = {}, # optional action = '<ACTION>', # optional image = '<ID1:ID2>', # optional @@ -30,7 +30,8 @@ result: Message = messaging.update_push( scheduled_at = '2020-10-15T06:38:00.000+00:00', # optional content_available = False, # optional critical = False, # optional - priority = MessagePriority.NORMAL # optional + priority = MessagePriority.NORMAL, # optional + channel_id = '<CHANNEL_ID>' # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/messaging/update-sms.md b/examples/2.3.x/server-python/examples/messaging/update-sms.md index 32698978b..f499e6aef 100644 --- a/examples/2.3.x/server-python/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-python/examples/messaging/update-sms.md @@ -12,10 +12,10 @@ messaging = Messaging(client) result: Message = messaging.update_sms( message_id = '<MESSAGE_ID>', + content = '<CONTENT>', # optional topics = [], # optional users = [], # optional targets = [], # optional - content = '<CONTENT>', # optional draft = False, # optional scheduled_at = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/server-python/examples/oauth2/introspect.md b/examples/2.3.x/server-python/examples/oauth2/introspect.md new file mode 100644 index 000000000..bde9da87e --- /dev/null +++ b/examples/2.3.x/server-python/examples/oauth2/introspect.md @@ -0,0 +1,21 @@ +```python +from appwrite.client import Client +from appwrite.services.oauth2 import Oauth2 +from appwrite.models import Oauth2Introspection + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +oauth2 = Oauth2(client) + +result: Oauth2Introspection = oauth2.introspect( + token = '<TOKEN>', + token_type_hint = 'access_token', # optional + client_id = '<CLIENT_ID>', # optional + client_secret = '<CLIENT_SECRET>' # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-python/examples/organization/create-ephemeral-project-key.md index b807f2247..25bc89513 100644 --- a/examples/2.3.x/server-python/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-python/examples/organization/create-ephemeral-project-key.md @@ -13,7 +13,7 @@ organization = Organization(client) result: EphemeralKey = organization.create_ephemeral_project_key( project_id = '<PROJECT_ID>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], duration = 600 ) diff --git a/examples/2.3.x/server-python/examples/organization/update-project-key.md b/examples/2.3.x/server-python/examples/organization/update-project-key.md index 8f1269237..d3609e81f 100644 --- a/examples/2.3.x/server-python/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-python/examples/organization/update-project-key.md @@ -15,7 +15,7 @@ result: Key = organization.update_project_key( project_id = '<PROJECT_ID>', key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/server-python/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-python/examples/project/create-ephemeral-key.md index 17a48da69..f60193c9e 100644 --- a/examples/2.3.x/server-python/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-python/examples/project/create-ephemeral-key.md @@ -12,7 +12,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key project = Project(client) result: EphemeralKey = project.create_ephemeral_key( - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], duration = 600 ) diff --git a/examples/2.3.x/server-python/examples/project/create-smtp-test.md b/examples/2.3.x/server-python/examples/project/create-smtp-test.md index 3b39979bb..e46cb13e3 100644 --- a/examples/2.3.x/server-python/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-python/examples/project/create-smtp-test.md @@ -10,6 +10,6 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key project = Project(client) result = project.create_smtp_test( - emails = [] + emails = ["recipient@example.com"] ) ``` diff --git a/examples/2.3.x/server-python/examples/project/get-o-auth-2-provider.md b/examples/2.3.x/server-python/examples/project/get-o-auth-2-provider.md index 1bdc7e3c2..792ef7653 100644 --- a/examples/2.3.x/server-python/examples/project/get-o-auth-2-provider.md +++ b/examples/2.3.x/server-python/examples/project/get-o-auth-2-provider.md @@ -16,6 +16,7 @@ from appwrite.models import OAuth2Zoho from appwrite.models import OAuth2Yandex from appwrite.models import OAuth2X from appwrite.models import OAuth2WordPress +from appwrite.models import OAuth2Webflow from appwrite.models import OAuth2Twitch from appwrite.models import OAuth2Stripe from appwrite.models import OAuth2Spotify @@ -56,7 +57,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key project = Project(client) -result: Union[OAuth2Github, OAuth2Discord, OAuth2Figma, OAuth2Dropbox, OAuth2Dailymotion, OAuth2Bitbucket, OAuth2Bitly, OAuth2Box, OAuth2Autodesk, OAuth2Google, OAuth2Zoom, OAuth2Zoho, OAuth2Yandex, OAuth2X, OAuth2WordPress, OAuth2Twitch, OAuth2Stripe, OAuth2Spotify, OAuth2Slack, OAuth2Podio, OAuth2Notion, OAuth2Salesforce, OAuth2Yahoo, OAuth2HuggingFace, OAuth2Resend, OAuth2Cloudflare, OAuth2Linkedin, OAuth2Disqus, OAuth2Amazon, OAuth2Etsy, OAuth2Facebook, OAuth2Tradeshift, OAuth2Paypal, OAuth2Gitlab, OAuth2Authentik, OAuth2Auth0, OAuth2FusionAuth, OAuth2Keycloak, OAuth2Oidc, OAuth2Apple, OAuth2Okta, OAuth2Kick, OAuth2Microsoft, OAuth2TikTok, OAuth2Kakao] = project.get_o_auth2_provider( +result: Union[OAuth2Github, OAuth2Discord, OAuth2Figma, OAuth2Dropbox, OAuth2Dailymotion, OAuth2Bitbucket, OAuth2Bitly, OAuth2Box, OAuth2Autodesk, OAuth2Google, OAuth2Zoom, OAuth2Zoho, OAuth2Yandex, OAuth2X, OAuth2WordPress, OAuth2Webflow, OAuth2Twitch, OAuth2Stripe, OAuth2Spotify, OAuth2Slack, OAuth2Podio, OAuth2Notion, OAuth2Salesforce, OAuth2Yahoo, OAuth2HuggingFace, OAuth2Resend, OAuth2Cloudflare, OAuth2Linkedin, OAuth2Disqus, OAuth2Amazon, OAuth2Etsy, OAuth2Facebook, OAuth2Tradeshift, OAuth2Paypal, OAuth2Gitlab, OAuth2Authentik, OAuth2Auth0, OAuth2FusionAuth, OAuth2Keycloak, OAuth2Oidc, OAuth2Apple, OAuth2Okta, OAuth2Kick, OAuth2Microsoft, OAuth2TikTok, OAuth2Kakao] = project.get_o_auth2_provider( provider_id = ProjectOAuthProviderId.AMAZON ) diff --git a/examples/2.3.x/server-python/examples/project/update-key.md b/examples/2.3.x/server-python/examples/project/update-key.md index e1ecc201a..ed45fb412 100644 --- a/examples/2.3.x/server-python/examples/project/update-key.md +++ b/examples/2.3.x/server-python/examples/project/update-key.md @@ -14,7 +14,7 @@ project = Project(client) result: Key = project.update_key( key_id = '<KEY_ID>', name = '<NAME>', - scopes = [ProjectKeyScopes.PROJECT_READ], + scopes = [ProjectKeyScopes.USERS_READ], expire = '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-labels.md b/examples/2.3.x/server-python/examples/project/update-labels.md index 4fedceb18..ed324cadc 100644 --- a/examples/2.3.x/server-python/examples/project/update-labels.md +++ b/examples/2.3.x/server-python/examples/project/update-labels.md @@ -11,7 +11,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key project = Project(client) result: ProjectModel = project.update_labels( - labels = [] + labels = ["production"] ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-auth-0.md index 568bb9bb4..56a4ee1e4 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-auth-0.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Auth0 +from appwrite.enums import ProjectOAuth2Auth0Prompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result: OAuth2Auth0 = project.update_o_auth2_auth0( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional endpoint = '<ENDPOINT>', # optional + prompt = [ProjectOAuth2Auth0Prompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-discord.md index a95cc4961..ec0ea2cb5 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-discord.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Discord +from appwrite.enums import ProjectOAuth2DiscordPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project(client) result: OAuth2Discord = project.update_o_auth2_discord( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2DiscordPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-git-hub.md index 36664b851..cad2e2bba 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-git-hub.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Github +from appwrite.enums import ProjectOAuth2GitHubPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project(client) result: OAuth2Github = project.update_o_auth2_git_hub( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2GitHubPrompt.SELECT_ACCOUNT], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-kakao.md index ce8e36a90..f6a7a2121 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-kakao.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Kakao +from appwrite.enums import ProjectOAuth2KakaoPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project(client) result: OAuth2Kakao = project.update_o_auth2_kakao( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2KakaoPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-microsoft.md index aeeefa9ec..809a70c4f 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-microsoft.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Microsoft +from appwrite.enums import ProjectOAuth2MicrosoftPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result: OAuth2Microsoft = project.update_o_auth2_microsoft( application_id = '<APPLICATION_ID>', # optional application_secret = '<APPLICATION_SECRET>', # optional tenant = '<TENANT>', # optional + prompt = [ProjectOAuth2MicrosoftPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-okta.md index 0b4fc5329..462d6f200 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-okta.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Okta +from appwrite.enums import ProjectOAuth2OktaPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -15,6 +16,7 @@ result: OAuth2Okta = project.update_o_auth2_okta( client_secret = '<CLIENT_SECRET>', # optional domain = 'example.com', # optional authorization_server_id = '<AUTHORIZATION_SERVER_ID>', # optional + prompt = [ProjectOAuth2OktaPrompt.NONE], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-salesforce.md index a3cb63772..ec7a8ef44 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-salesforce.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Salesforce +from appwrite.enums import ProjectOAuth2SalesforcePrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project(client) result: OAuth2Salesforce = project.update_o_auth2_salesforce( customer_key = '<CUSTOMER_KEY>', # optional customer_secret = '<CUSTOMER_SECRET>', # optional + prompt = [ProjectOAuth2SalesforcePrompt.LOGIN], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..5edfea646 --- /dev/null +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,20 @@ +```python +from appwrite.client import Client +from appwrite.services.project import Project +from appwrite.models import OAuth2Webflow + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +project = Project(client) + +result: OAuth2Webflow = project.update_o_auth2_webflow( + client_id = '<CLIENT_ID>', # optional + client_secret = '<CLIENT_SECRET>', # optional + enabled = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.3.x/server-python/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-python/examples/project/update-o-auth-2-zoho.md index 069a9645b..edbd10233 100644 --- a/examples/2.3.x/server-python/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-python/examples/project/update-o-auth-2-zoho.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.project import Project from appwrite.models import OAuth2Zoho +from appwrite.enums import ProjectOAuth2ZohoPrompt client = Client() client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project(client) result: OAuth2Zoho = project.update_o_auth2_zoho( client_id = '<CLIENT_ID>', # optional client_secret = '<CLIENT_SECRET>', # optional + prompt = [ProjectOAuth2ZohoPrompt.CONSENT], # optional enabled = False # optional ) diff --git a/examples/2.3.x/server-python/examples/sites/list-frameworks.md b/examples/2.3.x/server-python/examples/sites/list-frameworks.md index 84996b3f7..2edd3b352 100644 --- a/examples/2.3.x/server-python/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-python/examples/sites/list-frameworks.md @@ -10,7 +10,9 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key sites = Sites(client) -result: FrameworkList = sites.list_frameworks() +result: FrameworkList = sites.list_frameworks( + total = False # optional +) print(result.model_dump()) ``` diff --git a/examples/2.3.x/server-python/examples/sites/list-specifications.md b/examples/2.3.x/server-python/examples/sites/list-specifications.md index 2f04ddf48..88c3402bc 100644 --- a/examples/2.3.x/server-python/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-python/examples/sites/list-specifications.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key sites = Sites(client) result: SpecificationList = sites.list_specifications( - type = 'runtimes' # optional + type = 'runtimes', # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/tablesdb/create-index.md b/examples/2.3.x/server-python/examples/tablesdb/create-index.md index 5de707fed..5a8652831 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-python/examples/tablesdb/create-index.md @@ -17,7 +17,7 @@ result: ColumnIndex = tables_db.create_index( table_id = '<TABLE_ID>', key = '<KEY>', type = TablesDBIndexType.KEY, - columns = [], + columns = ["username"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/server-python/examples/tablesdb/create-rows.md b/examples/2.3.x/server-python/examples/tablesdb/create-rows.md index 9e741fe4c..6dc956212 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-python/examples/tablesdb/create-rows.md @@ -13,7 +13,16 @@ tables_db = TablesDB(client) result: RowList = tables_db.create_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - rows = [], + rows = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-python/examples/tablesdb/delete-rows.md index 2a3a89ca0..9ed0672d8 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-python/examples/tablesdb/delete-rows.md @@ -13,7 +13,7 @@ tables_db = TablesDB(client) result: RowList = tables_db.delete_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/tablesdb/get-column.md b/examples/2.3.x/server-python/examples/tablesdb/get-column.md index 6d2b82551..1a4dd142c 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/get-column.md +++ b/examples/2.3.x/server-python/examples/tablesdb/get-column.md @@ -2,6 +2,7 @@ from appwrite.client import Client from appwrite.services.tables_db import TablesDB from appwrite.models import ColumnBoolean +from appwrite.models import ColumnBigint from appwrite.models import ColumnInteger from appwrite.models import ColumnFloat from appwrite.models import ColumnEmail @@ -10,6 +11,13 @@ from appwrite.models import ColumnUrl from appwrite.models import ColumnIp from appwrite.models import ColumnDatetime from appwrite.models import ColumnRelationship +from appwrite.models import ColumnPoint +from appwrite.models import ColumnLine +from appwrite.models import ColumnPolygon +from appwrite.models import ColumnVarchar +from appwrite.models import ColumnText +from appwrite.models import ColumnMediumtext +from appwrite.models import ColumnLongtext from appwrite.models import ColumnString from typing import Union @@ -20,7 +28,7 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key tables_db = TablesDB(client) -result: Union[ColumnBoolean, ColumnInteger, ColumnFloat, ColumnEmail, ColumnEnum, ColumnUrl, ColumnIp, ColumnDatetime, ColumnRelationship, ColumnString] = tables_db.get_column( +result: Union[ColumnBoolean, ColumnBigint, ColumnInteger, ColumnFloat, ColumnEmail, ColumnEnum, ColumnUrl, ColumnIp, ColumnDatetime, ColumnRelationship, ColumnPoint, ColumnLine, ColumnPolygon, ColumnVarchar, ColumnText, ColumnMediumtext, ColumnLongtext, ColumnString] = tables_db.get_column( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', key = '<KEY>' diff --git a/examples/2.3.x/server-python/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-python/examples/tablesdb/list-transactions.md index b4384e67c..ded733606 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-python/examples/tablesdb/list-transactions.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key tables_db = TablesDB(client) result: TransactionList = tables_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-python/examples/tablesdb/upsert-rows.md index 0b6a754e3..673b9a2b2 100644 --- a/examples/2.3.x/server-python/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-python/examples/tablesdb/upsert-rows.md @@ -13,7 +13,16 @@ tables_db = TablesDB(client) result: RowList = tables_db.upsert_rows( database_id = '<DATABASE_ID>', table_id = '<TABLE_ID>', - rows = [], + rows = [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/teams/create-membership.md b/examples/2.3.x/server-python/examples/teams/create-membership.md index 313bf5f6a..8b1e3267d 100644 --- a/examples/2.3.x/server-python/examples/teams/create-membership.md +++ b/examples/2.3.x/server-python/examples/teams/create-membership.md @@ -12,7 +12,7 @@ teams = Teams(client) result: Membership = teams.create_membership( team_id = '<TEAM_ID>', - roles = [], + roles = ["editor"], email = 'email@example.com', # optional user_id = '<USER_ID>', # optional phone = '+12065550100', # optional diff --git a/examples/2.3.x/server-python/examples/teams/update-membership.md b/examples/2.3.x/server-python/examples/teams/update-membership.md index 4425ae58d..e6db1a041 100644 --- a/examples/2.3.x/server-python/examples/teams/update-membership.md +++ b/examples/2.3.x/server-python/examples/teams/update-membership.md @@ -13,7 +13,7 @@ teams = Teams(client) result: Membership = teams.update_membership( team_id = '<TEAM_ID>', membership_id = '<MEMBERSHIP_ID>', - roles = [] + roles = ["editor"] ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/users/update-labels.md b/examples/2.3.x/server-python/examples/users/update-labels.md index bffba0c1e..7d75293f0 100644 --- a/examples/2.3.x/server-python/examples/users/update-labels.md +++ b/examples/2.3.x/server-python/examples/users/update-labels.md @@ -12,7 +12,7 @@ users = Users(client) result: User = users.update_labels( user_id = '<USER_ID>', - labels = [] + labels = ["subscriber"] ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-python/examples/vectorsdb/create-collection.md index 793aa3f5d..6dcdeb24e 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/create-collection.md @@ -16,7 +16,7 @@ result: VectorsdbCollection = vectors_db.create_collection( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', name = '<NAME>', - dimension = 1, + dimension = 4, permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional diff --git a/examples/2.3.x/server-python/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-python/examples/vectorsdb/create-documents.md index b84eea6d5..6191c41b0 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/create-documents.md @@ -13,7 +13,20 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.create_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/vectorsdb/create-index.md b/examples/2.3.x/server-python/examples/vectorsdb/create-index.md index 2f5bf2564..2fbb5312e 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/create-index.md @@ -17,7 +17,7 @@ result: Index = vectors_db.create_index( collection_id = '<COLLECTION_ID>', key = '<KEY>', type = VectorsDBIndexType.HNSW_EUCLIDEAN, - attributes = [], + attributes = ["embeddings"], orders = [OrderBy.ASC], # optional lengths = [] # optional ) diff --git a/examples/2.3.x/server-python/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-python/examples/vectorsdb/create-operations.md index e19a89363..f4e1026dd 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/create-operations.md @@ -19,7 +19,15 @@ result: Transaction = vectors_db.create_operations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] # optional diff --git a/examples/2.3.x/server-python/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-python/examples/vectorsdb/delete-documents.md index f1bee6ee3..8a36e763d 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/delete-documents.md @@ -13,7 +13,7 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.delete_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - queries = [], # optional + queries = ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-python/examples/vectorsdb/list-transactions.md index d21db0122..6ff6cdaa0 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/list-transactions.md @@ -11,7 +11,8 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key vectors_db = VectorsDB(client) result: TransactionList = vectors_db.list_transactions( - queries = [] # optional + queries = [], # optional + total = False # optional ) print(result.model_dump()) diff --git a/examples/2.3.x/server-python/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-python/examples/vectorsdb/update-collection.md index 3dcf8903e..7093c0b25 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/update-collection.md @@ -16,7 +16,7 @@ result: VectorsdbCollection = vectors_db.update_collection( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', name = '<NAME>', - dimension = 1, # optional + dimension = 4, # optional permissions = [Permission.read(Role.any())], # optional document_security = False, # optional enabled = False # optional diff --git a/examples/2.3.x/server-python/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-python/examples/vectorsdb/upsert-documents.md index 5eb3d2d1a..c89ed2f3c 100644 --- a/examples/2.3.x/server-python/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-python/examples/vectorsdb/upsert-documents.md @@ -13,7 +13,20 @@ vectors_db = VectorsDB(client) result: DocumentList = vectors_db.upsert_documents( database_id = '<DATABASE_ID>', collection_id = '<COLLECTION_ID>', - documents = [], + documents = [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id = '<TRANSACTION_ID>' # optional ) diff --git a/examples/2.3.x/server-python/examples/webhooks/create.md b/examples/2.3.x/server-python/examples/webhooks/create.md index ed957a41e..1585ef2b4 100644 --- a/examples/2.3.x/server-python/examples/webhooks/create.md +++ b/examples/2.3.x/server-python/examples/webhooks/create.md @@ -14,7 +14,7 @@ result: Webhook = webhooks.create( webhook_id = '<WEBHOOK_ID>', url = 'https://example.com/webhook', name = '<NAME>', - events = [], + events = ["users.*.create"], enabled = False, # optional tls = False, # optional auth_username = '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/server-python/examples/webhooks/update.md b/examples/2.3.x/server-python/examples/webhooks/update.md index a6d3ac7b7..647e86180 100644 --- a/examples/2.3.x/server-python/examples/webhooks/update.md +++ b/examples/2.3.x/server-python/examples/webhooks/update.md @@ -14,7 +14,7 @@ result: Webhook = webhooks.update( webhook_id = '<WEBHOOK_ID>', name = '<NAME>', url = 'https://example.com/webhook', - events = [], + events = ["users.*.create"], enabled = False, # optional tls = False, # optional auth_username = '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/server-rest/examples/account/create-email-password-session.md b/examples/2.3.x/server-rest/examples/account/create-email-password-session.md index bd8c32a48..57b9b36d8 100644 --- a/examples/2.3.x/server-rest/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-rest/examples/account/create-email-password-session.md @@ -8,6 +8,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "email": "email@example.com", - "password": "password" + "password": "password", + "duration": 60 } ``` diff --git a/examples/2.3.x/server-rest/examples/analytics/create-event.md b/examples/2.3.x/server-rest/examples/analytics/create-event.md new file mode 100644 index 000000000..51f37423a --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/create-event.md @@ -0,0 +1,23 @@ +```http +POST /v1/analytics/properties/{propertyId}/events HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "name": "<NAME>", + "url": "https://example.com", + "domain": "<DOMAIN>", + "referrer": "<REFERRER>", + "screenWidth": 0, + "sessionHash": "<SESSION_HASH>", + "scrollDepth": 0, + "engagementTime": 0, + "props": [], + "userId": "<USER_ID>", + "ip": "<IP>", + "userAgent": "<USER_AGENT>" +} +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/create-property.md b/examples/2.3.x/server-rest/examples/analytics/create-property.md new file mode 100644 index 000000000..8d8fc421e --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/create-property.md @@ -0,0 +1,18 @@ +```http +POST /v1/analytics/properties HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "propertyId": "<PROPERTY_ID>", + "name": "<NAME>", + "domain": "<DOMAIN>", + "timezone": "<TIMEZONE>", + "enabled": false, + "public": false, + "allowedOrigins": [] +} +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/delete-property.md b/examples/2.3.x/server-rest/examples/analytics/delete-property.md new file mode 100644 index 000000000..ea693fed7 --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/delete-property.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/analytics/properties/{propertyId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/get-property.md b/examples/2.3.x/server-rest/examples/analytics/get-property.md new file mode 100644 index 000000000..b6f7c607c --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/get-property.md @@ -0,0 +1,7 @@ +```http +GET /v1/analytics/properties/{propertyId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/list-metrics.md b/examples/2.3.x/server-rest/examples/analytics/list-metrics.md new file mode 100644 index 000000000..f619636cc --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/list-metrics.md @@ -0,0 +1,7 @@ +```http +GET /v1/analytics/properties/{propertyId}/metrics HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/list-properties.md b/examples/2.3.x/server-rest/examples/analytics/list-properties.md new file mode 100644 index 000000000..a3e90d5c2 --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/list-properties.md @@ -0,0 +1,7 @@ +```http +GET /v1/analytics/properties HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +``` diff --git a/examples/2.3.x/server-rest/examples/analytics/update-property.md b/examples/2.3.x/server-rest/examples/analytics/update-property.md new file mode 100644 index 000000000..b3969bfe6 --- /dev/null +++ b/examples/2.3.x/server-rest/examples/analytics/update-property.md @@ -0,0 +1,17 @@ +```http +PATCH /v1/analytics/properties/{propertyId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "name": "<NAME>", + "domain": "<DOMAIN>", + "timezone": "<TIMEZONE>", + "enabled": false, + "public": false, + "allowedOrigins": [] +} +``` diff --git a/examples/2.3.x/server-rest/examples/avatars/delete-photo.md b/examples/2.3.x/server-rest/examples/avatars/delete-photo.md new file mode 100644 index 000000000..f892a9467 --- /dev/null +++ b/examples/2.3.x/server-rest/examples/avatars/delete-photo.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +``` diff --git a/examples/2.3.x/server-rest/examples/avatars/update-photo.md b/examples/2.3.x/server-rest/examples/avatars/update-photo.md new file mode 100644 index 000000000..121562d9f --- /dev/null +++ b/examples/2.3.x/server-rest/examples/avatars/update-photo.md @@ -0,0 +1,16 @@ +```http +PUT /v1/avatars/photo HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: multipart/form-data; boundary="cec8e8123c05ba25" +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +Content-Length: *Length of your entity body in bytes* + +--cec8e8123c05ba25 +Content-Disposition: form-data; name="file" + +cf 94 84 24 8d c4 91 10 0f dc 54 26 6c 8e 4b bc e8 ee 55 94 29 e7 94 89 19 26 28 01 26 29 3f 16... + +--cec8e8123c05ba25-- +``` diff --git a/examples/2.3.x/server-rest/examples/databases/create-documents.md b/examples/2.3.x/server-rest/examples/databases/create-documents.md index e367fe405..807652f12 100644 --- a/examples/2.3.x/server-rest/examples/databases/create-documents.md +++ b/examples/2.3.x/server-rest/examples/databases/create-documents.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/databases/create-index.md b/examples/2.3.x/server-rest/examples/databases/create-index.md index d74b95b1b..fdb2d9559 100644 --- a/examples/2.3.x/server-rest/examples/databases/create-index.md +++ b/examples/2.3.x/server-rest/examples/databases/create-index.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "key": "<KEY>", "type": "key", - "attributes": [], + "attributes": ["username"], "orders": [], "lengths": [] } diff --git a/examples/2.3.x/server-rest/examples/databases/upsert-documents.md b/examples/2.3.x/server-rest/examples/databases/upsert-documents.md index df6c8f7c3..7519b3629 100644 --- a/examples/2.3.x/server-rest/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-rest/examples/databases/upsert-documents.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/documentsdb/create-documents.md b/examples/2.3.x/server-rest/examples/documentsdb/create-documents.md index 8ab99545a..53673b5c4 100644 --- a/examples/2.3.x/server-rest/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-rest/examples/documentsdb/create-documents.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/documentsdb/create-index.md b/examples/2.3.x/server-rest/examples/documentsdb/create-index.md index 36d448ffe..5c1bb9c58 100644 --- a/examples/2.3.x/server-rest/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-rest/examples/documentsdb/create-index.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "key": "<KEY>", "type": "key", - "attributes": [], + "attributes": ["username"], "orders": [], "lengths": [] } diff --git a/examples/2.3.x/server-rest/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-rest/examples/documentsdb/upsert-documents.md index ca8043608..9d075e2f0 100644 --- a/examples/2.3.x/server-rest/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-rest/examples/documentsdb/upsert-documents.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-rest/examples/embeddings/create-text-embeddings.md index 2634ba7ee..f2a5b14bc 100644 --- a/examples/2.3.x/server-rest/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-rest/examples/embeddings/create-text-embeddings.md @@ -7,7 +7,7 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "texts": [], + "texts": ["Appwrite helps developers build applications.", "Find documents with semantic search."], "model": "nomic-embed-text" } ``` diff --git a/examples/2.3.x/server-rest/examples/graphql/mutation.md b/examples/2.3.x/server-rest/examples/graphql/mutation.md index 2ad4b0d6d..845b6d3f3 100644 --- a/examples/2.3.x/server-rest/examples/graphql/mutation.md +++ b/examples/2.3.x/server-rest/examples/graphql/mutation.md @@ -8,6 +8,8 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "query": {} + "query": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } } ``` diff --git a/examples/2.3.x/server-rest/examples/graphql/query.md b/examples/2.3.x/server-rest/examples/graphql/query.md index 98a401e63..6776fac98 100644 --- a/examples/2.3.x/server-rest/examples/graphql/query.md +++ b/examples/2.3.x/server-rest/examples/graphql/query.md @@ -8,6 +8,8 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "query": {} + "query": { + "query": "query { localeGet { ip } }" + } } ``` diff --git a/examples/2.3.x/server-rest/examples/messaging/create-push.md b/examples/2.3.x/server-rest/examples/messaging/create-push.md index 8152d8a6e..fd207c4fb 100644 --- a/examples/2.3.x/server-rest/examples/messaging/create-push.md +++ b/examples/2.3.x/server-rest/examples/messaging/create-push.md @@ -25,6 +25,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "scheduledAt": "2020-10-15T06:38:00.000+00:00", "contentAvailable": false, "critical": false, - "priority": "normal" + "priority": "normal", + "channelId": "<CHANNEL_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/messaging/update-email.md b/examples/2.3.x/server-rest/examples/messaging/update-email.md index c6759d8da..15bc76e46 100644 --- a/examples/2.3.x/server-rest/examples/messaging/update-email.md +++ b/examples/2.3.x/server-rest/examples/messaging/update-email.md @@ -7,18 +7,18 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { + "subject": "<SUBJECT>", + "content": "<CONTENT>", "topics": [], "users": [], "targets": [], - "subject": "<SUBJECT>", - "content": "<CONTENT>", - "draft": false, - "html": false, "cc": [], "bcc": [], + "attachments": [], "replyToEmail": "email@example.com", "replyToName": "<REPLY_TO_NAME>", - "scheduledAt": "2020-10-15T06:38:00.000+00:00", - "attachments": [] + "draft": false, + "html": false, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" } ``` diff --git a/examples/2.3.x/server-rest/examples/messaging/update-push.md b/examples/2.3.x/server-rest/examples/messaging/update-push.md index 5515827b8..55172892d 100644 --- a/examples/2.3.x/server-rest/examples/messaging/update-push.md +++ b/examples/2.3.x/server-rest/examples/messaging/update-push.md @@ -7,11 +7,11 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { + "title": "<TITLE>", + "body": "<BODY>", "topics": [], "users": [], "targets": [], - "title": "<TITLE>", - "body": "<BODY>", "data": {}, "action": "<ACTION>", "image": "<ID1:ID2>", @@ -24,6 +24,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "scheduledAt": "2020-10-15T06:38:00.000+00:00", "contentAvailable": false, "critical": false, - "priority": "normal" + "priority": "normal", + "channelId": "<CHANNEL_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/messaging/update-sms.md b/examples/2.3.x/server-rest/examples/messaging/update-sms.md index 589235626..bd5f093ee 100644 --- a/examples/2.3.x/server-rest/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-rest/examples/messaging/update-sms.md @@ -7,10 +7,10 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { + "content": "<CONTENT>", "topics": [], "users": [], "targets": [], - "content": "<CONTENT>", "draft": false, "scheduledAt": "2020-10-15T06:38:00.000+00:00" } diff --git a/examples/2.3.x/server-rest/examples/oauth2/introspect.md b/examples/2.3.x/server-rest/examples/oauth2/introspect.md new file mode 100644 index 000000000..60ea8f70a --- /dev/null +++ b/examples/2.3.x/server-rest/examples/oauth2/introspect.md @@ -0,0 +1,14 @@ +```http +POST /v1/oauth2/{project_id}/introspect HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 + +{ + "token": "<TOKEN>", + "token_type_hint": "access_token", + "client_id": "<CLIENT_ID>", + "client_secret": "<CLIENT_SECRET>" +} +``` diff --git a/examples/2.3.x/server-rest/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-rest/examples/organization/create-ephemeral-project-key.md index b3775e56a..6a72c4047 100644 --- a/examples/2.3.x/server-rest/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-rest/examples/organization/create-ephemeral-project-key.md @@ -7,7 +7,7 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "scopes": [], + "scopes": ["users.read"], "duration": 600 } ``` diff --git a/examples/2.3.x/server-rest/examples/organization/update-project-key.md b/examples/2.3.x/server-rest/examples/organization/update-project-key.md index 949db8a5e..b65071310 100644 --- a/examples/2.3.x/server-rest/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-rest/examples/organization/update-project-key.md @@ -8,7 +8,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "name": "<NAME>", - "scopes": [], + "scopes": ["users.read"], "expire": "2020-10-15T06:38:00.000+00:00" } ``` diff --git a/examples/2.3.x/server-rest/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-rest/examples/project/create-ephemeral-key.md index 453eafbfb..e3fbfa32c 100644 --- a/examples/2.3.x/server-rest/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-rest/examples/project/create-ephemeral-key.md @@ -7,7 +7,7 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "scopes": [], + "scopes": ["users.read"], "duration": 600 } ``` diff --git a/examples/2.3.x/server-rest/examples/project/create-smtp-test.md b/examples/2.3.x/server-rest/examples/project/create-smtp-test.md index 96a0765dd..2c2cba162 100644 --- a/examples/2.3.x/server-rest/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-rest/examples/project/create-smtp-test.md @@ -7,6 +7,6 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "emails": [] + "emails": ["recipient@example.com"] } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-key.md b/examples/2.3.x/server-rest/examples/project/update-key.md index c32ba4f2f..7ce7f4153 100644 --- a/examples/2.3.x/server-rest/examples/project/update-key.md +++ b/examples/2.3.x/server-rest/examples/project/update-key.md @@ -8,7 +8,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "name": "<NAME>", - "scopes": [], + "scopes": ["users.read"], "expire": "2020-10-15T06:38:00.000+00:00" } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-labels.md b/examples/2.3.x/server-rest/examples/project/update-labels.md index 07a8dd86f..f5c773228 100644 --- a/examples/2.3.x/server-rest/examples/project/update-labels.md +++ b/examples/2.3.x/server-rest/examples/project/update-labels.md @@ -7,6 +7,6 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "labels": [] + "labels": ["production"] } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-auth-0.md index 0d143e5e4..e86e15ef6 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-auth-0.md @@ -10,6 +10,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "clientId": "<CLIENT_ID>", "clientSecret": "<CLIENT_SECRET>", "endpoint": "<ENDPOINT>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-discord.md index 02746ab74..e0a63baa7 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-discord.md @@ -9,6 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "clientId": "<CLIENT_ID>", "clientSecret": "<CLIENT_SECRET>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-git-hub.md index 453a25386..78a830069 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-git-hub.md @@ -9,6 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "clientId": "<CLIENT_ID>", "clientSecret": "<CLIENT_SECRET>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-kakao.md index 306581b18..3be3b5ed5 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-kakao.md @@ -9,6 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "clientId": "<CLIENT_ID>", "clientSecret": "<CLIENT_SECRET>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-microsoft.md index 36284b066..69ae6ca6a 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-microsoft.md @@ -10,6 +10,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "applicationId": "<APPLICATION_ID>", "applicationSecret": "<APPLICATION_SECRET>", "tenant": "<TENANT>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-okta.md index 3fa0c6d8f..c743ea642 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-okta.md @@ -11,6 +11,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "clientSecret": "<CLIENT_SECRET>", "domain": "example.com", "authorizationServerId": "<AUTHORIZATION_SERVER_ID>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-salesforce.md index a39520834..0411b9035 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-salesforce.md @@ -9,6 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "customerKey": "<CUSTOMER_KEY>", "customerSecret": "<CUSTOMER_SECRET>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..53bfb9647 --- /dev/null +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,14 @@ +```http +PATCH /v1/project/oauth2/webflow HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.3.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "clientId": "<CLIENT_ID>", + "clientSecret": "<CLIENT_SECRET>", + "enabled": false +} +``` diff --git a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-zoho.md index 5df4ec3ca..60341ed81 100644 --- a/examples/2.3.x/server-rest/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-rest/examples/project/update-o-auth-2-zoho.md @@ -9,6 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "clientId": "<CLIENT_ID>", "clientSecret": "<CLIENT_SECRET>", + "prompt": [], "enabled": false } ``` diff --git a/examples/2.3.x/server-rest/examples/tablesdb/create-index.md b/examples/2.3.x/server-rest/examples/tablesdb/create-index.md index 2c51ed6db..15db863c3 100644 --- a/examples/2.3.x/server-rest/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-rest/examples/tablesdb/create-index.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "key": "<KEY>", "type": "key", - "columns": [], + "columns": ["username"], "orders": [], "lengths": [] } diff --git a/examples/2.3.x/server-rest/examples/tablesdb/create-rows.md b/examples/2.3.x/server-rest/examples/tablesdb/create-rows.md index f8e2a3478..5b3b8bb29 100644 --- a/examples/2.3.x/server-rest/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-rest/examples/tablesdb/create-rows.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "rows": [], + "rows": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-rest/examples/tablesdb/upsert-rows.md index 2c43a30df..f12f3216b 100644 --- a/examples/2.3.x/server-rest/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-rest/examples/tablesdb/upsert-rows.md @@ -7,7 +7,16 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "rows": [], + "rows": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/teams/create-membership.md b/examples/2.3.x/server-rest/examples/teams/create-membership.md index c4840217f..4f855fb2f 100644 --- a/examples/2.3.x/server-rest/examples/teams/create-membership.md +++ b/examples/2.3.x/server-rest/examples/teams/create-membership.md @@ -10,7 +10,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "email": "email@example.com", "userId": "<USER_ID>", "phone": "+12065550100", - "roles": [], + "roles": ["editor"], "url": "https://example.com", "name": "<NAME>" } diff --git a/examples/2.3.x/server-rest/examples/teams/update-membership.md b/examples/2.3.x/server-rest/examples/teams/update-membership.md index 22358a94d..b451422c0 100644 --- a/examples/2.3.x/server-rest/examples/teams/update-membership.md +++ b/examples/2.3.x/server-rest/examples/teams/update-membership.md @@ -7,6 +7,6 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "roles": [] + "roles": ["editor"] } ``` diff --git a/examples/2.3.x/server-rest/examples/users/update-labels.md b/examples/2.3.x/server-rest/examples/users/update-labels.md index 64a6805f4..5e3f455ea 100644 --- a/examples/2.3.x/server-rest/examples/users/update-labels.md +++ b/examples/2.3.x/server-rest/examples/users/update-labels.md @@ -7,6 +7,6 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "labels": [] + "labels": ["subscriber"] } ``` diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-rest/examples/vectorsdb/create-collection.md index 229c76ec0..aad0390f1 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/create-collection.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "collectionId": "<COLLECTION_ID>", "name": "<NAME>", - "dimension": 1, + "dimension": 4, "permissions": ["read(\"any\")"], "documentSecurity": false, "enabled": false diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-rest/examples/vectorsdb/create-documents.md index 5d7d25329..c300eb5a3 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/create-documents.md @@ -7,7 +7,20 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/create-index.md b/examples/2.3.x/server-rest/examples/vectorsdb/create-index.md index 9bed79bbd..158d22764 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/create-index.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "key": "<KEY>", "type": "hnsw_euclidean", - "attributes": [], + "attributes": ["embeddings"], "orders": [], "lengths": [] } diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-rest/examples/vectorsdb/create-operations.md index 9f34f5b34..fa894e4ce 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/create-operations.md @@ -14,7 +14,15 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-rest/examples/vectorsdb/update-collection.md index 2ab3dc84f..720765d28 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/update-collection.md @@ -8,7 +8,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "name": "<NAME>", - "dimension": 1, + "dimension": 4, "permissions": ["read(\"any\")"], "documentSecurity": false, "enabled": false diff --git a/examples/2.3.x/server-rest/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-rest/examples/vectorsdb/upsert-documents.md index 102c69e97..98e1740c9 100644 --- a/examples/2.3.x/server-rest/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-rest/examples/vectorsdb/upsert-documents.md @@ -7,7 +7,20 @@ X-Appwrite-Response-Format: 2.3.0 X-Appwrite-Project: <YOUR_PROJECT_ID> { - "documents": [], + "documents": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], "transactionId": "<TRANSACTION_ID>" } ``` diff --git a/examples/2.3.x/server-rest/examples/webhooks/create.md b/examples/2.3.x/server-rest/examples/webhooks/create.md index 3515358f8..4e95411f6 100644 --- a/examples/2.3.x/server-rest/examples/webhooks/create.md +++ b/examples/2.3.x/server-rest/examples/webhooks/create.md @@ -10,7 +10,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> "webhookId": "<WEBHOOK_ID>", "url": "https://example.com/webhook", "name": "<NAME>", - "events": [], + "events": ["users.*.create"], "enabled": false, "tls": false, "authUsername": "<AUTH_USERNAME>", diff --git a/examples/2.3.x/server-rest/examples/webhooks/update.md b/examples/2.3.x/server-rest/examples/webhooks/update.md index a29585a49..37ec92d88 100644 --- a/examples/2.3.x/server-rest/examples/webhooks/update.md +++ b/examples/2.3.x/server-rest/examples/webhooks/update.md @@ -9,7 +9,7 @@ X-Appwrite-Project: <YOUR_PROJECT_ID> { "name": "<NAME>", "url": "https://example.com/webhook", - "events": [], + "events": ["users.*.create"], "enabled": false, "tls": false, "authUsername": "<AUTH_USERNAME>", diff --git a/examples/2.3.x/server-ruby/examples/account/create-email-password-session.md b/examples/2.3.x/server-ruby/examples/account/create-email-password-session.md index 57ab742da..2db01b746 100644 --- a/examples/2.3.x/server-ruby/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-ruby/examples/account/create-email-password-session.md @@ -12,6 +12,7 @@ account = Account.new(client) result = account.create_email_password_session( email: 'email@example.com', - password: 'password' + password: 'password', + duration: 60 # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/account/delete-sessions.md b/examples/2.3.x/server-ruby/examples/account/delete-sessions.md index 3008032f0..b7143c0cc 100644 --- a/examples/2.3.x/server-ruby/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-ruby/examples/account/delete-sessions.md @@ -10,5 +10,7 @@ client = Client.new account = Account.new(client) -result = account.delete_sessions() +result = account.delete_sessions( + current: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/account/list-sessions.md b/examples/2.3.x/server-ruby/examples/account/list-sessions.md index 47d2c033c..5b810eb99 100644 --- a/examples/2.3.x/server-ruby/examples/account/list-sessions.md +++ b/examples/2.3.x/server-ruby/examples/account/list-sessions.md @@ -10,5 +10,7 @@ client = Client.new account = Account.new(client) -result = account.list_sessions() +result = account.list_sessions( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/create-event.md b/examples/2.3.x/server-ruby/examples/analytics/create-event.md new file mode 100644 index 000000000..9a9019861 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/create-event.md @@ -0,0 +1,28 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_session('') # The user session to authenticate with + +analytics = Analytics.new(client) + +result = analytics.create_event( + property_id: '<PROPERTY_ID>', + name: '<NAME>', + url: 'https://example.com', + domain: '<DOMAIN>', # optional + referrer: '<REFERRER>', # optional + screen_width: null, # optional + session_hash: '<SESSION_HASH>', # optional + scroll_depth: 0, # optional + engagement_time: null, # optional + props: [], # optional + user_id: '<USER_ID>', # optional + ip: '<IP>', # optional + user_agent: '<USER_AGENT>' # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/create-property.md b/examples/2.3.x/server-ruby/examples/analytics/create-property.md new file mode 100644 index 000000000..61b09d565 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/create-property.md @@ -0,0 +1,22 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.create_property( + property_id: '<PROPERTY_ID>', + name: '<NAME>', + domain: '<DOMAIN>', # optional + timezone: '<TIMEZONE>', # optional + enabled: false, # optional + public: false, # optional + allowed_origins: [] # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/delete-property.md b/examples/2.3.x/server-ruby/examples/analytics/delete-property.md new file mode 100644 index 000000000..9664122d2 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/delete-property.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.delete_property( + property_id: '<PROPERTY_ID>' +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/get-property.md b/examples/2.3.x/server-ruby/examples/analytics/get-property.md new file mode 100644 index 000000000..ce0251251 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/get-property.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.get_property( + property_id: '<PROPERTY_ID>' +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/list-metrics.md b/examples/2.3.x/server-ruby/examples/analytics/list-metrics.md new file mode 100644 index 000000000..9415c67c6 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/list-metrics.md @@ -0,0 +1,24 @@ +```ruby +require 'appwrite' + +include Appwrite +include Appwrite::Enums + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.list_metrics( + property_id: '<PROPERTY_ID>', + queries: [], # optional + interval: AnalyticsInterval::ONE_HOUR, # optional + dimensions: [AnalyticsDimension::COUNTRY], # optional + date_range: '<DATE_RANGE>', # optional + start_at: '2020-10-15T06:38:00.000+00:00', # optional + end_at: '2020-10-15T06:38:00.000+00:00', # optional + limit: 1 # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/list-properties.md b/examples/2.3.x/server-ruby/examples/analytics/list-properties.md new file mode 100644 index 000000000..403cdcc43 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/list-properties.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.list_properties( + queries: [], # optional + search: '<SEARCH>', # optional + total: false # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/analytics/update-property.md b/examples/2.3.x/server-ruby/examples/analytics/update-property.md new file mode 100644 index 000000000..7d32787bd --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/analytics/update-property.md @@ -0,0 +1,22 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +analytics = Analytics.new(client) + +result = analytics.update_property( + property_id: '<PROPERTY_ID>', + name: '<NAME>', # optional + domain: '<DOMAIN>', # optional + timezone: '<TIMEZONE>', # optional + enabled: false, # optional + public: false, # optional + allowed_origins: [] # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/avatars/delete-photo.md b/examples/2.3.x/server-ruby/examples/avatars/delete-photo.md new file mode 100644 index 000000000..87dadb8bf --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/avatars/delete-photo.md @@ -0,0 +1,14 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_session('') # The user session to authenticate with + +avatars = Avatars.new(client) + +result = avatars.delete_photo() +``` diff --git a/examples/2.3.x/server-ruby/examples/avatars/get-screenshot.md b/examples/2.3.x/server-ruby/examples/avatars/get-screenshot.md index 742c87fd9..331e4292f 100644 --- a/examples/2.3.x/server-ruby/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-ruby/examples/avatars/get-screenshot.md @@ -14,8 +14,7 @@ avatars = Avatars.new(client) result = avatars.get_screenshot( url: 'https://example.com', headers: { - "Authorization" => "Bearer token123", - "X-Custom-Header" => "value" + "Accept-Language" => "en-US,en;q=0.9" }, # optional viewport_width: 1920, # optional viewport_height: 1080, # optional diff --git a/examples/2.3.x/server-ruby/examples/avatars/update-photo.md b/examples/2.3.x/server-ruby/examples/avatars/update-photo.md new file mode 100644 index 000000000..221de4064 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/avatars/update-photo.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_session('') # The user session to authenticate with + +avatars = Avatars.new(client) + +result = avatars.update_photo( + file: InputFile.from_path('dir/file.png') +) +``` diff --git a/examples/2.3.x/server-ruby/examples/databases/create-documents.md b/examples/2.3.x/server-ruby/examples/databases/create-documents.md index 60acd19f7..25b4cbd93 100644 --- a/examples/2.3.x/server-ruby/examples/databases/create-documents.md +++ b/examples/2.3.x/server-ruby/examples/databases/create-documents.md @@ -13,7 +13,16 @@ databases = Databases.new(client) result = databases.create_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/databases/create-index.md b/examples/2.3.x/server-ruby/examples/databases/create-index.md index e3e9238a9..924f512f8 100644 --- a/examples/2.3.x/server-ruby/examples/databases/create-index.md +++ b/examples/2.3.x/server-ruby/examples/databases/create-index.md @@ -16,7 +16,7 @@ result = databases.create_index( collection_id: '<COLLECTION_ID>', key: '<KEY>', type: DatabasesIndexType::KEY, - attributes: [], + attributes: ["username"], orders: [OrderBy::ASC], # optional lengths: [] # optional ) diff --git a/examples/2.3.x/server-ruby/examples/databases/delete-documents.md b/examples/2.3.x/server-ruby/examples/databases/delete-documents.md index c9309bd9d..29ea35832 100644 --- a/examples/2.3.x/server-ruby/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-ruby/examples/databases/delete-documents.md @@ -13,7 +13,7 @@ databases = Databases.new(client) result = databases.delete_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - queries: [], # optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/databases/list-transactions.md b/examples/2.3.x/server-ruby/examples/databases/list-transactions.md index 9071982e7..12daa7a1d 100644 --- a/examples/2.3.x/server-ruby/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-ruby/examples/databases/list-transactions.md @@ -11,6 +11,7 @@ client = Client.new databases = Databases.new(client) result = databases.list_transactions( - queries: [] # optional + queries: [], # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/databases/upsert-documents.md b/examples/2.3.x/server-ruby/examples/databases/upsert-documents.md index 49432e01b..6cf394c58 100644 --- a/examples/2.3.x/server-ruby/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-ruby/examples/databases/upsert-documents.md @@ -13,7 +13,16 @@ databases = Databases.new(client) result = databases.upsert_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/documentsdb/create-documents.md b/examples/2.3.x/server-ruby/examples/documentsdb/create-documents.md index 1277f4aca..b895f1c55 100644 --- a/examples/2.3.x/server-ruby/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-ruby/examples/documentsdb/create-documents.md @@ -13,7 +13,16 @@ documents_db = DocumentsDB.new(client) result = documents_db.create_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/documentsdb/create-index.md b/examples/2.3.x/server-ruby/examples/documentsdb/create-index.md index d1891f9ae..a8c4e35ff 100644 --- a/examples/2.3.x/server-ruby/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-ruby/examples/documentsdb/create-index.md @@ -16,7 +16,7 @@ result = documents_db.create_index( collection_id: '<COLLECTION_ID>', key: '<KEY>', type: DocumentsDBIndexType::KEY, - attributes: [], + attributes: ["username"], orders: [OrderBy::ASC], # optional lengths: [] # optional ) diff --git a/examples/2.3.x/server-ruby/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-ruby/examples/documentsdb/delete-documents.md index cd628c75f..b1ea20320 100644 --- a/examples/2.3.x/server-ruby/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-ruby/examples/documentsdb/delete-documents.md @@ -13,7 +13,7 @@ documents_db = DocumentsDB.new(client) result = documents_db.delete_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - queries: [], # optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-ruby/examples/documentsdb/list-transactions.md index 82d368e17..2128e4f8e 100644 --- a/examples/2.3.x/server-ruby/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-ruby/examples/documentsdb/list-transactions.md @@ -11,6 +11,7 @@ client = Client.new documents_db = DocumentsDB.new(client) result = documents_db.list_transactions( - queries: [] # optional + queries: [], # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-ruby/examples/documentsdb/upsert-documents.md index f7f05970e..0876756c3 100644 --- a/examples/2.3.x/server-ruby/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-ruby/examples/documentsdb/upsert-documents.md @@ -13,7 +13,16 @@ documents_db = DocumentsDB.new(client) result = documents_db.upsert_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-ruby/examples/embeddings/create-text-embeddings.md index facbe573f..fecbe2812 100644 --- a/examples/2.3.x/server-ruby/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-ruby/examples/embeddings/create-text-embeddings.md @@ -12,7 +12,7 @@ client = Client.new embeddings = Embeddings.new(client) result = embeddings.create_text_embeddings( - texts: [], + texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: EmbeddingModel::NOMIC_EMBED_TEXT # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/functions/list-runtimes.md b/examples/2.3.x/server-ruby/examples/functions/list-runtimes.md index 98a754662..99eecff49 100644 --- a/examples/2.3.x/server-ruby/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-ruby/examples/functions/list-runtimes.md @@ -10,5 +10,7 @@ client = Client.new functions = Functions.new(client) -result = functions.list_runtimes() +result = functions.list_runtimes( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/functions/list-specifications.md b/examples/2.3.x/server-ruby/examples/functions/list-specifications.md index 635f73a5c..34f12bb0f 100644 --- a/examples/2.3.x/server-ruby/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-ruby/examples/functions/list-specifications.md @@ -11,6 +11,7 @@ client = Client.new functions = Functions.new(client) result = functions.list_specifications( - type: 'runtimes' # optional + type: 'runtimes', # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/graphql/mutation.md b/examples/2.3.x/server-ruby/examples/graphql/mutation.md index a71a8bd61..3493178eb 100644 --- a/examples/2.3.x/server-ruby/examples/graphql/mutation.md +++ b/examples/2.3.x/server-ruby/examples/graphql/mutation.md @@ -11,6 +11,8 @@ client = Client.new graphql = Graphql.new(client) result = graphql.mutation( - query: {} + query: { + "query" => "mutation { accountUpdateName(name: "Walter") { name } }" + } ) ``` diff --git a/examples/2.3.x/server-ruby/examples/graphql/query.md b/examples/2.3.x/server-ruby/examples/graphql/query.md index 49561b158..2432fd818 100644 --- a/examples/2.3.x/server-ruby/examples/graphql/query.md +++ b/examples/2.3.x/server-ruby/examples/graphql/query.md @@ -11,6 +11,8 @@ client = Client.new graphql = Graphql.new(client) result = graphql.query( - query: {} + query: { + "query" => "query { localeGet { ip } }" + } ) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-codes.md b/examples/2.3.x/server-ruby/examples/locale/list-codes.md index cf31d3af0..6935229ad 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-codes.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-codes.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_codes() +result = locale.list_codes( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-continents.md b/examples/2.3.x/server-ruby/examples/locale/list-continents.md index 1470c7d16..2e97e0b34 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-continents.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-continents.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_continents() +result = locale.list_continents( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-countries-eu.md b/examples/2.3.x/server-ruby/examples/locale/list-countries-eu.md index 7ca1e985d..b54270b74 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-countries-eu.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_countries_eu() +result = locale.list_countries_eu( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-countries-phones.md b/examples/2.3.x/server-ruby/examples/locale/list-countries-phones.md index 43c80c6ac..de45f6b65 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-countries-phones.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_countries_phones() +result = locale.list_countries_phones( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-countries.md b/examples/2.3.x/server-ruby/examples/locale/list-countries.md index a5a81c7ba..a985d20b8 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-countries.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-countries.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_countries() +result = locale.list_countries( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-currencies.md b/examples/2.3.x/server-ruby/examples/locale/list-currencies.md index a5316f2bf..2b698f1ea 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-currencies.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_currencies() +result = locale.list_currencies( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/locale/list-languages.md b/examples/2.3.x/server-ruby/examples/locale/list-languages.md index 9c8655f4e..8c0f1ae18 100644 --- a/examples/2.3.x/server-ruby/examples/locale/list-languages.md +++ b/examples/2.3.x/server-ruby/examples/locale/list-languages.md @@ -10,5 +10,7 @@ client = Client.new locale = Locale.new(client) -result = locale.list_languages() +result = locale.list_languages( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/messaging/create-push.md b/examples/2.3.x/server-ruby/examples/messaging/create-push.md index e94015e60..c1488a49a 100644 --- a/examples/2.3.x/server-ruby/examples/messaging/create-push.md +++ b/examples/2.3.x/server-ruby/examples/messaging/create-push.md @@ -30,6 +30,7 @@ result = messaging.create_push( scheduled_at: '2020-10-15T06:38:00.000+00:00', # optional content_available: false, # optional critical: false, # optional - priority: MessagePriority::NORMAL # optional + priority: MessagePriority::NORMAL, # optional + channel_id: '<CHANNEL_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/messaging/update-email.md b/examples/2.3.x/server-ruby/examples/messaging/update-email.md index dcdd413ea..0d918ba44 100644 --- a/examples/2.3.x/server-ruby/examples/messaging/update-email.md +++ b/examples/2.3.x/server-ruby/examples/messaging/update-email.md @@ -12,18 +12,18 @@ messaging = Messaging.new(client) result = messaging.update_email( message_id: '<MESSAGE_ID>', + subject: '<SUBJECT>', # optional + content: '<CONTENT>', # optional topics: [], # optional users: [], # optional targets: [], # optional - subject: '<SUBJECT>', # optional - content: '<CONTENT>', # optional - draft: false, # optional - html: false, # optional cc: [], # optional bcc: [], # optional + attachments: [], # optional reply_to_email: 'email@example.com', # optional reply_to_name: '<REPLY_TO_NAME>', # optional - scheduled_at: '2020-10-15T06:38:00.000+00:00', # optional - attachments: [] # optional + draft: false, # optional + html: false, # optional + scheduled_at: '2020-10-15T06:38:00.000+00:00' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/messaging/update-push.md b/examples/2.3.x/server-ruby/examples/messaging/update-push.md index 9aa0e8ba9..41323dbc7 100644 --- a/examples/2.3.x/server-ruby/examples/messaging/update-push.md +++ b/examples/2.3.x/server-ruby/examples/messaging/update-push.md @@ -13,11 +13,11 @@ messaging = Messaging.new(client) result = messaging.update_push( message_id: '<MESSAGE_ID>', + title: '<TITLE>', # optional + body: '<BODY>', # optional topics: [], # optional users: [], # optional targets: [], # optional - title: '<TITLE>', # optional - body: '<BODY>', # optional data: {}, # optional action: '<ACTION>', # optional image: '<ID1:ID2>', # optional @@ -30,6 +30,7 @@ result = messaging.update_push( scheduled_at: '2020-10-15T06:38:00.000+00:00', # optional content_available: false, # optional critical: false, # optional - priority: MessagePriority::NORMAL # optional + priority: MessagePriority::NORMAL, # optional + channel_id: '<CHANNEL_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/messaging/update-sms.md b/examples/2.3.x/server-ruby/examples/messaging/update-sms.md index 233ffb819..41e9827e4 100644 --- a/examples/2.3.x/server-ruby/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-ruby/examples/messaging/update-sms.md @@ -12,10 +12,10 @@ messaging = Messaging.new(client) result = messaging.update_sms( message_id: '<MESSAGE_ID>', + content: '<CONTENT>', # optional topics: [], # optional users: [], # optional targets: [], # optional - content: '<CONTENT>', # optional draft: false, # optional scheduled_at: '2020-10-15T06:38:00.000+00:00' # optional ) diff --git a/examples/2.3.x/server-ruby/examples/oauth2/introspect.md b/examples/2.3.x/server-ruby/examples/oauth2/introspect.md new file mode 100644 index 000000000..1ff233709 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/oauth2/introspect.md @@ -0,0 +1,19 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +oauth2 = Oauth2.new(client) + +result = oauth2.introspect( + token: '<TOKEN>', + token_type_hint: 'access_token', # optional + client_id: '<CLIENT_ID>', # optional + client_secret: '<CLIENT_SECRET>' # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-ruby/examples/organization/create-ephemeral-project-key.md index b37d17ba5..62814ac1d 100644 --- a/examples/2.3.x/server-ruby/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-ruby/examples/organization/create-ephemeral-project-key.md @@ -13,7 +13,7 @@ organization = Organization.new(client) result = organization.create_ephemeral_project_key( project_id: '<PROJECT_ID>', - scopes: [ProjectKeyScopes::PROJECT_READ], + scopes: [ProjectKeyScopes::USERS_READ], duration: 600 ) ``` diff --git a/examples/2.3.x/server-ruby/examples/organization/update-project-key.md b/examples/2.3.x/server-ruby/examples/organization/update-project-key.md index ee44ade53..2908cae52 100644 --- a/examples/2.3.x/server-ruby/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-ruby/examples/organization/update-project-key.md @@ -15,7 +15,7 @@ result = organization.update_project_key( project_id: '<PROJECT_ID>', key_id: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes::PROJECT_READ], + scopes: [ProjectKeyScopes::USERS_READ], expire: '2020-10-15T06:38:00.000+00:00' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-ruby/examples/project/create-ephemeral-key.md index 6f0d9b660..d7928fa5c 100644 --- a/examples/2.3.x/server-ruby/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-ruby/examples/project/create-ephemeral-key.md @@ -12,7 +12,7 @@ client = Client.new project = Project.new(client) result = project.create_ephemeral_key( - scopes: [ProjectKeyScopes::PROJECT_READ], + scopes: [ProjectKeyScopes::USERS_READ], duration: 600 ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/create-smtp-test.md b/examples/2.3.x/server-ruby/examples/project/create-smtp-test.md index 1e1d1eae0..348536387 100644 --- a/examples/2.3.x/server-ruby/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-ruby/examples/project/create-smtp-test.md @@ -11,6 +11,6 @@ client = Client.new project = Project.new(client) result = project.create_smtp_test( - emails: [] + emails: ["recipient@example.com"] ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-key.md b/examples/2.3.x/server-ruby/examples/project/update-key.md index b192315d7..992775bbf 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-key.md +++ b/examples/2.3.x/server-ruby/examples/project/update-key.md @@ -14,7 +14,7 @@ project = Project.new(client) result = project.update_key( key_id: '<KEY_ID>', name: '<NAME>', - scopes: [ProjectKeyScopes::PROJECT_READ], + scopes: [ProjectKeyScopes::USERS_READ], expire: '2020-10-15T06:38:00.000+00:00' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-labels.md b/examples/2.3.x/server-ruby/examples/project/update-labels.md index f57cec70e..a01667b9b 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-labels.md +++ b/examples/2.3.x/server-ruby/examples/project/update-labels.md @@ -11,6 +11,6 @@ client = Client.new project = Project.new(client) result = project.update_labels( - labels: [] + labels: ["production"] ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-auth-0.md index e8d11dbf3..6af0dc832 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-auth-0.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result = project.update_o_auth2_auth0( client_id: '<CLIENT_ID>', # optional client_secret: '<CLIENT_SECRET>', # optional endpoint: '<ENDPOINT>', # optional + prompt: [ProjectOAuth2Auth0Prompt::NONE], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-discord.md index 01bacd7cb..1e8409f5e 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-discord.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project.new(client) result = project.update_o_auth2_discord( client_id: '<CLIENT_ID>', # optional client_secret: '<CLIENT_SECRET>', # optional + prompt: [ProjectOAuth2DiscordPrompt::NONE], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-git-hub.md index e63370f78..d209a7b9e 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-git-hub.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project.new(client) result = project.update_o_auth2_git_hub( client_id: '<CLIENT_ID>', # optional client_secret: '<CLIENT_SECRET>', # optional + prompt: [ProjectOAuth2GitHubPrompt::SELECT_ACCOUNT], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-kakao.md index 53b6a10af..035810f71 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-kakao.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project.new(client) result = project.update_o_auth2_kakao( client_id: '<CLIENT_ID>', # optional client_secret: '<CLIENT_SECRET>', # optional + prompt: [ProjectOAuth2KakaoPrompt::NONE], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-microsoft.md index 0a5563f7a..b5aead55a 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-microsoft.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -14,6 +15,7 @@ result = project.update_o_auth2_microsoft( application_id: '<APPLICATION_ID>', # optional application_secret: '<APPLICATION_SECRET>', # optional tenant: '<TENANT>', # optional + prompt: [ProjectOAuth2MicrosoftPrompt::NONE], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-okta.md index 44716551f..87b6da358 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-okta.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -15,6 +16,7 @@ result = project.update_o_auth2_okta( client_secret: '<CLIENT_SECRET>', # optional domain: 'example.com', # optional authorization_server_id: '<AUTHORIZATION_SERVER_ID>', # optional + prompt: [ProjectOAuth2OktaPrompt::NONE], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-salesforce.md index f573693fb..b569cfa45 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-salesforce.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project.new(client) result = project.update_o_auth2_salesforce( customer_key: '<CUSTOMER_KEY>', # optional customer_secret: '<CUSTOMER_SECRET>', # optional + prompt: [ProjectOAuth2SalesforcePrompt::LOGIN], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..22b17c710 --- /dev/null +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +project = Project.new(client) + +result = project.update_o_auth2_webflow( + client_id: '<CLIENT_ID>', # optional + client_secret: '<CLIENT_SECRET>', # optional + enabled: false # optional +) +``` diff --git a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-zoho.md index 2fbd5fed3..7c7c190d9 100644 --- a/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-ruby/examples/project/update-o-auth-2-zoho.md @@ -2,6 +2,7 @@ require 'appwrite' include Appwrite +include Appwrite::Enums client = Client.new .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint @@ -13,6 +14,7 @@ project = Project.new(client) result = project.update_o_auth2_zoho( client_id: '<CLIENT_ID>', # optional client_secret: '<CLIENT_SECRET>', # optional + prompt: [ProjectOAuth2ZohoPrompt::CONSENT], # optional enabled: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/sites/list-frameworks.md b/examples/2.3.x/server-ruby/examples/sites/list-frameworks.md index a33303a27..7b8b8f56e 100644 --- a/examples/2.3.x/server-ruby/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-ruby/examples/sites/list-frameworks.md @@ -10,5 +10,7 @@ client = Client.new sites = Sites.new(client) -result = sites.list_frameworks() +result = sites.list_frameworks( + total: false # optional +) ``` diff --git a/examples/2.3.x/server-ruby/examples/sites/list-specifications.md b/examples/2.3.x/server-ruby/examples/sites/list-specifications.md index 9ed8d0018..1f816b906 100644 --- a/examples/2.3.x/server-ruby/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-ruby/examples/sites/list-specifications.md @@ -11,6 +11,7 @@ client = Client.new sites = Sites.new(client) result = sites.list_specifications( - type: 'runtimes' # optional + type: 'runtimes', # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/tablesdb/create-index.md b/examples/2.3.x/server-ruby/examples/tablesdb/create-index.md index a0453818c..d1e2dba79 100644 --- a/examples/2.3.x/server-ruby/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-ruby/examples/tablesdb/create-index.md @@ -16,7 +16,7 @@ result = tables_db.create_index( table_id: '<TABLE_ID>', key: '<KEY>', type: TablesDBIndexType::KEY, - columns: [], + columns: ["username"], orders: [OrderBy::ASC], # optional lengths: [] # optional ) diff --git a/examples/2.3.x/server-ruby/examples/tablesdb/create-rows.md b/examples/2.3.x/server-ruby/examples/tablesdb/create-rows.md index 2fc8a2b16..9ff8dd788 100644 --- a/examples/2.3.x/server-ruby/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-ruby/examples/tablesdb/create-rows.md @@ -13,7 +13,16 @@ tables_db = TablesDB.new(client) result = tables_db.create_rows( database_id: '<DATABASE_ID>', table_id: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-ruby/examples/tablesdb/delete-rows.md index 69ab29e8a..41d6acdbb 100644 --- a/examples/2.3.x/server-ruby/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-ruby/examples/tablesdb/delete-rows.md @@ -13,7 +13,7 @@ tables_db = TablesDB.new(client) result = tables_db.delete_rows( database_id: '<DATABASE_ID>', table_id: '<TABLE_ID>', - queries: [], # optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], # optional transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-ruby/examples/tablesdb/list-transactions.md index f8800dd78..de6a23899 100644 --- a/examples/2.3.x/server-ruby/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-ruby/examples/tablesdb/list-transactions.md @@ -11,6 +11,7 @@ client = Client.new tables_db = TablesDB.new(client) result = tables_db.list_transactions( - queries: [] # optional + queries: [], # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-ruby/examples/tablesdb/upsert-rows.md index d450971f9..9d5cce807 100644 --- a/examples/2.3.x/server-ruby/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-ruby/examples/tablesdb/upsert-rows.md @@ -13,7 +13,16 @@ tables_db = TablesDB.new(client) result = tables_db.upsert_rows( database_id: '<DATABASE_ID>', table_id: '<TABLE_ID>', - rows: [], + rows: [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/teams/create-membership.md b/examples/2.3.x/server-ruby/examples/teams/create-membership.md index 7df704e71..b3fe386d0 100644 --- a/examples/2.3.x/server-ruby/examples/teams/create-membership.md +++ b/examples/2.3.x/server-ruby/examples/teams/create-membership.md @@ -12,7 +12,7 @@ teams = Teams.new(client) result = teams.create_membership( team_id: '<TEAM_ID>', - roles: [], + roles: ["editor"], email: 'email@example.com', # optional user_id: '<USER_ID>', # optional phone: '+12065550100', # optional diff --git a/examples/2.3.x/server-ruby/examples/teams/update-membership.md b/examples/2.3.x/server-ruby/examples/teams/update-membership.md index f94e3879e..898f7eae3 100644 --- a/examples/2.3.x/server-ruby/examples/teams/update-membership.md +++ b/examples/2.3.x/server-ruby/examples/teams/update-membership.md @@ -13,6 +13,6 @@ teams = Teams.new(client) result = teams.update_membership( team_id: '<TEAM_ID>', membership_id: '<MEMBERSHIP_ID>', - roles: [] + roles: ["editor"] ) ``` diff --git a/examples/2.3.x/server-ruby/examples/users/update-labels.md b/examples/2.3.x/server-ruby/examples/users/update-labels.md index 0110cb9e5..bdad6d049 100644 --- a/examples/2.3.x/server-ruby/examples/users/update-labels.md +++ b/examples/2.3.x/server-ruby/examples/users/update-labels.md @@ -12,6 +12,6 @@ users = Users.new(client) result = users.update_labels( user_id: '<USER_ID>', - labels: [] + labels: ["subscriber"] ) ``` diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-ruby/examples/vectorsdb/create-collection.md index b449f541e..4b16940b1 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/create-collection.md @@ -16,7 +16,7 @@ result = vectors_db.create_collection( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, + dimension: 4, permissions: [Permission.read(Role.any())], # optional document_security: false, # optional enabled: false # optional diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-ruby/examples/vectorsdb/create-documents.md index 9f3a4d4d9..3a89c1ee9 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/create-documents.md @@ -13,7 +13,20 @@ vectors_db = VectorsDB.new(client) result = vectors_db.create_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/create-index.md b/examples/2.3.x/server-ruby/examples/vectorsdb/create-index.md index d7880ab2c..60d2624a8 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/create-index.md @@ -16,7 +16,7 @@ result = vectors_db.create_index( collection_id: '<COLLECTION_ID>', key: '<KEY>', type: VectorsDBIndexType::HNSW_EUCLIDEAN, - attributes: [], + attributes: ["embeddings"], orders: [OrderBy::ASC], # optional lengths: [] # optional ) diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-ruby/examples/vectorsdb/create-operations.md index 6817930bb..23e14d1ce 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/create-operations.md @@ -19,7 +19,15 @@ result = vectors_db.create_operations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ] # optional diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-ruby/examples/vectorsdb/delete-documents.md index bb1173a38..a050c8c37 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/delete-documents.md @@ -13,7 +13,7 @@ vectors_db = VectorsDB.new(client) result = vectors_db.delete_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - queries: [], # optional + queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], # optional transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-ruby/examples/vectorsdb/list-transactions.md index 9c2182da6..2db8f34b4 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/list-transactions.md @@ -11,6 +11,7 @@ client = Client.new vectors_db = VectorsDB.new(client) result = vectors_db.list_transactions( - queries: [] # optional + queries: [], # optional + total: false # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-ruby/examples/vectorsdb/update-collection.md index 0dfdac139..eee8c9753 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/update-collection.md @@ -16,7 +16,7 @@ result = vectors_db.update_collection( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', name: '<NAME>', - dimension: 1, # optional + dimension: 4, # optional permissions: [Permission.read(Role.any())], # optional document_security: false, # optional enabled: false # optional diff --git a/examples/2.3.x/server-ruby/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-ruby/examples/vectorsdb/upsert-documents.md index d737f1072..e1fea6cc6 100644 --- a/examples/2.3.x/server-ruby/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-ruby/examples/vectorsdb/upsert-documents.md @@ -13,7 +13,20 @@ vectors_db = VectorsDB.new(client) result = vectors_db.upsert_documents( database_id: '<DATABASE_ID>', collection_id: '<COLLECTION_ID>', - documents: [], + documents: [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], transaction_id: '<TRANSACTION_ID>' # optional ) ``` diff --git a/examples/2.3.x/server-ruby/examples/webhooks/create.md b/examples/2.3.x/server-ruby/examples/webhooks/create.md index 9f231f7b1..6d7544242 100644 --- a/examples/2.3.x/server-ruby/examples/webhooks/create.md +++ b/examples/2.3.x/server-ruby/examples/webhooks/create.md @@ -14,7 +14,7 @@ result = webhooks.create( webhook_id: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', - events: [], + events: ["users.*.create"], enabled: false, # optional tls: false, # optional auth_username: '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/server-ruby/examples/webhooks/update.md b/examples/2.3.x/server-ruby/examples/webhooks/update.md index ad3fa894d..859d15f22 100644 --- a/examples/2.3.x/server-ruby/examples/webhooks/update.md +++ b/examples/2.3.x/server-ruby/examples/webhooks/update.md @@ -14,7 +14,7 @@ result = webhooks.update( webhook_id: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', - events: [], + events: ["users.*.create"], enabled: false, # optional tls: false, # optional auth_username: '<AUTH_USERNAME>', # optional diff --git a/examples/2.3.x/server-rust/examples/account/create-email-password-session.md b/examples/2.3.x/server-rust/examples/account/create-email-password-session.md index ac72db12b..644ba25b0 100644 --- a/examples/2.3.x/server-rust/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-rust/examples/account/create-email-password-session.md @@ -13,7 +13,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = account.create_email_password_session( "email@example.com", - "password" + "password", + Some(60) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/account/delete-sessions.md b/examples/2.3.x/server-rust/examples/account/delete-sessions.md index ee557af60..cc496e452 100644 --- a/examples/2.3.x/server-rust/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-rust/examples/account/delete-sessions.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let account = Account::new(&client); - account.delete_sessions().await?; + account.delete_sessions( + Some(false) // optional + ).await?; Ok(()) } diff --git a/examples/2.3.x/server-rust/examples/account/list-sessions.md b/examples/2.3.x/server-rust/examples/account/list-sessions.md index 5a2af5974..bd2ac05c4 100644 --- a/examples/2.3.x/server-rust/examples/account/list-sessions.md +++ b/examples/2.3.x/server-rust/examples/account/list-sessions.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let account = Account::new(&client); - let result = account.list_sessions().await?; + let result = account.list_sessions( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/analytics/create-event.md b/examples/2.3.x/server-rust/examples/analytics/create-event.md new file mode 100644 index 000000000..44eaf4687 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/create-event.md @@ -0,0 +1,34 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_session(""); // The user session to authenticate with + + let analytics = Analytics::new(&client); + + let result = analytics.create_event( + "<PROPERTY_ID>", + "<NAME>", + "https://example.com", + Some("<DOMAIN>"), // optional + Some("<REFERRER>"), // optional + Some(0), // optional + Some("<SESSION_HASH>"), // optional + Some(0), // optional + Some(0), // optional + Some(vec![]), // optional + Some("<USER_ID>"), // optional + Some("<IP>"), // optional + Some("<USER_AGENT>") // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/create-property.md b/examples/2.3.x/server-rust/examples/analytics/create-property.md new file mode 100644 index 000000000..edee022df --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/create-property.md @@ -0,0 +1,28 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + let result = analytics.create_property( + "<PROPERTY_ID>", + "<NAME>", + Some("<DOMAIN>"), // optional + Some("<TIMEZONE>"), // optional + Some(false), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/delete-property.md b/examples/2.3.x/server-rust/examples/analytics/delete-property.md new file mode 100644 index 000000000..74c8625cf --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/delete-property.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + analytics.delete_property( + "<PROPERTY_ID>" + ).await?; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/get-property.md b/examples/2.3.x/server-rust/examples/analytics/get-property.md new file mode 100644 index 000000000..31a33abf6 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/get-property.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + let result = analytics.get_property( + "<PROPERTY_ID>" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/list-metrics.md b/examples/2.3.x/server-rust/examples/analytics/list-metrics.md new file mode 100644 index 000000000..856c0eae1 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/list-metrics.md @@ -0,0 +1,29 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + let result = analytics.list_metrics( + "<PROPERTY_ID>", + Some(vec![]), // optional + Some(appwrite::enums::AnalyticsInterval::OneHour), // optional + Some(vec![appwrite::enums::AnalyticsDimension::Country]), // optional + Some("<DATE_RANGE>"), // optional + Some("2020-10-15T06:38:00.000+00:00"), // optional + Some("2020-10-15T06:38:00.000+00:00"), // optional + Some(1) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/list-properties.md b/examples/2.3.x/server-rust/examples/analytics/list-properties.md new file mode 100644 index 000000000..aba3d66db --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/list-properties.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + let result = analytics.list_properties( + Some(vec![]), // optional + Some("<SEARCH>"), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/analytics/update-property.md b/examples/2.3.x/server-rust/examples/analytics/update-property.md new file mode 100644 index 000000000..8bf52a751 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/analytics/update-property.md @@ -0,0 +1,28 @@ +```rust +use appwrite::Client; +use appwrite::services::Analytics; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let analytics = Analytics::new(&client); + + let result = analytics.update_property( + "<PROPERTY_ID>", + Some("<NAME>"), // optional + Some("<DOMAIN>"), // optional + Some("<TIMEZONE>"), // optional + Some(false), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/avatars/delete-photo.md b/examples/2.3.x/server-rust/examples/avatars/delete-photo.md new file mode 100644 index 000000000..899ed00c5 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/avatars/delete-photo.md @@ -0,0 +1,18 @@ +```rust +use appwrite::Client; +use appwrite::services::Avatars; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_session(""); // The user session to authenticate with + + let avatars = Avatars::new(&client); + + avatars.delete_photo().await?; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/avatars/update-photo.md b/examples/2.3.x/server-rust/examples/avatars/update-photo.md new file mode 100644 index 000000000..f5c13e67f --- /dev/null +++ b/examples/2.3.x/server-rust/examples/avatars/update-photo.md @@ -0,0 +1,25 @@ +```rust +use appwrite::Client; +use appwrite::services::Avatars; +use appwrite::InputFile; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_session(""); // The user session to authenticate with + + let avatars = Avatars::new(&client); + + let file = InputFile::from_path("path/to/file.png", None).await?; + + let result = avatars.update_photo( + file + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/databases/create-documents.md b/examples/2.3.x/server-rust/examples/databases/create-documents.md index f46917840..249a02f48 100644 --- a/examples/2.3.x/server-rust/examples/databases/create-documents.md +++ b/examples/2.3.x/server-rust/examples/databases/create-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = databases.create_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/databases/create-index.md b/examples/2.3.x/server-rust/examples/databases/create-index.md index b7389d9a5..8e7aeef5c 100644 --- a/examples/2.3.x/server-rust/examples/databases/create-index.md +++ b/examples/2.3.x/server-rust/examples/databases/create-index.md @@ -16,7 +16,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<COLLECTION_ID>", "<KEY>", appwrite::enums::DatabasesIndexType::Key, - vec![], + vec!["username".into()], Some(vec![appwrite::enums::OrderBy::Asc]), // optional Some(vec![]) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/databases/delete-documents.md b/examples/2.3.x/server-rust/examples/databases/delete-documents.md index 2d75876c5..7642b783f 100644 --- a/examples/2.3.x/server-rust/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-rust/examples/databases/delete-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = databases.delete_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - Some(vec![]), // optional + Some(vec!["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}".into()]), // optional Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/databases/list-transactions.md b/examples/2.3.x/server-rust/examples/databases/list-transactions.md index 6570a83a7..94147a644 100644 --- a/examples/2.3.x/server-rust/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-rust/examples/databases/list-transactions.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let databases = Databases::new(&client); let result = databases.list_transactions( - Some(vec![]) // optional + Some(vec![]), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/databases/upsert-documents.md b/examples/2.3.x/server-rust/examples/databases/upsert-documents.md index 6ef035f6e..e37391af8 100644 --- a/examples/2.3.x/server-rust/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-rust/examples/databases/upsert-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = databases.upsert_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/documentsdb/create-documents.md b/examples/2.3.x/server-rust/examples/documentsdb/create-documents.md index 1c60d5cd5..5154b92e4 100644 --- a/examples/2.3.x/server-rust/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-rust/examples/documentsdb/create-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = documents_db.create_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/documentsdb/create-index.md b/examples/2.3.x/server-rust/examples/documentsdb/create-index.md index 2b7534c5b..3ace2953a 100644 --- a/examples/2.3.x/server-rust/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-rust/examples/documentsdb/create-index.md @@ -16,7 +16,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<COLLECTION_ID>", "<KEY>", appwrite::enums::DocumentsDBIndexType::Key, - vec![], + vec!["username".into()], Some(vec![appwrite::enums::OrderBy::Asc]), // optional Some(vec![]) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-rust/examples/documentsdb/delete-documents.md index be2ad02d6..f2807ca55 100644 --- a/examples/2.3.x/server-rust/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-rust/examples/documentsdb/delete-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = documents_db.delete_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - Some(vec![]), // optional + Some(vec!["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}".into()]), // optional Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-rust/examples/documentsdb/list-transactions.md index 9f387f633..2029d4ce3 100644 --- a/examples/2.3.x/server-rust/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-rust/examples/documentsdb/list-transactions.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let documents_db = DocumentsDB::new(&client); let result = documents_db.list_transactions( - Some(vec![]) // optional + Some(vec![]), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-rust/examples/documentsdb/upsert-documents.md index d6ba16543..40e58ed42 100644 --- a/examples/2.3.x/server-rust/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-rust/examples/documentsdb/upsert-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = documents_db.upsert_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-rust/examples/embeddings/create-text-embeddings.md index 8f945bb4c..de4f2e508 100644 --- a/examples/2.3.x/server-rust/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-rust/examples/embeddings/create-text-embeddings.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let embeddings = Embeddings::new(&client); let result = embeddings.create_text_embeddings( - vec![], + vec!["Appwrite helps developers build applications.".into(), "Find documents with semantic search.".into()], Some(appwrite::enums::EmbeddingModel::NomicEmbedText) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/functions/list-runtimes.md b/examples/2.3.x/server-rust/examples/functions/list-runtimes.md index abeffc758..01b5e11ca 100644 --- a/examples/2.3.x/server-rust/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-rust/examples/functions/list-runtimes.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let functions = Functions::new(&client); - let result = functions.list_runtimes().await?; + let result = functions.list_runtimes( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/functions/list-specifications.md b/examples/2.3.x/server-rust/examples/functions/list-specifications.md index 57245ba6d..cbce65062 100644 --- a/examples/2.3.x/server-rust/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-rust/examples/functions/list-specifications.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let functions = Functions::new(&client); let result = functions.list_specifications( - Some("runtimes") // optional + Some("runtimes"), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-codes.md b/examples/2.3.x/server-rust/examples/locale/list-codes.md index f920bf615..6073c9d4d 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-codes.md +++ b/examples/2.3.x/server-rust/examples/locale/list-codes.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_codes().await?; + let result = locale.list_codes( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-continents.md b/examples/2.3.x/server-rust/examples/locale/list-continents.md index b4f8d46ba..a995768a7 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-continents.md +++ b/examples/2.3.x/server-rust/examples/locale/list-continents.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_continents().await?; + let result = locale.list_continents( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-countries-eu.md b/examples/2.3.x/server-rust/examples/locale/list-countries-eu.md index c959aa1ca..0f6bdd78f 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-rust/examples/locale/list-countries-eu.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_countries_eu().await?; + let result = locale.list_countries_eu( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-countries-phones.md b/examples/2.3.x/server-rust/examples/locale/list-countries-phones.md index 6c0238bfc..9a94928df 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-rust/examples/locale/list-countries-phones.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_countries_phones().await?; + let result = locale.list_countries_phones( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-countries.md b/examples/2.3.x/server-rust/examples/locale/list-countries.md index bd8f795e0..980168fe7 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-countries.md +++ b/examples/2.3.x/server-rust/examples/locale/list-countries.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_countries().await?; + let result = locale.list_countries( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-currencies.md b/examples/2.3.x/server-rust/examples/locale/list-currencies.md index b382da677..c9d241480 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-rust/examples/locale/list-currencies.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_currencies().await?; + let result = locale.list_currencies( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/locale/list-languages.md b/examples/2.3.x/server-rust/examples/locale/list-languages.md index fb7c78a53..2fad70d21 100644 --- a/examples/2.3.x/server-rust/examples/locale/list-languages.md +++ b/examples/2.3.x/server-rust/examples/locale/list-languages.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let locale = Locale::new(&client); - let result = locale.list_languages().await?; + let result = locale.list_languages( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/messaging/create-push.md b/examples/2.3.x/server-rust/examples/messaging/create-push.md index 7f93d6bff..ea3c679e0 100644 --- a/examples/2.3.x/server-rust/examples/messaging/create-push.md +++ b/examples/2.3.x/server-rust/examples/messaging/create-push.md @@ -30,7 +30,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("2020-10-15T06:38:00.000+00:00"), // optional Some(false), // optional Some(false), // optional - Some(appwrite::enums::MessagePriority::Normal) // optional + Some(appwrite::enums::MessagePriority::Normal), // optional + Some("<CHANNEL_ID>") // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/messaging/update-email.md b/examples/2.3.x/server-rust/examples/messaging/update-email.md index a7644b293..efb041152 100644 --- a/examples/2.3.x/server-rust/examples/messaging/update-email.md +++ b/examples/2.3.x/server-rust/examples/messaging/update-email.md @@ -13,19 +13,19 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = messaging.update_email( "<MESSAGE_ID>", + Some("<SUBJECT>"), // optional + Some("<CONTENT>"), // optional + Some(vec![]), // optional Some(vec![]), // optional Some(vec![]), // optional Some(vec![]), // optional - Some("<SUBJECT>"), // optional - Some("<CONTENT>"), // optional - Some(false), // optional - Some(false), // optional Some(vec![]), // optional Some(vec![]), // optional Some("email@example.com"), // optional Some("<REPLY_TO_NAME>"), // optional - Some("2020-10-15T06:38:00.000+00:00"), // optional - Some(vec![]) // optional + Some(false), // optional + Some(false), // optional + Some("2020-10-15T06:38:00.000+00:00") // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/messaging/update-push.md b/examples/2.3.x/server-rust/examples/messaging/update-push.md index 00fdc77c0..84aef56e9 100644 --- a/examples/2.3.x/server-rust/examples/messaging/update-push.md +++ b/examples/2.3.x/server-rust/examples/messaging/update-push.md @@ -13,11 +13,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = messaging.update_push( "<MESSAGE_ID>", + Some("<TITLE>"), // optional + Some("<BODY>"), // optional Some(vec![]), // optional Some(vec![]), // optional Some(vec![]), // optional - Some("<TITLE>"), // optional - Some("<BODY>"), // optional Some(serde_json::json!({})), // optional Some("<ACTION>"), // optional Some("<ID1:ID2>"), // optional @@ -30,7 +30,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("2020-10-15T06:38:00.000+00:00"), // optional Some(false), // optional Some(false), // optional - Some(appwrite::enums::MessagePriority::Normal) // optional + Some(appwrite::enums::MessagePriority::Normal), // optional + Some("<CHANNEL_ID>") // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/messaging/update-sms.md b/examples/2.3.x/server-rust/examples/messaging/update-sms.md index ede80793e..a38cf6564 100644 --- a/examples/2.3.x/server-rust/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-rust/examples/messaging/update-sms.md @@ -13,10 +13,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = messaging.update_sms( "<MESSAGE_ID>", + Some("<CONTENT>"), // optional Some(vec![]), // optional Some(vec![]), // optional Some(vec![]), // optional - Some("<CONTENT>"), // optional Some(false), // optional Some("2020-10-15T06:38:00.000+00:00") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/oauth2/introspect.md b/examples/2.3.x/server-rust/examples/oauth2/introspect.md new file mode 100644 index 000000000..e43d646f5 --- /dev/null +++ b/examples/2.3.x/server-rust/examples/oauth2/introspect.md @@ -0,0 +1,25 @@ +```rust +use appwrite::Client; +use appwrite::services::Oauth2; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let oauth2 = Oauth2::new(&client); + + let result = oauth2.introspect( + "<TOKEN>", + Some("access_token"), // optional + Some("<CLIENT_ID>"), // optional + Some("<CLIENT_SECRET>") // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-rust/examples/organization/create-ephemeral-project-key.md index b96765ba5..b7655a9f1 100644 --- a/examples/2.3.x/server-rust/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-rust/examples/organization/create-ephemeral-project-key.md @@ -13,7 +13,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = organization.create_ephemeral_project_key( "<PROJECT_ID>", - vec![appwrite::enums::ProjectKeyScopes::ProjectRead], + vec![appwrite::enums::ProjectKeyScopes::UsersRead], 600 ).await?; diff --git a/examples/2.3.x/server-rust/examples/organization/update-project-key.md b/examples/2.3.x/server-rust/examples/organization/update-project-key.md index 9da5f619e..963624702 100644 --- a/examples/2.3.x/server-rust/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-rust/examples/organization/update-project-key.md @@ -15,7 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<PROJECT_ID>", "<KEY_ID>", "<NAME>", - vec![appwrite::enums::ProjectKeyScopes::ProjectRead], + vec![appwrite::enums::ProjectKeyScopes::UsersRead], Some("2020-10-15T06:38:00.000+00:00") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-rust/examples/project/create-ephemeral-key.md index 93d1dc4a1..357e4d6f7 100644 --- a/examples/2.3.x/server-rust/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-rust/examples/project/create-ephemeral-key.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let project = Project::new(&client); let result = project.create_ephemeral_key( - vec![appwrite::enums::ProjectKeyScopes::ProjectRead], + vec![appwrite::enums::ProjectKeyScopes::UsersRead], 600 ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/create-smtp-test.md b/examples/2.3.x/server-rust/examples/project/create-smtp-test.md index cb5f2ceda..a62073f55 100644 --- a/examples/2.3.x/server-rust/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-rust/examples/project/create-smtp-test.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let project = Project::new(&client); project.create_smtp_test( - vec![] + vec!["recipient@example.com".into()] ).await?; Ok(()) diff --git a/examples/2.3.x/server-rust/examples/project/update-key.md b/examples/2.3.x/server-rust/examples/project/update-key.md index 12b0282ab..1c6148a60 100644 --- a/examples/2.3.x/server-rust/examples/project/update-key.md +++ b/examples/2.3.x/server-rust/examples/project/update-key.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_key( "<KEY_ID>", "<NAME>", - vec![appwrite::enums::ProjectKeyScopes::ProjectRead], + vec![appwrite::enums::ProjectKeyScopes::UsersRead], Some("2020-10-15T06:38:00.000+00:00") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-labels.md b/examples/2.3.x/server-rust/examples/project/update-labels.md index 541993e9a..e9b0ea4e1 100644 --- a/examples/2.3.x/server-rust/examples/project/update-labels.md +++ b/examples/2.3.x/server-rust/examples/project/update-labels.md @@ -12,7 +12,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let project = Project::new(&client); let result = project.update_labels( - vec![] + vec!["production".into()] ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-auth-0.md index 811a8c8fc..4c97b6b7f 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-auth-0.md @@ -15,6 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<CLIENT_ID>"), // optional Some("<CLIENT_SECRET>"), // optional Some("<ENDPOINT>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2Auth0Prompt::None]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-discord.md index 783c9b8ab..bdbb5dbf5 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-discord.md @@ -14,6 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_o_auth2_discord( Some("<CLIENT_ID>"), // optional Some("<CLIENT_SECRET>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2DiscordPrompt::None]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-git-hub.md index be26e71dd..08fc31ac9 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-git-hub.md @@ -14,6 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_o_auth2_git_hub( Some("<CLIENT_ID>"), // optional Some("<CLIENT_SECRET>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2GitHubPrompt::SelectAccount]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-kakao.md index a4f075cc9..f96eb6e9d 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-kakao.md @@ -14,6 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_o_auth2_kakao( Some("<CLIENT_ID>"), // optional Some("<CLIENT_SECRET>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2KakaoPrompt::None]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-microsoft.md index f32216e4b..aa7026781 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-microsoft.md @@ -15,6 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<APPLICATION_ID>"), // optional Some("<APPLICATION_SECRET>"), // optional Some("<TENANT>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2MicrosoftPrompt::None]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-okta.md index 527310412..086eeaab0 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-okta.md @@ -16,6 +16,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<CLIENT_SECRET>"), // optional Some("example.com"), // optional Some("<AUTHORIZATION_SERVER_ID>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2OktaPrompt::None]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-salesforce.md index dd41c0a9b..9e21c9c6b 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-salesforce.md @@ -14,6 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_o_auth2_salesforce( Some("<CUSTOMER_KEY>"), // optional Some("<CUSTOMER_SECRET>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2SalesforcePrompt::Login]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..d0df8eaea --- /dev/null +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Project; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let project = Project::new(&client); + + let result = project.update_o_auth2_webflow( + Some("<CLIENT_ID>"), // optional + Some("<CLIENT_SECRET>"), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-zoho.md index 62ac858e2..34e919748 100644 --- a/examples/2.3.x/server-rust/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-rust/examples/project/update-o-auth-2-zoho.md @@ -14,6 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = project.update_o_auth2_zoho( Some("<CLIENT_ID>"), // optional Some("<CLIENT_SECRET>"), // optional + Some(vec![appwrite::enums::ProjectOAuth2ZohoPrompt::Consent]), // optional Some(false) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/sites/list-frameworks.md b/examples/2.3.x/server-rust/examples/sites/list-frameworks.md index 1252124c9..4dce7eafe 100644 --- a/examples/2.3.x/server-rust/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-rust/examples/sites/list-frameworks.md @@ -11,7 +11,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let sites = Sites::new(&client); - let result = sites.list_frameworks().await?; + let result = sites.list_frameworks( + Some(false) // optional + ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/sites/list-specifications.md b/examples/2.3.x/server-rust/examples/sites/list-specifications.md index 4736fb7ca..4addba63c 100644 --- a/examples/2.3.x/server-rust/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-rust/examples/sites/list-specifications.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let sites = Sites::new(&client); let result = sites.list_specifications( - Some("runtimes") // optional + Some("runtimes"), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/tablesdb/create-index.md b/examples/2.3.x/server-rust/examples/tablesdb/create-index.md index 409d88ddf..725a77162 100644 --- a/examples/2.3.x/server-rust/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-rust/examples/tablesdb/create-index.md @@ -16,7 +16,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<TABLE_ID>", "<KEY>", appwrite::enums::TablesDBIndexType::Key, - vec![], + vec!["username".into()], Some(vec![appwrite::enums::OrderBy::Asc]), // optional Some(vec![]) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/tablesdb/create-rows.md b/examples/2.3.x/server-rust/examples/tablesdb/create-rows.md index b5722c489..86e0b5c4e 100644 --- a/examples/2.3.x/server-rust/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-rust/examples/tablesdb/create-rows.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = tables_db.create_rows( "<DATABASE_ID>", "<TABLE_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-rust/examples/tablesdb/delete-rows.md index 92520ae1c..e1fe9bcf8 100644 --- a/examples/2.3.x/server-rust/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-rust/examples/tablesdb/delete-rows.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = tables_db.delete_rows( "<DATABASE_ID>", "<TABLE_ID>", - Some(vec![]), // optional + Some(vec!["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}".into()]), // optional Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-rust/examples/tablesdb/list-transactions.md index 047974237..914494116 100644 --- a/examples/2.3.x/server-rust/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-rust/examples/tablesdb/list-transactions.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let tables_db = TablesDB::new(&client); let result = tables_db.list_transactions( - Some(vec![]) // optional + Some(vec![]), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-rust/examples/tablesdb/upsert-rows.md index ba84a600a..94e26a96d 100644 --- a/examples/2.3.x/server-rust/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-rust/examples/tablesdb/upsert-rows.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = tables_db.upsert_rows( "<DATABASE_ID>", "<TABLE_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","username":"walter.obrien","email":"walter.obrien@example.com","fullName":"Walter O'Brien","age":30,"isAdmin":false})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/teams/create-membership.md b/examples/2.3.x/server-rust/examples/teams/create-membership.md index 5366d5e28..e1dffea03 100644 --- a/examples/2.3.x/server-rust/examples/teams/create-membership.md +++ b/examples/2.3.x/server-rust/examples/teams/create-membership.md @@ -13,7 +13,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = teams.create_membership( "<TEAM_ID>", - vec![], + vec!["editor".into()], Some("email@example.com"), // optional Some("<USER_ID>"), // optional Some("+12065550100"), // optional diff --git a/examples/2.3.x/server-rust/examples/teams/update-membership.md b/examples/2.3.x/server-rust/examples/teams/update-membership.md index 6c6d0d792..512671a40 100644 --- a/examples/2.3.x/server-rust/examples/teams/update-membership.md +++ b/examples/2.3.x/server-rust/examples/teams/update-membership.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = teams.update_membership( "<TEAM_ID>", "<MEMBERSHIP_ID>", - vec![] + vec!["editor".into()] ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/users/update-labels.md b/examples/2.3.x/server-rust/examples/users/update-labels.md index 00922e3c2..9305ebbcf 100644 --- a/examples/2.3.x/server-rust/examples/users/update-labels.md +++ b/examples/2.3.x/server-rust/examples/users/update-labels.md @@ -13,7 +13,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = users.update_labels( "<USER_ID>", - vec![] + vec!["subscriber".into()] ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-rust/examples/vectorsdb/create-collection.md index 101028800..f539c408b 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/create-collection.md @@ -17,7 +17,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<DATABASE_ID>", "<COLLECTION_ID>", "<NAME>", - 1, + 4, Some(vec![Permission::read(Role::any()).to_string()]), // optional Some(false), // optional Some(false) // optional diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-rust/examples/vectorsdb/create-documents.md index d2aff1f09..b8c30b63e 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/create-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = vectors_db.create_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"name":"First document"}})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/create-index.md b/examples/2.3.x/server-rust/examples/vectorsdb/create-index.md index 02d30e230..f686c4e3a 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/create-index.md @@ -16,7 +16,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<COLLECTION_ID>", "<KEY>", appwrite::enums::VectorsDBIndexType::HnswEuclidean, - vec![], + vec!["embeddings".into()], Some(vec![appwrite::enums::OrderBy::Asc]), // optional Some(vec![]) // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-rust/examples/vectorsdb/create-operations.md index cc1aaca69..bc8db2b1a 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/create-operations.md @@ -13,7 +13,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = vectors_db.create_operations( "<TRANSACTION_ID>", - Some(vec![serde_json::json!({"action":"create","databaseId":"<DATABASE_ID>","collectionId":"<COLLECTION_ID>","documentId":"<DOCUMENT_ID>","data":{"name":"Walter O'Brien"}})]) // optional + Some(vec![serde_json::json!({"action":"create","databaseId":"<DATABASE_ID>","collectionId":"<COLLECTION_ID>","documentId":"<DOCUMENT_ID>","data":{"embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"name":"First document"}}})]) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-rust/examples/vectorsdb/delete-documents.md index a69a6a7eb..fc8081965 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/delete-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = vectors_db.delete_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - Some(vec![]), // optional + Some(vec!["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}".into()]), // optional Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-rust/examples/vectorsdb/list-transactions.md index 214670d44..b8eb22eec 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/list-transactions.md @@ -12,7 +12,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let vectors_db = VectorsDB::new(&client); let result = vectors_db.list_transactions( - Some(vec![]) // optional + Some(vec![]), // optional + Some(false) // optional ).await?; let _ = result; diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-rust/examples/vectorsdb/update-collection.md index 86309ba68..4256276ef 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/update-collection.md @@ -17,7 +17,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<DATABASE_ID>", "<COLLECTION_ID>", "<NAME>", - Some(1), // optional + Some(4), // optional Some(vec![Permission::read(Role::any()).to_string()]), // optional Some(false), // optional Some(false) // optional diff --git a/examples/2.3.x/server-rust/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-rust/examples/vectorsdb/upsert-documents.md index c55611852..5f120e91d 100644 --- a/examples/2.3.x/server-rust/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-rust/examples/vectorsdb/upsert-documents.md @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let result = vectors_db.upsert_documents( "<DATABASE_ID>", "<COLLECTION_ID>", - vec![], + vec![serde_json::json!({"$id":"example1","embeddings":[0.12,-0.55,0.88,1.02],"metadata":{"name":"First document"}})], Some("<TRANSACTION_ID>") // optional ).await?; diff --git a/examples/2.3.x/server-rust/examples/webhooks/create.md b/examples/2.3.x/server-rust/examples/webhooks/create.md index a14a6c1a5..2862ee9c5 100644 --- a/examples/2.3.x/server-rust/examples/webhooks/create.md +++ b/examples/2.3.x/server-rust/examples/webhooks/create.md @@ -15,7 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<WEBHOOK_ID>", "https://example.com/webhook", "<NAME>", - vec![], + vec!["users.*.create".into()], Some(false), // optional Some(false), // optional Some("<AUTH_USERNAME>"), // optional diff --git a/examples/2.3.x/server-rust/examples/webhooks/update.md b/examples/2.3.x/server-rust/examples/webhooks/update.md index 73d636ded..407ea251b 100644 --- a/examples/2.3.x/server-rust/examples/webhooks/update.md +++ b/examples/2.3.x/server-rust/examples/webhooks/update.md @@ -15,7 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { "<WEBHOOK_ID>", "<NAME>", "https://example.com/webhook", - vec![], + vec!["users.*.create".into()], Some(false), // optional Some(false), // optional Some("<AUTH_USERNAME>"), // optional diff --git a/examples/2.3.x/server-swift/examples/account/create-email-password-session.md b/examples/2.3.x/server-swift/examples/account/create-email-password-session.md index d3a5acf12..494e8204d 100644 --- a/examples/2.3.x/server-swift/examples/account/create-email-password-session.md +++ b/examples/2.3.x/server-swift/examples/account/create-email-password-session.md @@ -10,7 +10,8 @@ let account = Account(client) let session = try await account.createEmailPasswordSession( email: "email@example.com", - password: "password" + password: "password", + duration: 60 // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/account/delete-sessions.md b/examples/2.3.x/server-swift/examples/account/delete-sessions.md index 23d87c694..b23f5cbd3 100644 --- a/examples/2.3.x/server-swift/examples/account/delete-sessions.md +++ b/examples/2.3.x/server-swift/examples/account/delete-sessions.md @@ -8,6 +8,8 @@ let client = Client() let account = Account(client) -let result = try await account.deleteSessions() +let result = try await account.deleteSessions( + current: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/account/list-sessions.md b/examples/2.3.x/server-swift/examples/account/list-sessions.md index 7e263e7d2..36c789ae9 100644 --- a/examples/2.3.x/server-swift/examples/account/list-sessions.md +++ b/examples/2.3.x/server-swift/examples/account/list-sessions.md @@ -8,6 +8,8 @@ let client = Client() let account = Account(client) -let sessionList = try await account.listSessions() +let sessionList = try await account.listSessions( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/analytics/create-event.md b/examples/2.3.x/server-swift/examples/analytics/create-event.md new file mode 100644 index 000000000..8036cb8fe --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/create-event.md @@ -0,0 +1,27 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +let analytics = Analytics(client) + +let result = try await analytics.createEvent( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + url: "https://example.com", + domain: "<DOMAIN>", // optional + referrer: "<REFERRER>", // optional + screenWidth: 0, // optional + sessionHash: "<SESSION_HASH>", // optional + scrollDepth: 0, // optional + engagementTime: 0, // optional + props: [], // optional + userId: "<USER_ID>", // optional + ip: "<IP>", // optional + userAgent: "<USER_AGENT>" // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/create-property.md b/examples/2.3.x/server-swift/examples/analytics/create-property.md new file mode 100644 index 000000000..6739f8e78 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/create-property.md @@ -0,0 +1,21 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let analyticsProperty = try await analytics.createProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", + domain: "<DOMAIN>", // optional + timezone: "<TIMEZONE>", // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: [] // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/delete-property.md b/examples/2.3.x/server-swift/examples/analytics/delete-property.md new file mode 100644 index 000000000..62784f9ef --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/delete-property.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let result = try await analytics.deleteProperty( + propertyId: "<PROPERTY_ID>" +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/get-property.md b/examples/2.3.x/server-swift/examples/analytics/get-property.md new file mode 100644 index 000000000..7d290ea6e --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/get-property.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let analyticsProperty = try await analytics.getProperty( + propertyId: "<PROPERTY_ID>" +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/list-metrics.md b/examples/2.3.x/server-swift/examples/analytics/list-metrics.md new file mode 100644 index 000000000..558a72da3 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/list-metrics.md @@ -0,0 +1,23 @@ +```swift +import Appwrite +import AppwriteEnums + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let analyticsMetricList = try await analytics.listMetrics( + propertyId: "<PROPERTY_ID>", + queries: [], // optional + interval: .oneHour, // optional + dimensions: [.country], // optional + dateRange: "<DATE_RANGE>", // optional + startAt: "2020-10-15T06:38:00.000+00:00", // optional + endAt: "2020-10-15T06:38:00.000+00:00", // optional + limit: 1 // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/list-properties.md b/examples/2.3.x/server-swift/examples/analytics/list-properties.md new file mode 100644 index 000000000..f178f8db9 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/list-properties.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let analyticsPropertyList = try await analytics.listProperties( + queries: [], // optional + search: "<SEARCH>", // optional + total: false // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/analytics/update-property.md b/examples/2.3.x/server-swift/examples/analytics/update-property.md new file mode 100644 index 000000000..9a892b8c2 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/analytics/update-property.md @@ -0,0 +1,21 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let analytics = Analytics(client) + +let analyticsProperty = try await analytics.updateProperty( + propertyId: "<PROPERTY_ID>", + name: "<NAME>", // optional + domain: "<DOMAIN>", // optional + timezone: "<TIMEZONE>", // optional + enabled: false, // optional + public: false, // optional + allowedOrigins: [] // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/avatars/delete-photo.md b/examples/2.3.x/server-swift/examples/avatars/delete-photo.md new file mode 100644 index 000000000..8780acbb2 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/avatars/delete-photo.md @@ -0,0 +1,13 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +let avatars = Avatars(client) + +let result = try await avatars.deletePhoto() + +``` diff --git a/examples/2.3.x/server-swift/examples/avatars/get-screenshot.md b/examples/2.3.x/server-swift/examples/avatars/get-screenshot.md index 482905ea9..dfbc37398 100644 --- a/examples/2.3.x/server-swift/examples/avatars/get-screenshot.md +++ b/examples/2.3.x/server-swift/examples/avatars/get-screenshot.md @@ -12,8 +12,7 @@ let avatars = Avatars(client) let bytes = try await avatars.getScreenshot( url: "https://example.com", headers: [ - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" ], // optional viewportWidth: 1920, // optional viewportHeight: 1080, // optional diff --git a/examples/2.3.x/server-swift/examples/avatars/update-photo.md b/examples/2.3.x/server-swift/examples/avatars/update-photo.md new file mode 100644 index 000000000..f7643791d --- /dev/null +++ b/examples/2.3.x/server-swift/examples/avatars/update-photo.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setSession("") // The user session to authenticate with + +let avatars = Avatars(client) + +let account = try await avatars.updatePhoto( + file: InputFile.fromPath("file.png") +) + +``` diff --git a/examples/2.3.x/server-swift/examples/databases/create-documents.md b/examples/2.3.x/server-swift/examples/databases/create-documents.md index 1763ab133..e602e1de1 100644 --- a/examples/2.3.x/server-swift/examples/databases/create-documents.md +++ b/examples/2.3.x/server-swift/examples/databases/create-documents.md @@ -11,7 +11,16 @@ let databases = Databases(client) let documentList = try await databases.createDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/databases/create-index.md b/examples/2.3.x/server-swift/examples/databases/create-index.md index ad4459aad..8c71527cf 100644 --- a/examples/2.3.x/server-swift/examples/databases/create-index.md +++ b/examples/2.3.x/server-swift/examples/databases/create-index.md @@ -14,7 +14,9 @@ let index = try await databases.createIndex( collectionId: "<COLLECTION_ID>", key: "<KEY>", type: .key, - attributes: [], + attributes: [ + "username" + ], orders: [.asc], // optional lengths: [] // optional ) diff --git a/examples/2.3.x/server-swift/examples/databases/delete-documents.md b/examples/2.3.x/server-swift/examples/databases/delete-documents.md index 81a24778d..8e5eef8f3 100644 --- a/examples/2.3.x/server-swift/examples/databases/delete-documents.md +++ b/examples/2.3.x/server-swift/examples/databases/delete-documents.md @@ -11,7 +11,9 @@ let databases = Databases(client) let documentList = try await databases.deleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], // optional + queries: [ + "{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}" + ], // optional transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/databases/list-transactions.md b/examples/2.3.x/server-swift/examples/databases/list-transactions.md index 4059ddbf3..410aedf5c 100644 --- a/examples/2.3.x/server-swift/examples/databases/list-transactions.md +++ b/examples/2.3.x/server-swift/examples/databases/list-transactions.md @@ -9,7 +9,8 @@ let client = Client() let databases = Databases(client) let transactionList = try await databases.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/databases/upsert-documents.md b/examples/2.3.x/server-swift/examples/databases/upsert-documents.md index dbcc58e5e..a1d6238a2 100644 --- a/examples/2.3.x/server-swift/examples/databases/upsert-documents.md +++ b/examples/2.3.x/server-swift/examples/databases/upsert-documents.md @@ -11,7 +11,16 @@ let databases = Databases(client) let documentList = try await databases.upsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/documentsdb/create-documents.md b/examples/2.3.x/server-swift/examples/documentsdb/create-documents.md index 9b61a9eb4..62d6d2171 100644 --- a/examples/2.3.x/server-swift/examples/documentsdb/create-documents.md +++ b/examples/2.3.x/server-swift/examples/documentsdb/create-documents.md @@ -11,7 +11,16 @@ let documentsDB = DocumentsDB(client) let documentList = try await documentsDB.createDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/documentsdb/create-index.md b/examples/2.3.x/server-swift/examples/documentsdb/create-index.md index fae314f85..95f1dd29a 100644 --- a/examples/2.3.x/server-swift/examples/documentsdb/create-index.md +++ b/examples/2.3.x/server-swift/examples/documentsdb/create-index.md @@ -14,7 +14,9 @@ let index = try await documentsDB.createIndex( collectionId: "<COLLECTION_ID>", key: "<KEY>", type: .key, - attributes: [], + attributes: [ + "username" + ], orders: [.asc], // optional lengths: [] // optional ) diff --git a/examples/2.3.x/server-swift/examples/documentsdb/delete-documents.md b/examples/2.3.x/server-swift/examples/documentsdb/delete-documents.md index 9c6e9c6ff..ad7146594 100644 --- a/examples/2.3.x/server-swift/examples/documentsdb/delete-documents.md +++ b/examples/2.3.x/server-swift/examples/documentsdb/delete-documents.md @@ -11,7 +11,9 @@ let documentsDB = DocumentsDB(client) let documentList = try await documentsDB.deleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], // optional + queries: [ + "{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}" + ], // optional transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/documentsdb/list-transactions.md b/examples/2.3.x/server-swift/examples/documentsdb/list-transactions.md index f6eec7146..8e59ccbca 100644 --- a/examples/2.3.x/server-swift/examples/documentsdb/list-transactions.md +++ b/examples/2.3.x/server-swift/examples/documentsdb/list-transactions.md @@ -9,7 +9,8 @@ let client = Client() let documentsDB = DocumentsDB(client) let transactionList = try await documentsDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/documentsdb/upsert-documents.md b/examples/2.3.x/server-swift/examples/documentsdb/upsert-documents.md index 6e6ad9ea9..76e0e2517 100644 --- a/examples/2.3.x/server-swift/examples/documentsdb/upsert-documents.md +++ b/examples/2.3.x/server-swift/examples/documentsdb/upsert-documents.md @@ -11,7 +11,16 @@ let documentsDB = DocumentsDB(client) let documentList = try await documentsDB.upsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/embeddings/create-text-embeddings.md b/examples/2.3.x/server-swift/examples/embeddings/create-text-embeddings.md index 85afbc743..453d6d883 100644 --- a/examples/2.3.x/server-swift/examples/embeddings/create-text-embeddings.md +++ b/examples/2.3.x/server-swift/examples/embeddings/create-text-embeddings.md @@ -10,7 +10,10 @@ let client = Client() let embeddings = Embeddings(client) let embeddingList = try await embeddings.createTextEmbeddings( - texts: [], + texts: [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], model: .nomicEmbedText // optional ) diff --git a/examples/2.3.x/server-swift/examples/functions/list-runtimes.md b/examples/2.3.x/server-swift/examples/functions/list-runtimes.md index 447e11eb3..e2d52a624 100644 --- a/examples/2.3.x/server-swift/examples/functions/list-runtimes.md +++ b/examples/2.3.x/server-swift/examples/functions/list-runtimes.md @@ -8,6 +8,8 @@ let client = Client() let functions = Functions(client) -let runtimeList = try await functions.listRuntimes() +let runtimeList = try await functions.listRuntimes( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/functions/list-specifications.md b/examples/2.3.x/server-swift/examples/functions/list-specifications.md index f351a57b1..454f8d72a 100644 --- a/examples/2.3.x/server-swift/examples/functions/list-specifications.md +++ b/examples/2.3.x/server-swift/examples/functions/list-specifications.md @@ -9,7 +9,8 @@ let client = Client() let functions = Functions(client) let specificationList = try await functions.listSpecifications( - type: "runtimes" // optional + type: "runtimes", // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/graphql/mutation.md b/examples/2.3.x/server-swift/examples/graphql/mutation.md index 9c3cf1168..9ce9f48e0 100644 --- a/examples/2.3.x/server-swift/examples/graphql/mutation.md +++ b/examples/2.3.x/server-swift/examples/graphql/mutation.md @@ -9,7 +9,9 @@ let client = Client() let graphql = Graphql(client) let any = try await graphql.mutation( - query: [:] + query: [ + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/graphql/query.md b/examples/2.3.x/server-swift/examples/graphql/query.md index 9ce16dcc7..ac9ee5fe2 100644 --- a/examples/2.3.x/server-swift/examples/graphql/query.md +++ b/examples/2.3.x/server-swift/examples/graphql/query.md @@ -9,7 +9,9 @@ let client = Client() let graphql = Graphql(client) let any = try await graphql.query( - query: [:] + query: [ + "query": "query { localeGet { ip } }" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-codes.md b/examples/2.3.x/server-swift/examples/locale/list-codes.md index dd0f9fb63..982471f2e 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-codes.md +++ b/examples/2.3.x/server-swift/examples/locale/list-codes.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let localeCodeList = try await locale.listCodes() +let localeCodeList = try await locale.listCodes( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-continents.md b/examples/2.3.x/server-swift/examples/locale/list-continents.md index f37daceff..45e920ad5 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-continents.md +++ b/examples/2.3.x/server-swift/examples/locale/list-continents.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let continentList = try await locale.listContinents() +let continentList = try await locale.listContinents( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-countries-eu.md b/examples/2.3.x/server-swift/examples/locale/list-countries-eu.md index b858b31d9..ad8023bc1 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-countries-eu.md +++ b/examples/2.3.x/server-swift/examples/locale/list-countries-eu.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let countryList = try await locale.listCountriesEU() +let countryList = try await locale.listCountriesEU( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-countries-phones.md b/examples/2.3.x/server-swift/examples/locale/list-countries-phones.md index 739c490ba..2d356d304 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-countries-phones.md +++ b/examples/2.3.x/server-swift/examples/locale/list-countries-phones.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let phoneList = try await locale.listCountriesPhones() +let phoneList = try await locale.listCountriesPhones( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-countries.md b/examples/2.3.x/server-swift/examples/locale/list-countries.md index 8aa3bcf75..d975c703b 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-countries.md +++ b/examples/2.3.x/server-swift/examples/locale/list-countries.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let countryList = try await locale.listCountries() +let countryList = try await locale.listCountries( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-currencies.md b/examples/2.3.x/server-swift/examples/locale/list-currencies.md index d1ce956b6..5930a9ab5 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-currencies.md +++ b/examples/2.3.x/server-swift/examples/locale/list-currencies.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let currencyList = try await locale.listCurrencies() +let currencyList = try await locale.listCurrencies( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/locale/list-languages.md b/examples/2.3.x/server-swift/examples/locale/list-languages.md index ed444bf58..9a1187cda 100644 --- a/examples/2.3.x/server-swift/examples/locale/list-languages.md +++ b/examples/2.3.x/server-swift/examples/locale/list-languages.md @@ -8,6 +8,8 @@ let client = Client() let locale = Locale(client) -let languageList = try await locale.listLanguages() +let languageList = try await locale.listLanguages( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/messaging/create-push.md b/examples/2.3.x/server-swift/examples/messaging/create-push.md index e2db2e6de..4e51dbf96 100644 --- a/examples/2.3.x/server-swift/examples/messaging/create-push.md +++ b/examples/2.3.x/server-swift/examples/messaging/create-push.md @@ -28,7 +28,8 @@ let message = try await messaging.createPush( scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional contentAvailable: false, // optional critical: false, // optional - priority: .normal // optional + priority: .normal, // optional + channelId: "<CHANNEL_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/messaging/update-email.md b/examples/2.3.x/server-swift/examples/messaging/update-email.md index 287807776..81b4edd56 100644 --- a/examples/2.3.x/server-swift/examples/messaging/update-email.md +++ b/examples/2.3.x/server-swift/examples/messaging/update-email.md @@ -10,19 +10,19 @@ let messaging = Messaging(client) let message = try await messaging.updateEmail( messageId: "<MESSAGE_ID>", + subject: "<SUBJECT>", // optional + content: "<CONTENT>", // optional topics: [], // optional users: [], // optional targets: [], // optional - subject: "<SUBJECT>", // optional - content: "<CONTENT>", // optional - draft: false, // optional - html: false, // optional cc: [], // optional bcc: [], // optional + attachments: [], // optional replyToEmail: "email@example.com", // optional replyToName: "<REPLY_TO_NAME>", // optional - scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional - attachments: [] // optional + draft: false, // optional + html: false, // optional + scheduledAt: "2020-10-15T06:38:00.000+00:00" // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/messaging/update-push.md b/examples/2.3.x/server-swift/examples/messaging/update-push.md index 3266d4af4..0ffaf6d48 100644 --- a/examples/2.3.x/server-swift/examples/messaging/update-push.md +++ b/examples/2.3.x/server-swift/examples/messaging/update-push.md @@ -11,11 +11,11 @@ let messaging = Messaging(client) let message = try await messaging.updatePush( messageId: "<MESSAGE_ID>", + title: "<TITLE>", // optional + body: "<BODY>", // optional topics: [], // optional users: [], // optional targets: [], // optional - title: "<TITLE>", // optional - body: "<BODY>", // optional data: [:], // optional action: "<ACTION>", // optional image: "<ID1:ID2>", // optional @@ -28,7 +28,8 @@ let message = try await messaging.updatePush( scheduledAt: "2020-10-15T06:38:00.000+00:00", // optional contentAvailable: false, // optional critical: false, // optional - priority: .normal // optional + priority: .normal, // optional + channelId: "<CHANNEL_ID>" // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/messaging/update-sms.md b/examples/2.3.x/server-swift/examples/messaging/update-sms.md index 668625ffe..f50fc1051 100644 --- a/examples/2.3.x/server-swift/examples/messaging/update-sms.md +++ b/examples/2.3.x/server-swift/examples/messaging/update-sms.md @@ -10,10 +10,10 @@ let messaging = Messaging(client) let message = try await messaging.updateSMS( messageId: "<MESSAGE_ID>", + content: "<CONTENT>", // optional topics: [], // optional users: [], // optional targets: [], // optional - content: "<CONTENT>", // optional draft: false, // optional scheduledAt: "2020-10-15T06:38:00.000+00:00" // optional ) diff --git a/examples/2.3.x/server-swift/examples/oauth2/introspect.md b/examples/2.3.x/server-swift/examples/oauth2/introspect.md new file mode 100644 index 000000000..9b5c30f64 --- /dev/null +++ b/examples/2.3.x/server-swift/examples/oauth2/introspect.md @@ -0,0 +1,18 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let oauth2 = Oauth2(client) + +let oauth2Introspection = try await oauth2.introspect( + token: "<TOKEN>", + token_type_hint: "access_token", // optional + client_id: "<CLIENT_ID>", // optional + client_secret: "<CLIENT_SECRET>" // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/organization/create-ephemeral-project-key.md b/examples/2.3.x/server-swift/examples/organization/create-ephemeral-project-key.md index b5678349b..6b0a2b8c2 100644 --- a/examples/2.3.x/server-swift/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.3.x/server-swift/examples/organization/create-ephemeral-project-key.md @@ -11,7 +11,7 @@ let organization = Organization(client) let ephemeralKey = try await organization.createEphemeralProjectKey( projectId: "<PROJECT_ID>", - scopes: [.projectRead], + scopes: [.usersRead], duration: 600 ) diff --git a/examples/2.3.x/server-swift/examples/organization/update-project-key.md b/examples/2.3.x/server-swift/examples/organization/update-project-key.md index b90e8a377..f276bd127 100644 --- a/examples/2.3.x/server-swift/examples/organization/update-project-key.md +++ b/examples/2.3.x/server-swift/examples/organization/update-project-key.md @@ -13,7 +13,7 @@ let key = try await organization.updateProjectKey( projectId: "<PROJECT_ID>", keyId: "<KEY_ID>", name: "<NAME>", - scopes: [.projectRead], + scopes: [.usersRead], expire: "2020-10-15T06:38:00.000+00:00" // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/create-ephemeral-key.md b/examples/2.3.x/server-swift/examples/project/create-ephemeral-key.md index c4310ecf7..f601a2e93 100644 --- a/examples/2.3.x/server-swift/examples/project/create-ephemeral-key.md +++ b/examples/2.3.x/server-swift/examples/project/create-ephemeral-key.md @@ -10,7 +10,7 @@ let client = Client() let project = Project(client) let ephemeralKey = try await project.createEphemeralKey( - scopes: [.projectRead], + scopes: [.usersRead], duration: 600 ) diff --git a/examples/2.3.x/server-swift/examples/project/create-smtp-test.md b/examples/2.3.x/server-swift/examples/project/create-smtp-test.md index 7f58a2797..a54419f86 100644 --- a/examples/2.3.x/server-swift/examples/project/create-smtp-test.md +++ b/examples/2.3.x/server-swift/examples/project/create-smtp-test.md @@ -9,7 +9,9 @@ let client = Client() let project = Project(client) let result = try await project.createSMTPTest( - emails: [] + emails: [ + "recipient@example.com" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/project/update-key.md b/examples/2.3.x/server-swift/examples/project/update-key.md index b94b74f13..94c248790 100644 --- a/examples/2.3.x/server-swift/examples/project/update-key.md +++ b/examples/2.3.x/server-swift/examples/project/update-key.md @@ -12,7 +12,7 @@ let project = Project(client) let key = try await project.updateKey( keyId: "<KEY_ID>", name: "<NAME>", - scopes: [.projectRead], + scopes: [.usersRead], expire: "2020-10-15T06:38:00.000+00:00" // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-labels.md b/examples/2.3.x/server-swift/examples/project/update-labels.md index fe290de25..197094b30 100644 --- a/examples/2.3.x/server-swift/examples/project/update-labels.md +++ b/examples/2.3.x/server-swift/examples/project/update-labels.md @@ -9,7 +9,9 @@ let client = Client() let project = Project(client) let project = try await project.updateLabels( - labels: [] + labels: [ + "production" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-auth-0.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-auth-0.md index 32fa12df4..3ae1b5159 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-auth-0.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,6 +13,7 @@ let oAuth2Auth0 = try await project.updateOAuth2Auth0( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional endpoint: "<ENDPOINT>", // optional + prompt: [.none], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-discord.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-discord.md index bdab08003..91556ea5e 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-discord.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-discord.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +12,7 @@ let project = Project(client) let oAuth2Discord = try await project.updateOAuth2Discord( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: [.none], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-git-hub.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-git-hub.md index 3a31b270c..a3aa43fbe 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-git-hub.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +12,7 @@ let project = Project(client) let oAuth2Github = try await project.updateOAuth2GitHub( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: [.selectAccount], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-kakao.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-kakao.md index d28b0dbe7..3d0cbdf94 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-kakao.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +12,7 @@ let project = Project(client) let oAuth2Kakao = try await project.updateOAuth2Kakao( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: [.none], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-microsoft.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-microsoft.md index 1ec4428ba..06301c622 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-microsoft.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -12,6 +13,7 @@ let oAuth2Microsoft = try await project.updateOAuth2Microsoft( applicationId: "<APPLICATION_ID>", // optional applicationSecret: "<APPLICATION_SECRET>", // optional tenant: "<TENANT>", // optional + prompt: [.none], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-okta.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-okta.md index 51331bee7..7071bfcc9 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-okta.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-okta.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -13,6 +14,7 @@ let oAuth2Okta = try await project.updateOAuth2Okta( clientSecret: "<CLIENT_SECRET>", // optional domain: "example.com", // optional authorizationServerId: "<AUTHORIZATION_SERVER_ID>", // optional + prompt: [.none], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-salesforce.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-salesforce.md index 65eb7468b..7ab1f1ccd 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-salesforce.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +12,7 @@ let project = Project(client) let oAuth2Salesforce = try await project.updateOAuth2Salesforce( customerKey: "<CUSTOMER_KEY>", // optional customerSecret: "<CUSTOMER_SECRET>", // optional + prompt: [.login], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-webflow.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-webflow.md new file mode 100644 index 000000000..57f5f4ecc --- /dev/null +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-webflow.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let project = Project(client) + +let oAuth2Webflow = try await project.updateOAuth2Webflow( + clientId: "<CLIENT_ID>", // optional + clientSecret: "<CLIENT_SECRET>", // optional + enabled: false // optional +) + +``` diff --git a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-zoho.md b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-zoho.md index db4f04043..2556018c4 100644 --- a/examples/2.3.x/server-swift/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.3.x/server-swift/examples/project/update-o-auth-2-zoho.md @@ -1,5 +1,6 @@ ```swift import Appwrite +import AppwriteEnums let client = Client() .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint @@ -11,6 +12,7 @@ let project = Project(client) let oAuth2Zoho = try await project.updateOAuth2Zoho( clientId: "<CLIENT_ID>", // optional clientSecret: "<CLIENT_SECRET>", // optional + prompt: [.consent], // optional enabled: false // optional ) diff --git a/examples/2.3.x/server-swift/examples/sites/list-frameworks.md b/examples/2.3.x/server-swift/examples/sites/list-frameworks.md index f4fe3a699..a7a460eed 100644 --- a/examples/2.3.x/server-swift/examples/sites/list-frameworks.md +++ b/examples/2.3.x/server-swift/examples/sites/list-frameworks.md @@ -8,6 +8,8 @@ let client = Client() let sites = Sites(client) -let frameworkList = try await sites.listFrameworks() +let frameworkList = try await sites.listFrameworks( + total: false // optional +) ``` diff --git a/examples/2.3.x/server-swift/examples/sites/list-specifications.md b/examples/2.3.x/server-swift/examples/sites/list-specifications.md index a75edd555..8aadb3cf4 100644 --- a/examples/2.3.x/server-swift/examples/sites/list-specifications.md +++ b/examples/2.3.x/server-swift/examples/sites/list-specifications.md @@ -9,7 +9,8 @@ let client = Client() let sites = Sites(client) let specificationList = try await sites.listSpecifications( - type: "runtimes" // optional + type: "runtimes", // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/tablesdb/create-index.md b/examples/2.3.x/server-swift/examples/tablesdb/create-index.md index ae3723efc..882d87b3b 100644 --- a/examples/2.3.x/server-swift/examples/tablesdb/create-index.md +++ b/examples/2.3.x/server-swift/examples/tablesdb/create-index.md @@ -14,7 +14,9 @@ let columnIndex = try await tablesDB.createIndex( tableId: "<TABLE_ID>", key: "<KEY>", type: .key, - columns: [], + columns: [ + "username" + ], orders: [.asc], // optional lengths: [] // optional ) diff --git a/examples/2.3.x/server-swift/examples/tablesdb/create-rows.md b/examples/2.3.x/server-swift/examples/tablesdb/create-rows.md index 0a8380717..b9c4e3011 100644 --- a/examples/2.3.x/server-swift/examples/tablesdb/create-rows.md +++ b/examples/2.3.x/server-swift/examples/tablesdb/create-rows.md @@ -11,7 +11,16 @@ let tablesDB = TablesDB(client) let rowList = try await tablesDB.createRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: [], + rows: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/tablesdb/delete-rows.md b/examples/2.3.x/server-swift/examples/tablesdb/delete-rows.md index 0ab77ec63..49a5162b2 100644 --- a/examples/2.3.x/server-swift/examples/tablesdb/delete-rows.md +++ b/examples/2.3.x/server-swift/examples/tablesdb/delete-rows.md @@ -11,7 +11,9 @@ let tablesDB = TablesDB(client) let rowList = try await tablesDB.deleteRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - queries: [], // optional + queries: [ + "{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}" + ], // optional transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/tablesdb/list-transactions.md b/examples/2.3.x/server-swift/examples/tablesdb/list-transactions.md index bf51907bd..b83f3684e 100644 --- a/examples/2.3.x/server-swift/examples/tablesdb/list-transactions.md +++ b/examples/2.3.x/server-swift/examples/tablesdb/list-transactions.md @@ -9,7 +9,8 @@ let client = Client() let tablesDB = TablesDB(client) let transactionList = try await tablesDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/tablesdb/upsert-rows.md b/examples/2.3.x/server-swift/examples/tablesdb/upsert-rows.md index 457ea5c58..cf4410835 100644 --- a/examples/2.3.x/server-swift/examples/tablesdb/upsert-rows.md +++ b/examples/2.3.x/server-swift/examples/tablesdb/upsert-rows.md @@ -11,7 +11,16 @@ let tablesDB = TablesDB(client) let rowList = try await tablesDB.upsertRows( databaseId: "<DATABASE_ID>", tableId: "<TABLE_ID>", - rows: [], + rows: [ + [ + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/teams/create-membership.md b/examples/2.3.x/server-swift/examples/teams/create-membership.md index bed0624bc..0cc8dcb04 100644 --- a/examples/2.3.x/server-swift/examples/teams/create-membership.md +++ b/examples/2.3.x/server-swift/examples/teams/create-membership.md @@ -10,7 +10,9 @@ let teams = Teams(client) let membership = try await teams.createMembership( teamId: "<TEAM_ID>", - roles: [], + roles: [ + "editor" + ], email: "email@example.com", // optional userId: "<USER_ID>", // optional phone: "+12065550100", // optional diff --git a/examples/2.3.x/server-swift/examples/teams/update-membership.md b/examples/2.3.x/server-swift/examples/teams/update-membership.md index b2cce9df7..0b77c14f6 100644 --- a/examples/2.3.x/server-swift/examples/teams/update-membership.md +++ b/examples/2.3.x/server-swift/examples/teams/update-membership.md @@ -11,7 +11,9 @@ let teams = Teams(client) let membership = try await teams.updateMembership( teamId: "<TEAM_ID>", membershipId: "<MEMBERSHIP_ID>", - roles: [] + roles: [ + "editor" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/users/update-labels.md b/examples/2.3.x/server-swift/examples/users/update-labels.md index 67d4b95dd..8afd9032e 100644 --- a/examples/2.3.x/server-swift/examples/users/update-labels.md +++ b/examples/2.3.x/server-swift/examples/users/update-labels.md @@ -10,7 +10,9 @@ let users = Users(client) let user = try await users.updateLabels( userId: "<USER_ID>", - labels: [] + labels: [ + "subscriber" + ] ) ``` diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/create-collection.md b/examples/2.3.x/server-swift/examples/vectorsdb/create-collection.md index 27682380d..4a1db08c5 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/create-collection.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/create-collection.md @@ -12,7 +12,7 @@ let vectorsdbCollection = try await vectorsDB.createCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, + dimension: 4, permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/create-documents.md b/examples/2.3.x/server-swift/examples/vectorsdb/create-documents.md index c25ee2bc3..7ad763b65 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/create-documents.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/create-documents.md @@ -11,7 +11,20 @@ let vectorsDB = VectorsDB(client) let documentList = try await vectorsDB.createDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": [ + "name": "First document" + ] + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/create-index.md b/examples/2.3.x/server-swift/examples/vectorsdb/create-index.md index 9aca64180..e78c21894 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/create-index.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/create-index.md @@ -14,7 +14,9 @@ let index = try await vectorsDB.createIndex( collectionId: "<COLLECTION_ID>", key: "<KEY>", type: .hnswEuclidean, - attributes: [], + attributes: [ + "embeddings" + ], orders: [.asc], // optional lengths: [] // optional ) diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/create-operations.md b/examples/2.3.x/server-swift/examples/vectorsdb/create-operations.md index 7e3c4be10..ee5cc9260 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/create-operations.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/create-operations.md @@ -17,7 +17,15 @@ let transaction = try await vectorsDB.createOperations( "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": [ - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": [ + "name": "First document" + ] ] ] ] // optional diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/delete-documents.md b/examples/2.3.x/server-swift/examples/vectorsdb/delete-documents.md index 54211abdc..48a3a09d4 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/delete-documents.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/delete-documents.md @@ -11,7 +11,9 @@ let vectorsDB = VectorsDB(client) let documentList = try await vectorsDB.deleteDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - queries: [], // optional + queries: [ + "{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}" + ], // optional transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/list-transactions.md b/examples/2.3.x/server-swift/examples/vectorsdb/list-transactions.md index 5a4f5e63d..565fa43ae 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/list-transactions.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/list-transactions.md @@ -9,7 +9,8 @@ let client = Client() let vectorsDB = VectorsDB(client) let transactionList = try await vectorsDB.listTransactions( - queries: [] // optional + queries: [], // optional + total: false // optional ) ``` diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/update-collection.md b/examples/2.3.x/server-swift/examples/vectorsdb/update-collection.md index 0abc0fc0b..ac1b2ea4a 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/update-collection.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/update-collection.md @@ -12,7 +12,7 @@ let vectorsdbCollection = try await vectorsDB.updateCollection( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", name: "<NAME>", - dimension: 1, // optional + dimension: 4, // optional permissions: [Permission.read(Role.any())], // optional documentSecurity: false, // optional enabled: false // optional diff --git a/examples/2.3.x/server-swift/examples/vectorsdb/upsert-documents.md b/examples/2.3.x/server-swift/examples/vectorsdb/upsert-documents.md index 32d773bce..565c38bbb 100644 --- a/examples/2.3.x/server-swift/examples/vectorsdb/upsert-documents.md +++ b/examples/2.3.x/server-swift/examples/vectorsdb/upsert-documents.md @@ -11,7 +11,20 @@ let vectorsDB = VectorsDB(client) let documentList = try await vectorsDB.upsertDocuments( databaseId: "<DATABASE_ID>", collectionId: "<COLLECTION_ID>", - documents: [], + documents: [ + [ + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": [ + "name": "First document" + ] + ] + ], transactionId: "<TRANSACTION_ID>" // optional ) diff --git a/examples/2.3.x/server-swift/examples/webhooks/create.md b/examples/2.3.x/server-swift/examples/webhooks/create.md index b9ff80bf5..d1709025c 100644 --- a/examples/2.3.x/server-swift/examples/webhooks/create.md +++ b/examples/2.3.x/server-swift/examples/webhooks/create.md @@ -12,7 +12,9 @@ let webhook = try await webhooks.create( webhookId: "<WEBHOOK_ID>", url: "https://example.com/webhook", name: "<NAME>", - events: [], + events: [ + "users.*.create" + ], enabled: false, // optional tls: false, // optional authUsername: "<AUTH_USERNAME>", // optional diff --git a/examples/2.3.x/server-swift/examples/webhooks/update.md b/examples/2.3.x/server-swift/examples/webhooks/update.md index 063639128..4145c891d 100644 --- a/examples/2.3.x/server-swift/examples/webhooks/update.md +++ b/examples/2.3.x/server-swift/examples/webhooks/update.md @@ -12,7 +12,9 @@ let webhook = try await webhooks.update( webhookId: "<WEBHOOK_ID>", name: "<NAME>", url: "https://example.com/webhook", - events: [], + events: [ + "users.*.create" + ], enabled: false, // optional tls: false, // optional authUsername: "<AUTH_USERNAME>", // optional diff --git a/specs/2.3.x/open-api3-2.3.x-client.json b/specs/2.3.x/open-api3-2.3.x-client.json new file mode 100644 index 000000000..c256a08d8 --- /dev/null +++ b/specs/2.3.x/open-api3-2.3.x-client.json @@ -0,0 +1,29547 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.3.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "accountCreateJWT", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-jwt.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 session", + "operationId": "accountCreateOAuth2Session", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-o-auth-2-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/targets\/push": { + "post": { + "summary": "Create push target", + "operationId": "accountCreatePushTarget", + "tags": [ + "account" + ], + "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/create-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + } + }, + "required": [ + "targetId", + "identifier" + ] + } + } + } + } + } + }, + "\/account\/targets\/{targetId}\/push": { + "put": { + "summary": "Update push target", + "operationId": "accountUpdatePushTarget", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/update-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + } + }, + "required": [ + "identifier" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete push target", + "operationId": "accountDeletePushTarget", + "tags": [ + "account" + ], + "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/delete-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID or snippet ID identifying the property.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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#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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "tags": [ + "documentsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/logout": { + "get": { + "summary": "OAuth2 Logout", + "operationId": "oauth2Logout", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "id_token_hint", + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "required": false, + "schema": { + "type": "string", + "example": "<ID_TOKEN_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "logout_hint", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<LOGOUT_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "post_logout_redirect_uri", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "ui_locales", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<UI_LOCALES>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutPost", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "id_token_hint": { + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "type": "string", + "default": "", + "example": "<ID_TOKEN_HINT>" + }, + "logout_hint": { + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<LOGOUT_HINT>" + }, + "client_id": { + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "post_logout_redirect_uri": { + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "ui_locales": { + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<UI_LOCALES>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "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": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId" + ], + "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.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "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.", + "type": "string", + "example": "<FILE_ID>" + }, + "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).", + "type": "string", + "format": "binary" + }, + "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).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "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": { + "group": "files", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "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", + "example": "FFFFFF", + "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", + "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", + "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", + "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", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create 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": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "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", + "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": { + "group": "rows", + "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, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "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.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "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.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "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": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement 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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "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: 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "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.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "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 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "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.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "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": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "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": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "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": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/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": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "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": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "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": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "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": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "analytics", + "description": "" + }, + { + "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": "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": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "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." + } + ], + "components": { + "schemas": { + "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.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "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.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "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.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "example": [] + } + }, + "required": [ + "total", + "presences" + ], + "example": { + "total": 5, + "presences": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "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).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "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", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "example": "application\/json" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "Content-Type", + "value": "application\/json" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "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": "Recovery codes.", + "items": { + "type": "string" + }, + "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.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "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.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "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" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "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" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "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" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$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 + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "en" + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.3.x/open-api3-2.3.x-console.json b/specs/2.3.x/open-api3-2.3.x-console.json new file mode 100644 index 000000000..8e8268b2a --- /dev/null +++ b/specs/2.3.x/open-api3-2.3.x-console.json @@ -0,0 +1,149070 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.3.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account", + "operationId": "accountDelete", + "tags": [ + "account" + ], + "description": "Delete the currently logged in user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/billing-addresses": { + "get": { + "summary": "List billing addresses", + "operationId": "accountListBillingAddresses", + "tags": [ + "account" + ], + "description": "List all billing addresses for a user.", + "responses": { + "200": { + "description": "Billing address list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddressList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-billing-addresses.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create billing address", + "operationId": "accountCreateBillingAddress", + "tags": [ + "account" + ], + "description": "Add a new billing address to a user's account.", + "responses": { + "201": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "<COUNTRY>" + }, + "city": { + "description": "City", + "type": "string", + "example": "<CITY>" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "<STREET_ADDRESS>" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE2>", + "nullable": true + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "<STATE>", + "nullable": true + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "<POSTAL_CODE>", + "nullable": true + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + } + }, + "\/account\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "accountGetBillingAddress", + "tags": [ + "account" + ], + "description": "Get a specific billing address for a user using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update billing address", + "operationId": "accountUpdateBillingAddress", + "tags": [ + "account" + ], + "description": "Update a specific billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "<COUNTRY>" + }, + "city": { + "description": "City", + "type": "string", + "example": "<CITY>" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "<STREET_ADDRESS>" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE2>", + "nullable": true + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "<STATE>", + "nullable": true + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "<POSTAL_CODE>", + "nullable": true + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete billing address", + "operationId": "accountDeleteBillingAddress", + "tags": [ + "account" + ], + "description": "Delete a specific billing address using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Billing address unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "accountGetCoupon", + "tags": [ + "account" + ], + "description": "Get coupon details for an account.", + "responses": { + "200": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "<COUPON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "accountListInvoices", + "tags": [ + "account" + ], + "description": "List all invoices tied to an account.", + "responses": { + "200": { + "description": "Billing invoices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoiceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-invoices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "accountCreateJWT", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-jwt.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/account\/keys": { + "get": { + "summary": "List account key", + "operationId": "accountListKeys", + "tags": [ + "account" + ], + "description": "Get a list of all API keys from the current account.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create account key", + "operationId": "accountCreateKey", + "tags": [ + "account" + ], + "description": "Create a new account API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/account\/keys\/{keyId}": { + "get": { + "summary": "Get account key", + "operationId": "accountGetKey", + "tags": [ + "account" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your account including it's scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update account key", + "operationId": "accountUpdateKey", + "tags": [ + "account" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account key", + "operationId": "accountDeleteKey", + "tags": [ + "account" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/payment-methods": { + "get": { + "summary": "List payment methods", + "operationId": "accountListPaymentMethods", + "tags": [ + "account" + ], + "description": "List payment methods for this account.", + "responses": { + "200": { + "description": "Payment methods list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethodList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-payment-methods.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create new payment method", + "operationId": "accountCreatePaymentMethod", + "tags": [ + "account" + ], + "description": "Create a new payment method for the current user account.", + "responses": { + "201": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-payment-method.md", + "rate-limit": 10, + "rate-time": 86400, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "accountGetPaymentMethod", + "tags": [ + "account" + ], + "description": "Get a specific payment method for the user.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update payment method", + "operationId": "accountUpdatePaymentMethod", + "tags": [ + "account" + ], + "description": "Update a new payment method for the current user account.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expiryMonth": { + "description": "Payment expiry month", + "type": "integer", + "example": 1, + "format": "int32" + }, + "expiryYear": { + "description": "Expiry year", + "type": "integer", + "example": 2026, + "format": "int32" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "<STATE>" + } + }, + "required": [ + "expiryMonth", + "expiryYear" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete payment method", + "operationId": "accountDeletePaymentMethod", + "tags": [ + "account" + ], + "description": "Delete a specific payment method from a user's account.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/provider": { + "patch": { + "summary": "Update payment method provider id", + "operationId": "accountUpdatePaymentMethodProvider", + "tags": [ + "account" + ], + "description": "Update payment method provider.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerMethodId": { + "description": "Payment method ID from the payment provider", + "type": "string", + "example": "<PROVIDER_METHOD_ID>" + }, + "name": { + "description": "Name in the payment method", + "type": "string", + "example": "<NAME>" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "<STATE>", + "nullable": true + } + }, + "required": [ + "providerMethodId", + "name" + ] + } + } + } + } + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/setup": { + "patch": { + "summary": "Update payment method with new setup with mandates for indian cards", + "operationId": "accountUpdatePaymentMethodMandateOptions", + "tags": [ + "account" + ], + "description": "Update payment method mandate options.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-mandate-options.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 session", + "operationId": "accountCreateOAuth2Session", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-o-auth-2-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/targets\/push": { + "post": { + "summary": "Create push target", + "operationId": "accountCreatePushTarget", + "tags": [ + "account" + ], + "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/create-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + } + }, + "required": [ + "targetId", + "identifier" + ] + } + } + } + } + } + }, + "\/account\/targets\/{targetId}\/push": { + "put": { + "summary": "Update push target", + "operationId": "accountUpdatePushTarget", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/update-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + } + }, + "required": [ + "identifier" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete push target", + "operationId": "accountDeletePushTarget", + "tags": [ + "account" + ], + "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/delete-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/activities\/events": { + "get": { + "summary": "List events", + "operationId": "activitiesListEvents", + "tags": [ + "activities" + ], + "description": "List all events for selected filters.", + "responses": { + "200": { + "description": "Activity event list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "activities\/list-events.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/activities\/events\/{eventId}": { + "get": { + "summary": "Get event", + "operationId": "activitiesGetEvent", + "tags": [ + "activities" + ], + "description": "Get event by ID.\n", + "responses": { + "200": { + "description": "ActivityEvent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEvent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "activities\/get-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "eventId", + "description": "Event ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EVENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/affiliates\/links": { + "get": { + "summary": "List affiliate links", + "operationId": "affiliatesListLinks", + "tags": [ + "affiliates" + ], + "description": "List affiliate links for the current account.\n", + "responses": { + "200": { + "description": "Affiliate links list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLinkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/list-links.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create affiliate link", + "operationId": "affiliatesCreateLink", + "tags": [ + "affiliates" + ], + "description": "Create a shareable affiliate link for the current account. Every console user is automatically in the affiliates program.\n", + "responses": { + "201": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/create-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "linkId": { + "description": "Link ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. This ID is the shareable referral code.", + "type": "string", + "example": "<LINK_ID>" + }, + "name": { + "description": "Link name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "linkId" + ] + } + } + } + } + } + }, + "\/affiliates\/links\/{linkId}": { + "get": { + "summary": "Get affiliate link", + "operationId": "affiliatesGetLink", + "tags": [ + "affiliates" + ], + "description": "Get a single affiliate link owned by the current account.\n", + "responses": { + "200": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/get-link.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LINK_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete affiliate link", + "operationId": "affiliatesDeleteLink", + "tags": [ + "affiliates" + ], + "description": "Delete an affiliate link owned by the current account. Existing referrals and rewards keep their stored link IDs for history.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/delete-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LINK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/affiliates\/referrals": { + "get": { + "summary": "List affiliate referrals", + "operationId": "affiliatesListReferrals", + "tags": [ + "affiliates" + ], + "description": "List referrals attributed to the current account's affiliate links. Responses include privacy-safe metadata only (truncated user ID and signup country), never email or name. Referrals are created automatically on signup when the invite cookie is present.\n", + "responses": { + "200": { + "description": "Affiliate referrals list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReferralList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "referrals", + "demo": "affiliates\/list-referrals.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referredUserMaskedId, referredUserCountry, status, attributedAt, expiresAt, convertedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards": { + "get": { + "summary": "List affiliate rewards", + "operationId": "affiliatesListRewards", + "tags": [ + "affiliates" + ], + "description": "List rewards earned by the current account from affiliate link conversions.\n", + "responses": { + "200": { + "description": "Affiliate rewards list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateRewardList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/list-rewards.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referralId, amount, status, teamId, creditId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards\/{rewardId}": { + "patch": { + "summary": "Update affiliate reward", + "operationId": "affiliatesUpdateReward", + "tags": [ + "affiliates" + ], + "description": "Claim a pending affiliate reward by setting its status to `claimed`. Creates organization credits for the target organization. The current user must be an owner of that organization.\n", + "responses": { + "200": { + "description": "AffiliateReward", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReward" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/update-reward.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "rewardId", + "description": "Reward ID", + "required": true, + "schema": { + "type": "string", + "example": "<REWARD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "New reward status. Use `claimed` to claim the reward as organization credits.", + "type": "string", + "example": "claimed" + }, + "organizationId": { + "description": "Organization ID to apply credits to when claiming.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "status", + "organizationId" + ] + } + } + } + } + } + }, + "\/analytics\/properties": { + "get": { + "summary": "List analytics properties", + "operationId": "analyticsListProperties", + "tags": [ + "analytics" + ], + "description": "List analytics properties for the current project.", + "responses": { + "200": { + "description": "Analytics properties list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsPropertyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/list-properties.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.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, domain, timezone, enabled, public, snippetId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create analytics property", + "operationId": "analyticsCreateProperty", + "tags": [ + "analytics" + ], + "description": "Create a new analytics property to track a website or application.", + "responses": { + "201": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/create-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "propertyId": { + "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", + "type": "string", + "example": "<PROPERTY_ID>" + }, + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>" + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Optional for native apps.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "default": "UTC", + "example": "<TIMEZONE>" + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "default": true, + "example": false + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "default": false, + "example": false + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "default": [ + "*" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "propertyId", + "name" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}": { + "get": { + "summary": "Get analytics property", + "operationId": "analyticsGetProperty", + "tags": [ + "analytics" + ], + "description": "Get an analytics property by ID.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/get-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update analytics property", + "operationId": "analyticsUpdateProperty", + "tags": [ + "analytics" + ], + "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/update-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", + "type": "string", + "example": "<DOMAIN>", + "nullable": true + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "example": "<TIMEZONE>", + "nullable": true + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "example": false, + "nullable": true + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete analytics property", + "operationId": "analyticsDeleteProperty", + "tags": [ + "analytics" + ], + "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/delete-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID or snippet ID identifying the property.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/metrics": { + "get": { + "summary": "List analytics metrics for a property", + "operationId": "analyticsListMetrics", + "tags": [ + "analytics" + ], + "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", + "responses": { + "200": { + "description": "AnalyticsMetricList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsMetricList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "metrics", + "demo": "analytics\/list-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", + "required": false, + "schema": { + "type": "string", + "example": "1h", + "title": "AnalyticsInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + }, + { + "type": "string", + "enum": [ + "1w" + ], + "title": "One Week" + }, + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Month" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "AnalyticsDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "browser" + ], + "title": "browser" + }, + { + "type": "string", + "enum": [ + "operatingSystem" + ], + "title": "operatingSystem" + }, + { + "type": "string", + "enum": [ + "device" + ], + "title": "device" + }, + { + "type": "string", + "enum": [ + "screenSize" + ], + "title": "screenSize" + }, + { + "type": "string", + "enum": [ + "referrerSource" + ], + "title": "referrerSource" + }, + { + "type": "string", + "enum": [ + "channel" + ], + "title": "channel" + }, + { + "type": "string", + "enum": [ + "utmSource" + ], + "title": "utmSource" + }, + { + "type": "string", + "enum": [ + "utmMedium" + ], + "title": "utmMedium" + }, + { + "type": "string", + "enum": [ + "utmCampaign" + ], + "title": "utmCampaign" + }, + { + "type": "string", + "enum": [ + "utmContent" + ], + "title": "utmContent" + }, + { + "type": "string", + "enum": [ + "utmTerm" + ], + "title": "utmTerm" + }, + { + "type": "string", + "enum": [ + "page" + ], + "title": "page" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "entryPage" + ], + "title": "entryPage" + }, + { + "type": "string", + "enum": [ + "exitPage" + ], + "title": "exitPage" + }, + { + "type": "string", + "enum": [ + "trafficType" + ], + "title": "trafficType" + }, + { + "type": "string", + "enum": [ + "botName" + ], + "title": "botName" + }, + { + "type": "string", + "enum": [ + "botCategory" + ], + "title": "botCategory" + }, + { + "type": "string", + "enum": [ + "eventName" + ], + "title": "eventName" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "dateRange", + "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", + "required": false, + "schema": { + "type": "string", + "example": "<DATE_RANGE>", + "default": "30d" + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Explicit window end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of ranked values to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-labels.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/backups\/archives": { + "get": { + "summary": "List archives", + "operationId": "backupsListArchives", + "tags": [ + "backups" + ], + "description": "List all archives for a project.", + "responses": { + "200": { + "description": "Backup archive list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchiveList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-archives.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create archive", + "operationId": "backupsCreateArchive", + "tags": [ + "backups" + ], + "description": "Create a new archive asynchronously for a project.", + "responses": { + "201": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + } + }, + "required": [ + "services" + ] + } + } + } + } + } + }, + "\/backups\/archives\/{archiveId}": { + "get": { + "summary": "Get backup archive", + "operationId": "backupsGetArchive", + "tags": [ + "backups" + ], + "description": "Get a backup archive using it's ID.", + "responses": { + "200": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete archive", + "operationId": "backupsDeleteArchive", + "tags": [ + "backups" + ], + "description": "Delete an existing archive for a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "backupsListPolicies", + "tags": [ + "backups" + ], + "description": "List all policies for a project.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "backupsCreatePolicy", + "tags": [ + "backups" + ], + "description": "Create a new backup policy.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "type": "boolean", + "default": true, + "example": false + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + } + }, + "required": [ + "policyId", + "services", + "retention", + "schedule" + ] + } + } + } + } + } + }, + "\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "backupsGetPolicy", + "tags": [ + "backups" + ], + "description": "Get a backup policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "backupsUpdatePolicy", + "tags": [ + "backups" + ], + "description": "Update an existing policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/update-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "schedule": { + "description": "Cron expression", + "type": "string" + }, + "enabled": { + "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "backupsDeletePolicy", + "tags": [ + "backups" + ], + "description": "Delete a policy using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/restoration": { + "post": { + "summary": "Create restoration", + "operationId": "backupsCreateRestoration", + "tags": [ + "backups" + ], + "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", + "responses": { + "201": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "archiveId": { + "description": "Backup archive ID to restore", + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "services": { + "description": "Array of services to restore", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "newResourceId": { + "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_ID>" + }, + "newResourceName": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_NAME>" + } + }, + "required": [ + "archiveId", + "services" + ] + } + } + } + } + } + }, + "\/backups\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "backupsListRestorations", + "tags": [ + "backups" + ], + "description": "List all backup restorations for a project.", + "responses": { + "200": { + "description": "Backup restoration list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/backups\/restorations\/{restorationId}": { + "get": { + "summary": "Get backup restoration", + "operationId": "backupsGetRestoration", + "tags": [ + "backups" + ], + "description": "Get the current status of a backup restoration.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "restorationId", + "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/assistant": { + "post": { + "summary": "Create assistant query", + "operationId": "assistantChat", + "tags": [ + "assistant" + ], + "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "assistant\/chat.md", + "rate-limit": 15, + "rate-time": 3600, + "rate-key": "userId:{userId}", + "scope": "assistant.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prompt": { + "description": "Prompt. A string containing questions asked to the AI assistant.", + "type": "string", + "example": "<PROMPT>" + } + }, + "required": [ + "prompt" + ] + } + } + } + } + } + }, + "\/console\/campaigns\/{campaignId}": { + "get": { + "summary": "Get campaign details", + "operationId": "consoleGetCampaign", + "tags": [ + "console" + ], + "description": "Receive the details of a campaign using its ID.", + "responses": { + "201": { + "description": "Campaign", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/campaign" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-campaign.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "campaignId", + "description": "ID of the campaign", + "required": true, + "schema": { + "type": "string", + "example": "<CAMPAIGN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "consoleGetCoupon", + "tags": [ + "console" + ], + "description": "Get the details of a coupon using it's coupon ID.", + "responses": { + "201": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "<COUPON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/databases": { + "get": { + "summary": "List databases", + "operationId": "consoleListDatabases", + "tags": [ + "console" + ], + "description": "Get a list of all the project's databases. You can use the query params to filter your results. This returns every database across all types and product APIs in a single call.\n", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-databases.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/oauth2-providers": { + "get": { + "summary": "List OAuth2 providers", + "operationId": "consoleListOAuth2Providers", + "tags": [ + "console" + ], + "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", + "responses": { + "200": { + "description": "Console OAuth2 Providers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/plans": { + "get": { + "summary": "Get plans", + "operationId": "consoleGetPlans", + "tags": [ + "console" + ], + "description": "Return a list of all available plans.", + "responses": { + "200": { + "description": "Billing plan list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlanList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plans.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "platform", + "description": "Platform type", + "required": false, + "schema": { + "type": "string", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ], + "default": "appwrite" + }, + "in": "query" + } + ] + } + }, + "\/console\/plans\/{planId}": { + "get": { + "summary": "Get plan", + "operationId": "consoleGetPlan", + "tags": [ + "console" + ], + "description": "Get the details of a plan using its plan ID.", + "responses": { + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plan.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "planId", + "description": "Plan id", + "required": true, + "schema": { + "type": "string", + "example": "<PLAN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/postgres-extensions": { + "get": { + "summary": "List Postgres extensions", + "operationId": "consoleListPostgresExtensions", + "tags": [ + "console" + ], + "description": "Get the catalog of Postgres extensions that can be installed on a dedicated Postgres database.\n", + "responses": { + "200": { + "description": "Postgres extensions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/postgresExtensionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-postgres-extensions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/programs\/{programId}": { + "get": { + "summary": "Get program details", + "operationId": "consoleGetProgram", + "tags": [ + "console" + ], + "description": "Receive the details of a program using its ID.", + "responses": { + "201": { + "description": "Program", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/program" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-program.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "<PROGRAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/programs\/{programId}\/memberships": { + "post": { + "summary": "Create program membership", + "operationId": "consoleCreateProgramMembership", + "tags": [ + "console" + ], + "description": "Create a new membership for an account to a program.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-program-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "<PROGRAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/regions": { + "get": { + "summary": "List Regions", + "operationId": "consoleListRegions", + "tags": [ + "console" + ], + "description": "Get all available regions for the console.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/resources": { + "get": { + "summary": "Check resource ID availability", + "operationId": "consoleGetResource", + "tags": [ + "console" + ], + "description": "Check if a resource ID is available.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-resource.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "value", + "description": "Resource value.", + "required": true, + "schema": { + "type": "string", + "example": "<VALUE>" + }, + "in": "query" + }, + { + "name": "type", + "description": "Resource type.", + "required": true, + "schema": { + "type": "string", + "example": "rules", + "title": "ConsoleResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/console\/scopes\/organization": { + "get": { + "summary": "List organization scopes", + "operationId": "consoleListOrganizationScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for organization API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-organization-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/scopes\/project": { + "get": { + "summary": "List project scopes", + "operationId": "consoleListProjectScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for project API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-project-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/sources": { + "post": { + "summary": "Create source", + "operationId": "consoleCreateSource", + "tags": [ + "console" + ], + "description": "Create a new source.", + "responses": { + "201": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-source.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "description": "Ref param", + "type": "string", + "example": "<REF>", + "nullable": true + }, + "referrer": { + "description": "Referrer", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "utmSource": { + "description": "Utm source", + "type": "string", + "example": "<UTM_SOURCE>", + "nullable": true + }, + "utmCampaign": { + "description": "Utm campaign", + "type": "string", + "example": "<UTM_CAMPAIGN>", + "nullable": true + }, + "utmMedium": { + "description": "Utm medium", + "type": "string", + "example": "<UTM_MEDIUM>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/console\/suggestions\/columns": { + "get": { + "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", + "operationId": "consoleSuggestColumns", + "tags": [ + "console" + ], + "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-columns.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + }, + { + "name": "context", + "description": "Optional user provided context to refine suggestions.", + "required": false, + "schema": { + "type": "string", + "example": "<CONTEXT>" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 3 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 7 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/indexes": { + "get": { + "summary": "Get index suggestions for table columns, using database context", + "operationId": "consoleSuggestIndexes", + "tags": [ + "console" + ], + "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-indexes.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 1 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 4 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/queries": { + "get": { + "summary": "Get query suggestions for a list resource from free-text intent", + "operationId": "consoleSuggestQueries", + "tags": [ + "console" + ], + "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-queries.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resource", + "description": "Resource to generate queries for.", + "required": true, + "schema": { + "type": "string", + "example": "activities", + "title": "QuerySuggestionResource", + "oneOf": [ + { + "type": "string", + "enum": [ + "activities" + ], + "title": "activities" + }, + { + "type": "string", + "enum": [ + "activityevents" + ], + "title": "activity_events" + }, + { + "type": "string", + "enum": [ + "archives" + ], + "title": "archives" + }, + { + "type": "string", + "enum": [ + "credits" + ], + "title": "credits" + }, + { + "type": "string", + "enum": [ + "dnsrecords" + ], + "title": "dns_records" + }, + { + "type": "string", + "enum": [ + "domains" + ], + "title": "domains" + }, + { + "type": "string", + "enum": [ + "invoices" + ], + "title": "invoices" + }, + { + "type": "string", + "enum": [ + "paymentmethods" + ], + "title": "payment_methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "restorations" + ], + "title": "restorations" + }, + { + "type": "string", + "enum": [ + "teamaggregations" + ], + "title": "team_aggregations" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tables" + ], + "title": "tables" + }, + { + "type": "string", + "enum": [ + "rows" + ], + "title": "rows" + }, + { + "type": "string", + "enum": [ + "schedules" + ], + "title": "schedules" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "certificates" + ], + "title": "certificates" + }, + { + "type": "string", + "enum": [ + "realtime" + ], + "title": "realtime" + }, + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + }, + { + "type": "string", + "enum": [ + "installations" + ], + "title": "installations" + }, + { + "type": "string", + "enum": [ + "repositories" + ], + "title": "repositories" + }, + { + "type": "string", + "enum": [ + "vcscomments" + ], + "title": "vcs_comments" + }, + { + "type": "string", + "enum": [ + "vcscommentlocks" + ], + "title": "vcs_comment_locks" + }, + { + "type": "string", + "enum": [ + "reports" + ], + "title": "reports" + }, + { + "type": "string", + "enum": [ + "insights" + ], + "title": "insights" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "tokens" + ], + "title": "tokens" + }, + { + "type": "string", + "enum": [ + "authenticators" + ], + "title": "authenticators" + }, + { + "type": "string", + "enum": [ + "challenges" + ], + "title": "challenges" + }, + { + "type": "string", + "enum": [ + "sessions" + ], + "title": "sessions" + }, + { + "type": "string", + "enum": [ + "identities" + ], + "title": "identities" + }, + { + "type": "string", + "enum": [ + "memberships" + ], + "title": "memberships" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + }, + { + "type": "string", + "enum": [ + "pushledger" + ], + "title": "push_ledger" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "targets" + ], + "title": "targets" + }, + { + "type": "string", + "enum": [ + "presencelogs" + ], + "title": "presence_logs" + }, + { + "type": "string", + "enum": [ + "companies" + ], + "title": "companies" + }, + { + "type": "string", + "enum": [ + "billingaddresses" + ], + "title": "billing_addresses" + }, + { + "type": "string", + "enum": [ + "billingaggregations" + ], + "title": "billing_aggregations" + }, + { + "type": "string", + "enum": [ + "billingaggregationresources" + ], + "title": "billing_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billingteamprojectaggregations" + ], + "title": "billing_team_project_aggregations" + }, + { + "type": "string", + "enum": [ + "billingteamaggregations_v2" + ], + "title": "billing_team_aggregations_v2" + }, + { + "type": "string", + "enum": [ + "billingteamaggregationresources" + ], + "title": "billing_team_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billinginvoices_v2" + ], + "title": "billing_invoices_v2" + }, + { + "type": "string", + "enum": [ + "billingaddons" + ], + "title": "billing_addons" + }, + { + "type": "string", + "enum": [ + "alerts" + ], + "title": "alerts" + }, + { + "type": "string", + "enum": [ + "payments" + ], + "title": "payments" + }, + { + "type": "string", + "enum": [ + "billingdiscounts" + ], + "title": "billing_discounts" + }, + { + "type": "string", + "enum": [ + "resourcesdeleted" + ], + "title": "resources_deleted" + }, + { + "type": "string", + "enum": [ + "sources" + ], + "title": "sources" + }, + { + "type": "string", + "enum": [ + "deals" + ], + "title": "deals" + }, + { + "type": "string", + "enum": [ + "blocks" + ], + "title": "blocks" + }, + { + "type": "string", + "enum": [ + "threats" + ], + "title": "threats" + }, + { + "type": "string", + "enum": [ + "feedbacks" + ], + "title": "feedbacks" + }, + { + "type": "string", + "enum": [ + "disputes" + ], + "title": "disputes" + }, + { + "type": "string", + "enum": [ + "wafrules" + ], + "title": "waf_rules" + }, + { + "type": "string", + "enum": [ + "sh_installations" + ], + "title": "sh_installations" + }, + { + "type": "string", + "enum": [ + "migrationdatabases" + ], + "title": "migration_databases" + }, + { + "type": "string", + "enum": [ + "migrationprojects" + ], + "title": "migration_projects" + }, + { + "type": "string", + "enum": [ + "affiliatelinks" + ], + "title": "affiliate_links" + }, + { + "type": "string", + "enum": [ + "affiliatereferrals" + ], + "title": "affiliate_referrals" + }, + { + "type": "string", + "enum": [ + "affiliaterewards" + ], + "title": "affiliate_rewards" + }, + { + "type": "string", + "enum": [ + "apps" + ], + "title": "apps" + }, + { + "type": "string", + "enum": [ + "appsecrets" + ], + "title": "app_secrets" + }, + { + "type": "string", + "enum": [ + "appinstallations" + ], + "title": "app_installations" + }, + { + "type": "string", + "enum": [ + "appkeys" + ], + "title": "app_keys" + }, + { + "type": "string", + "enum": [ + "oauth2grants" + ], + "title": "oauth2_grants" + }, + { + "type": "string", + "enum": [ + "oauth2consents" + ], + "title": "oauth2_consents" + }, + { + "type": "string", + "enum": [ + "oauth2tokens" + ], + "title": "oauth2_tokens" + }, + { + "type": "string", + "enum": [ + "attributes" + ], + "title": "attributes" + }, + { + "type": "string", + "enum": [ + "indexes" + ], + "title": "indexes" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "variables" + ], + "title": "variables" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "resourcetokens" + ], + "title": "resource_tokens" + }, + { + "type": "string", + "enum": [ + "transactions" + ], + "title": "transactions" + }, + { + "type": "string", + "enum": [ + "transactionlogs" + ], + "title": "transaction_logs" + }, + { + "type": "string", + "enum": [ + "analyticsproperties" + ], + "title": "analytics_properties" + }, + { + "type": "string", + "enum": [ + "dedicateddatabases" + ], + "title": "dedicated_databases" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseconfigs" + ], + "title": "dedicated_database_configs" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseruntimes" + ], + "title": "dedicated_database_runtimes" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseoperations" + ], + "title": "dedicated_database_operations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebackups" + ], + "title": "dedicated_database_backups" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaserestorations" + ], + "title": "dedicated_database_restorations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebranches" + ], + "title": "dedicated_database_branches" + } + ] + }, + "in": "query" + }, + { + "name": "input", + "description": "Natural language query intent used to generate filters\/sorting\/pagination.", + "required": true, + "schema": { + "type": "string", + "example": "<INPUT>" + }, + "in": "query" + }, + { + "name": "databaseId", + "description": "Database ID. Required when resource is `tables` or `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID. Required when resource is `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + } + ] + } + }, + "\/console\/templates\/email\/{templateId}": { + "get": { + "summary": "Get email template", + "operationId": "consoleGetEmailTemplate", + "tags": [ + "console" + ], + "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/console\/variables": { + "get": { + "summary": "Get variables", + "operationId": "consoleVariables", + "tags": [ + "console" + ], + "description": "Get all Environment Variables that are relevant for the console.", + "responses": { + "200": { + "description": "Console Variables", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleVariables" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "tags": [ + "databases" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "databasesCreate", + "tags": [ + "databases" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "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" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "tags": [ + "databases" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", + "tags": [ + "databases" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", + "tags": [ + "databases" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "tags": [ + "databases" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTables" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collections", + "operationId": "databasesCreateCollection", + "tags": [ + "databases" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "tags": [ + "databases" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", + "tags": [ + "databases" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "tags": [ + "databases" + ], + "description": "List attributes in the collection.", + "responses": { + "200": { + "description": "Attributes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/list-attributes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "post": { + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { + "patch": { + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Create a boolean attribute.\n", + "responses": { + "202": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Create a date time attribute according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createDatetimeColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateDatetimeColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Create an email attribute.\n", + "responses": { + "202": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEmailColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEmailColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "responses": { + "202": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEnumColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEnumColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createFloatColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateFloatColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIntegerColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", + "tags": [ + "databases" + ], + "description": "Create IP address attribute.\n", + "responses": { + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIpColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", + "tags": [ + "databases" + ], + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIpColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric line attribute.", + "responses": { + "202": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLineColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "tags": [ + "databases" + ], + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLineColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a longtext attribute.\n", + "responses": { + "202": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a mediumtext attribute.\n", + "responses": { + "202": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric point attribute.", + "responses": { + "202": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPointColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "tags": [ + "databases" + ], + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePointColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric polygon attribute.", + "responses": { + "202": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "202": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "description": "Related Collection ID.", + "type": "string", + "example": "<RELATED_COLLECTION_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Attribute Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "200": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "tags": [ + "databases" + ], + "description": "Create a string attribute.\n", + "responses": { + "202": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for text attributes, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "tags": [ + "databases" + ], + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Create a URL attribute.\n", + "responses": { + "202": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Create a varchar attribute.\n", + "responses": { + "202": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "tags": [ + "databases" + ], + "description": "Get attribute by ID.", + "responses": { + "200": { + "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/get-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/delete-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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", + "platforms": [ + "console", + "server" + ], + "summary": "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "demo": "databases\/upsert-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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#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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "databasesListIndexes", + "tags": [ + "databases" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "databasesCreateIndex", + "tags": [ + "databases" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DatabasesIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "databasesGetIndex", + "tags": [ + "databases" + ], + "description": "Get an index by its unique ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "databasesDeleteIndex", + "tags": [ + "databases" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb": { + "get": { + "summary": "List databases", + "operationId": "documentsDBList", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "documentsDBCreate", + "tags": [ + "documentsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "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" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "tags": [ + "documentsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "tags": [ + "documentsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "tags": [ + "documentsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", + "tags": [ + "documentsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "tags": [ + "documentsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "tags": [ + "documentsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "tags": [ + "documentsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "tags": [ + "documentsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", + "tags": [ + "documentsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "tags": [ + "documentsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "tags": [ + "documentsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DocumentsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "tags": [ + "documentsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "documentsDBCreateFailover", + "tags": [ + "documentsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "documentsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "documentsDBListOperations", + "tags": [ + "documentsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "documentsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "documentsDBGetReplicas", + "tags": [ + "documentsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "documentsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "documentsDBGetStatus", + "tags": [ + "documentsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "tags": [ + "domains" + ], + "description": "List all domains registered for this project. This endpoint supports pagination.", + "responses": { + "200": { + "description": "Domains list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create a new domain.", + "operationId": "domainsCreate", + "tags": [ + "domains" + ], + "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "domain": { + "description": "Domain name (e.g. \"example.com\").", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "teamId", + "domain" + ] + } + } + } + } + } + }, + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "tags": [ + "domains" + ], + "description": "Get the registration price for a domain name.", + "responses": { + "200": { + "description": "DomainPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPrice" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": null, + "demo": "domains\/get-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "2.0.0", + "replaceWith": "domains.listPrices" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "Domain name to get price for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/prices": { + "get": { + "summary": "List domain prices", + "operationId": "domainsListPrices", + "tags": [ + "domains" + ], + "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", + "responses": { + "200": { + "description": "Domain prices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPricesList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-prices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domains", + "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/purchases": { + "post": { + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", + "tags": [ + "domains" + ], + "description": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Fully qualified domain name to purchase (for example, example.com).", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Team ID that will own the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "firstName": { + "description": "Registrant first name used for domain registration.", + "type": "string", + "example": "<FIRST_NAME>" + }, + "lastName": { + "description": "Registrant last name used for domain registration.", + "type": "string", + "example": "<LAST_NAME>" + }, + "email": { + "description": "Registrant email address for registration and notices.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phone": { + "description": "Registrant phone number in E.164 format (for example, +15555551234).", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "billingAddressId": { + "description": "Billing address ID used for registration contact details.", + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "addressLine3": { + "description": "Additional address line for the registrant (line 3).", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE3>" + }, + "companyName": { + "description": "Company or organization name for the registrant.", + "type": "string", + "default": "", + "example": "<COMPANY_NAME>" + }, + "periodYears": { + "description": "Registration term in years (1-10).", + "type": "integer", + "default": 1, + "example": 1, + "format": "int32" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after purchase.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the purchase.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/purchases\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain purchase", + "operationId": "domainsUpdatePurchase", + "tags": [ + "domains" + ], + "description": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", + "tags": [ + "domains" + ], + "description": "List domain suggestions.", + "responses": { + "200": { + "description": "Domain suggestions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainSuggestionsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-suggestions.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "query", + "description": "Query to find available domains and suggestions. Max length: 256 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<QUERY>" + }, + "in": "query" + }, + { + "name": "tlds", + "description": "TLDs to suggest.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of suggestions to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "filterType", + "description": "Filter type: premium, suggestion.", + "required": false, + "schema": { + "type": "string", + "example": "premium", + "title": "DomainSuggestionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "premium" + ], + "title": "premium" + }, + { + "type": "string", + "enum": [ + "suggestion" + ], + "title": "suggestion" + } + ] + }, + "in": "query" + }, + { + "name": "priceMax", + "description": "Filter premium domains by maximum price. Only premium domains at or below this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "priceMin", + "description": "Filter premium domains by minimum price. Only premium domains at or above this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + } + ] + } + }, + "\/domains\/transfers\/in": { + "post": { + "summary": "Create a domain transfer in.", + "operationId": "domainsCreateTransferIn", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name to transfer in.", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Organization ID that this domain will belong to.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "authCode": { + "description": "Authorization code for the domain transfer.", + "type": "string", + "example": "<AUTH_CODE>" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after transfer.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the transfer.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "domain", + "organizationId", + "authCode", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/in\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain transfer in", + "operationId": "domainsUpdateTransferIn", + "tags": [ + "domains" + ], + "description": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", + "responses": { + "202": { + "description": "domainTransferOut", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferOut" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-out.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domainId": { + "description": "Domain unique ID.", + "type": "string", + "example": "<DOMAIN_ID>" + }, + "organizationId": { + "description": "Organization ID that this domain belongs to.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "domainId", + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "tags": [ + "domains" + ], + "description": "Get a domain by its unique ID.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" + ], + "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/auto-renewal": { + "patch": { + "summary": "Update domain auto-renewal setting.", + "operationId": "domainsUpdateAutoRenewal", + "tags": [ + "domains" + ], + "description": "Enable or disable auto-renewal for a domain.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-auto-renewal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "autoRenewal": { + "description": "Whether the domain should renew automatically.", + "type": "boolean", + "example": false + } + }, + "required": [ + "autoRenewal" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Update the registrar nameservers for the given domain.", + "operationId": "domainsUpdateNameservers", + "tags": [ + "domains" + ], + "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "nameservers": { + "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers\/verification": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsVerifyNameservers", + "tags": [ + "domains" + ], + "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/verify-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "tags": [ + "domains" + ], + "description": "List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" + ], + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", + "tags": [ + "domains" + ], + "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "tags": [ + "domains" + ], + "description": "List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "tags": [ + "domains" + ], + "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", + "tags": [ + "domains" + ], + "description": "List ProtonMail DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "tags": [ + "domains" + ], + "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/zoho": { + "get": { + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", + "tags": [ + "domains" + ], + "description": "List Zoho DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "tags": [ + "domains" + ], + "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "tags": [ + "domains" + ], + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "tags": [ + "domains" + ], + "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", + "tags": [ + "domains" + ], + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "tags": [ + "domains" + ], + "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname": { + "post": { + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Update an existing CNAME record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "tags": [ + "domains" + ], + "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "tags": [ + "domains" + ], + "description": "Update an existing MX record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "tags": [ + "domains" + ], + "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "tags": [ + "domains" + ], + "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "tags": [ + "domains" + ], + "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "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", + "tags": [ + "domains" + ], + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "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", + "tags": [ + "domains" + ], + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "default": "", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "tags": [ + "domains" + ], + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/{recordId}": { + "get": { + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", + "tags": [ + "domains" + ], + "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "tags": [ + "domains" + ], + "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "New team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "tags": [ + "domains" + ], + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "responses": { + "200": { + "description": "domainTransferStatus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", + "operationId": "domainsUpdateZone", + "tags": [ + "domains" + ], + "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "DNS zone file content as a string.", + "type": "string", + "example": "<CONTENT>" + } + }, + "required": [ + "content" + ] + } + } + } + } + } + }, + "\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "embeddingsCreateTextEmbeddings", + "tags": [ + "embeddings" + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "responses": { + "200": { + "description": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "embeddings", + "demo": "embeddings\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "embeddings.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "embeddings", + "platforms": [ + "console", + "server" + ], + "summary": "Create Text Embedding", + "auth": { + "Project": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "demo": "embeddings\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "description": "Array of text to generate embeddings.", + "type": "array", + "example": [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], + "items": { + "type": "string" + } + }, + "model": { + "description": "The embedding model to use for generating vector embeddings.", + "type": "string", + "default": "nomic-embed-text", + "example": "nomic-embed-text", + "title": "EmbeddingModel", + "oneOf": [ + { + "type": "string", + "enum": [ + "nomic-embed-text" + ], + "title": "nomic-embed-text" + }, + { + "type": "string", + "enum": [ + "all-minilm" + ], + "title": "all-minilm" + } + ] + } + }, + "required": [ + "texts" + ] + } + } + } + } + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "tags": [ + "functions" + ], + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Functions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/functionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "tags": [ + "functions" + ], + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", + "responses": { + "201": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Function maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } + } + }, + "\/functions\/runtimes": { + "get": { + "summary": "List runtimes", + "operationId": "functionsListRuntimes", + "tags": [ + "functions" + ], + "description": "Get a list of all runtimes that are currently active on your instance.", + "responses": { + "200": { + "description": "Runtimes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/runtimeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-runtimes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "functionsListSpecifications", + "tags": [ + "functions" + ], + "description": "List allowed function specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates": { + "get": { + "summary": "List templates", + "operationId": "functionsListTemplates", + "tags": [ + "functions" + ], + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "responses": { + "200": { + "description": "Function Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunctionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "Runtime", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "FunctionTemplateUseCase", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "starter" + ], + "title": "starter" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "ai" + ], + "title": "ai" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "utilities" + ], + "title": "utilities" + }, + { + "type": "string", + "enum": [ + "dev-tools" + ], + "title": "dev-tools" + }, + { + "type": "string", + "enum": [ + "auth" + ], + "title": "auth" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates\/{templateId}": { + "get": { + "summary": "Get function template", + "operationId": "functionsGetTemplate", + "tags": [ + "functions" + ], + "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "responses": { + "200": { + "description": "Template Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEMPLATE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}": { + "get": { + "summary": "Get function", + "operationId": "functionsGet", + "tags": [ + "functions" + ], + "description": "Get a function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "tags": [ + "functions" + ], + "description": "Update function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "tags": [ + "functions" + ], + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update-function-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "functionsListDeployments", + "tags": [ + "functions" + ], + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "description": "Entrypoint File.", + "type": "string", + "example": "<ENTRYPOINT>", + "nullable": true + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "example": "<COMMANDS>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "description": "Build unique ID.", + "type": "string", + "default": "", + "example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to function code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "commit", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "functionsGetDeployment", + "tags": [ + "functions" + ], + "description": "Get a function deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "tags": [ + "functions" + ], + "description": "Delete a code deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", + "tags": [ + "functions" + ], + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "functions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "tags": [ + "functions" + ], + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "tags": [ + "functions" + ], + "description": "Delete a function execution by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/delete-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "functionsListVariables", + "tags": [ + "functions" + ], + "description": "Get a list of all variables of a specific function.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "tags": [ + "functions" + ], + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", + "tags": [ + "functions" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "tags": [ + "functions" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/growth\/conversations": { + "post": { + "summary": "Create a conversation", + "operationId": "growthCreateConversation", + "tags": [ + "growth" + ], + "description": "Create a conversation with the Appwrite team: support requests, product and docs feedback, enterprise, startup and partner applications, and event sponsorship requests. Signed in console users are identified by their session or JWT; everyone else must pass an email. Attach a file of up to 5MB to support and feedback conversations.", + "responses": { + "201": { + "description": "Growth Conversation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/growthConversation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-conversation.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip},type:{param-type}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Conversation type.", + "type": "string", + "example": "support", + "title": "ConversationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "support" + ], + "title": "support" + }, + { + "type": "string", + "enum": [ + "feedback" + ], + "title": "feedback" + }, + { + "type": "string", + "enum": [ + "docs" + ], + "title": "docs" + }, + { + "type": "string", + "enum": [ + "enterprise" + ], + "title": "enterprise" + }, + { + "type": "string", + "enum": [ + "startup" + ], + "title": "startup" + }, + { + "type": "string", + "enum": [ + "partner" + ], + "title": "partner" + }, + { + "type": "string", + "enum": [ + "sponsorship" + ], + "title": "sponsorship" + } + ] + }, + "email": { + "description": "Email address to reply to. Required without a console session, ignored with one.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "name": { + "description": "Name of the person filing the conversation. Required for enterprise, startup, partner and sponsorship.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "subject": { + "description": "Conversation subject.", + "type": "string", + "default": "", + "example": "<SUBJECT>" + }, + "message": { + "description": "Conversation message. Required for support, feedback, enterprise and partner.", + "type": "string", + "default": "", + "example": "<MESSAGE>" + }, + "organizationId": { + "description": "Organization ID the conversation is about. Kept only when the session user is a member.", + "type": "string", + "default": "", + "example": "<ORGANIZATION_ID>" + }, + "projectId": { + "description": "Project ID the conversation is about. Kept only when it belongs to the kept organization.", + "type": "string", + "default": "", + "example": "<PROJECT_ID>" + }, + "attributes": { + "description": "Additional attributes for the conversation type, as an object or a JSON string.", + "type": "object", + "default": {}, + "example": {} + }, + "attachment": { + "description": "File attachment, support and feedback only, max 5MB.", + "type": "string", + "default": [], + "format": "binary" + } + }, + "required": [ + "type" + ] + }, + "examples": { + "support": { + "summary": "Ask for support", + "value": { + "type": "support", + "email": "walter.obrien@example.com", + "subject": "Custom domain stuck on verifying", + "message": "The domain has been verifying for two hours.", + "projectId": "<PROJECT_ID>" + } + }, + "feedback": { + "summary": "Share product feedback", + "value": { + "type": "feedback", + "email": "walter.obrien@example.com", + "message": "The usage page would help more with a daily breakdown.", + "attributes": { + "npsScore": 9 + } + } + }, + "docs": { + "summary": "Rate a docs page", + "value": { + "type": "docs", + "email": "walter.obrien@example.com", + "attributes": { + "rating": "positive", + "route": "\/docs\/products\/auth" + } + } + }, + "enterprise": { + "summary": "Contact sales about Enterprise", + "value": { + "type": "enterprise", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We need SSO and a dedicated region.", + "attributes": { + "companyName": "Acme", + "companySize": "500-1000", + "companyWebsite": "https:\/\/acme.example" + } + } + }, + "startup": { + "summary": "Apply to the startups program", + "value": { + "type": "startup", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "partner": { + "summary": "Apply to become a partner", + "value": { + "type": "partner", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We build Appwrite projects for agencies.", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "sponsorship": { + "summary": "Request an event sponsorship", + "value": { + "type": "sponsorship", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "eventName": "Acme Dev Summit", + "eventDate": "2026-11-14", + "eventType": "in person", + "socialHandles": "@acme", + "estimatedAttendees": 300, + "eventPublicWebLink": "https:\/\/summit.acme.example" + } + } + } + } + } + } + } + } + }, + "\/growth\/installations": { + "post": { + "summary": "Record a self-hosted installation", + "operationId": "growthCreateInstallation", + "tags": [ + "growth" + ], + "description": "Record a self-hosted installation. Every report is stored as its own row; the admin email is optional because headless CLI installs create no account.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-installation.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},domain:{param-domain}", + "url:{url},ip:{ip}" + ], + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Admin email from the installation, when an account was created.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "name": { + "description": "Admin name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "version": { + "description": "Appwrite version.", + "type": "string", + "default": "", + "example": "<VERSION>" + }, + "domain": { + "description": "Installation domain.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "database": { + "description": "Database adapter.", + "type": "string", + "default": "", + "example": "<DATABASE>" + }, + "hostIp": { + "description": "Resolved installation host IP address.", + "type": "string", + "default": "", + "example": "<HOST_IP>" + }, + "userAgent": { + "description": "Installation user agent.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + }, + "os": { + "description": "Installation operating system.", + "type": "string", + "default": "", + "example": "<OS>" + }, + "arch": { + "description": "Installation CPU architecture.", + "type": "string", + "default": "", + "example": "<ARCH>" + }, + "cpus": { + "description": "Installation CPU count.", + "type": "integer", + "format": "int32" + }, + "ram": { + "description": "Installation RAM in MB.", + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", + "tags": [ + "manager" + ], + "description": "Creates a new resource block.", + "responses": { + "201": { + "description": "ManagerBlock", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlock" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/create-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "description": "Project ID", + "type": "string", + "example": "<PROJECT_ID>" + }, + "resourceType": { + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "resourceId": { + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "type": "string", + "default": "", + "example": "<RESOURCE_ID>" + }, + "mode": { + "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", + "type": "string", + "default": "full", + "example": "full", + "title": "BlockMode", + "oneOf": [ + { + "type": "string", + "enum": [ + "full" + ], + "title": "full" + }, + { + "type": "string", + "enum": [ + "readonly" + ], + "title": "readonly" + } + ] + }, + "reason": { + "description": "Optional reason why the resource is blocked", + "type": "string", + "default": "", + "example": "<REASON>" + }, + "expiredAt": { + "description": "Optional expiration date for the block", + "type": "string", + "default": "", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "projectId", + "resourceType" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", + "tags": [ + "manager" + ], + "description": "Deletes resource blocks for a project.", + "responses": { + "200": { + "description": "ManagerBlockDelete", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlockDelete" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/delete-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "resourceType", + "description": "Resource type to unblock", + "required": true, + "schema": { + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", + "required": false, + "schema": { + "type": "string", + "example": "<RESOURCE_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/blocks\/{projectId}": { + "get": { + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", + "tags": [ + "manager" + ], + "description": "Lists all resource blocks for a project.", + "responses": { + "200": { + "description": "Manager blocks list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlockList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/list-blocks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/manager\/cache": { + "delete": { + "summary": "Clear internal cache", + "operationId": "managerDeleteCache", + "tags": [ + "manager" + ], + "description": "Clears internal cache.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "manager\/delete-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "region", + "description": "Target region.", + "required": false, + "schema": { + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + }, + "in": "query" + }, + { + "name": "cache", + "description": "Cache target.", + "required": false, + "schema": { + "type": "string", + "example": "cache", + "title": "CacheTarget", + "oneOf": [ + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "timelimit" + ], + "title": "timelimit" + }, + { + "type": "string", + "enum": [ + "locks" + ], + "title": "locks" + }, + { + "type": "string", + "enum": [ + "pubsub" + ], + "title": "pubsub" + }, + { + "type": "string", + "enum": [ + "queue" + ], + "title": "queue" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ], + "default": "cache" + }, + "in": "query" + }, + { + "name": "all", + "description": "Clear the entire selected cache target.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + }, + { + "name": "database", + "description": "Database cache scope.", + "required": false, + "schema": { + "type": "string", + "example": "console", + "title": "CacheDatabase", + "oneOf": [ + { + "type": "string", + "enum": [ + "console" + ], + "title": "console" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + } + ], + "default": "console" + }, + "in": "query" + }, + { + "name": "projectId", + "description": "Project ID for project database cache.", + "required": false, + "schema": { + "type": "string", + "example": "<PROJECT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": false, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": false, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/organizations\/status": { + "patch": { + "summary": "Update an organization status by ID", + "operationId": "managerUpdateOrganizationStatus", + "tags": [ + "manager" + ], + "description": "Blocks or unblocks an organization, the same way a billing-limit block does. Blocking makes the organization read-only, disables its backup policies and spins down its dedicated databases.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "organizations", + "demo": "manager\/update-organization-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Organization ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "status": { + "description": "Organization status. Set to `false` to block and `true` to unblock.", + "type": "boolean", + "example": false + }, + "reason": { + "description": "Optional reason when blocking, kept in the audit trail.", + "type": "string", + "default": "", + "example": "<REASON>" + } + }, + "required": [ + "teamId", + "status" + ] + } + } + } + } + } + }, + "\/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": { + "group": "users", + "demo": "manager\/update-user-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "email": { + "description": "User email address.", + "type": "string", + "default": "", + "example": "<EMAIL>" + }, + "status": { + "description": "User status. Set to `false` to block and `true` to unblock.", + "type": "boolean", + "example": false + }, + "reason": { + "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", + "type": "string", + "default": "", + "example": "<REASON>" + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/messageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>" + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "attachments": { + "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>.", + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. If not set, defaults to the sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name of the reply to recipient. If not set, defaults to the sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an email draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "subject": "Welcome", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "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>.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "title": { + "description": "Title for push notification.", + "type": "string", + "default": "", + "example": "<TITLE>" + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "data": { + "description": "Additional key-value pair data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "default": "", + "example": "<ACTION>" + }, + "image": { + "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>.", + "type": "string", + "default": "", + "example": "<ID1:ID2>" + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web Platform.", + "type": "string", + "default": "", + "example": "<ICON>" + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "type": "string", + "default": "", + "example": "<SOUND>" + }, + "color": { + "description": "Color for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<COLOR>" + }, + "tag": { + "description": "Tag for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<TAG>" + }, + "badge": { + "description": "Badge for push notification. Available only for iOS Platform.", + "type": "integer", + "default": -1, + "example": 1, + "format": "int32" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "critical": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "priority": { + "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.", + "type": "string", + "default": "high", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ] + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<CHANNEL_ID>" + } + }, + "required": [ + "messageId" + ] + }, + "examples": { + "draft": { + "summary": "Create a push notification draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "title": "Welcome", + "body": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "description": "Title for push notification.", + "type": "string", + "example": "<TITLE>", + "nullable": true + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "example": "<BODY>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "data": { + "description": "Additional Data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "example": "<ACTION>", + "nullable": true + }, + "image": { + "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>.", + "type": "string", + "example": "<ID1:ID2>", + "nullable": true + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web platforms.", + "type": "string", + "example": "<ICON>", + "nullable": true + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "type": "string", + "example": "<SOUND>", + "nullable": true + }, + "color": { + "description": "Color for push notification. Available only for Android platforms.", + "type": "string", + "example": "<COLOR>", + "nullable": true + }, + "tag": { + "description": "Tag for push notification. Available only for Android platforms.", + "type": "string", + "example": "<TAG>", + "nullable": true + }, + "badge": { + "description": "Badge for push notification. Available only for iOS platforms.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "critical": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + }, + "priority": { + "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.", + "type": "string", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ], + "nullable": true + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", + "type": "string", + "example": "<CHANNEL_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "content": { + "description": "SMS Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an SMS draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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, provider, type, enabled", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite": { + "post": { + "summary": "Create Appwrite provider", + "operationId": "messagingCreateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Appwrite push provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite\/{providerId}": { + "patch": { + "summary": "Update Appwrite provider", + "operationId": "messagingUpdateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Update an Appwrite push provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "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.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "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.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Update a Mailgun provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Create a new MSG91 provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "templateId": { + "description": "Msg91 template ID", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Update a MSG91 provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "templateId": { + "description": "Msg91 template ID.", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "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": { + "group": "providers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "tags": [ + "messaging" + ], + "description": "Update a Resend provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Sendgrid provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Update a Sendgrid provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Amazon SES provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", + "tags": [ + "messaging" + ], + "description": "Update an Amazon SES provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Create a new SMTP provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "host": { + "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.", + "type": "string", + "example": "<HOST>" + }, + "port": { + "description": "The default SMTP server port.", + "type": "integer", + "default": 587, + "example": 587, + "format": "int32" + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "default": true, + "example": false + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Update a SMTP provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "host": { + "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.", + "type": "string", + "default": "", + "example": "<HOST>" + }, + "port": { + "description": "SMTP port.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be 'ssl' or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "example": false, + "nullable": true + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Telesign provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/telesign\/{providerId}": { + "patch": { + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Update a Telesign provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Textmagic provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Update a Textmagic provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "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": { + "group": "providers", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Update a Twilio provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Vonage provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Update a Vonage provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", + "tags": [ + "messaging" + ], + "description": "Get a provider by its unique ID.\n", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/get-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "tags": [ + "messaging" + ], + "description": "Get a list of all topics from the current Appwrite project.", + "responses": { + "200": { + "description": "Topic list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topicList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "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, + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", + "tags": [ + "messaging" + ], + "description": "Create a new topic.", + "responses": { + "201": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/create-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topicId": { + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "type": "string", + "example": "<TOPIC_ID>" + }, + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>" + }, + "subscribe": { + "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.", + "type": "array", + "default": [ + "users" + ], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "topicId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", + "tags": [ + "messaging" + ], + "description": "Update a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/update-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "subscribe": { + "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.", + "type": "array", + "example": [ + "any" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", + "tags": [ + "messaging" + ], + "description": "Delete a topic by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/delete-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "tags": [ + "messaging" + ], + "description": "Get a list of all subscribers from the current Appwrite project.", + "responses": { + "200": { + "description": "Subscriber list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "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": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", + "tags": [ + "messaging" + ], + "description": "Get a subscriber by its unique ID.\n", + "responses": { + "200": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "subscribers", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": null, + "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, + "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, resourceInternalId, resourceType, parentResourceId, parentResourceInternalId, parentResourceType, destinationResourceId, destinationResourceInternalId, destinationResourceType, statusCounters, resourceData, errors", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-appwrite-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "AppwriteMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "team" + ], + "title": "team" + }, + { + "type": "string", + "enum": [ + "membership" + ], + "title": "membership" + }, + { + "type": "string", + "enum": [ + "auth-methods" + ], + "title": "auth-methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "oauth2-provider" + ], + "title": "oauth2-provider" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "deployment" + ], + "title": "deployment" + }, + { + "type": "string", + "enum": [ + "environment-variable" + ], + "title": "environment-variable" + }, + { + "type": "string", + "enum": [ + "provider" + ], + "title": "provider" + }, + { + "type": "string", + "enum": [ + "topic" + ], + "title": "topic" + }, + { + "type": "string", + "enum": [ + "subscriber" + ], + "title": "subscriber" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "site-deployment" + ], + "title": "site-deployment" + }, + { + "type": "string", + "enum": [ + "site-variable" + ], + "title": "site-variable" + }, + { + "type": "string", + "enum": [ + "platform" + ], + "title": "platform" + }, + { + "type": "string", + "enum": [ + "api-key" + ], + "title": "api-key" + }, + { + "type": "string", + "enum": [ + "webhook" + ], + "title": "webhook" + }, + { + "type": "string", + "enum": [ + "smtp" + ], + "title": "smtp" + }, + { + "type": "string", + "enum": [ + "backup-policy" + ], + "title": "backup-policy" + }, + { + "type": "string", + "enum": [ + "project-variable" + ], + "title": "project-variable" + }, + { + "type": "string", + "enum": [ + "project-protocols" + ], + "title": "project-protocols" + }, + { + "type": "string", + "enum": [ + "project-labels" + ], + "title": "project-labels" + }, + { + "type": "string", + "enum": [ + "project-services" + ], + "title": "project-services" + }, + { + "type": "string", + "enum": [ + "project-email-template" + ], + "title": "project-email-template" + }, + { + "type": "string", + "enum": [ + "rule" + ], + "title": "rule" + } + ] + } + }, + "endpoint": { + "description": "Source Appwrite endpoint", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "projectId": { + "description": "Source Project ID", + "type": "string", + "example": "<PROJECT_ID>" + }, + "apiKey": { + "description": "Source API Key", + "type": "string", + "example": "<API_KEY>" + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "resources", + "endpoint", + "projectId", + "apiKey" + ] + } + } + } + } + } + }, + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", + "tags": [ + "migrations" + ], + "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "responses": { + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-appwrite-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "AppwriteMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "team" + ], + "title": "team" + }, + { + "type": "string", + "enum": [ + "membership" + ], + "title": "membership" + }, + { + "type": "string", + "enum": [ + "auth-methods" + ], + "title": "auth-methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "oauth2-provider" + ], + "title": "oauth2-provider" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "deployment" + ], + "title": "deployment" + }, + { + "type": "string", + "enum": [ + "environment-variable" + ], + "title": "environment-variable" + }, + { + "type": "string", + "enum": [ + "provider" + ], + "title": "provider" + }, + { + "type": "string", + "enum": [ + "topic" + ], + "title": "topic" + }, + { + "type": "string", + "enum": [ + "subscriber" + ], + "title": "subscriber" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "site-deployment" + ], + "title": "site-deployment" + }, + { + "type": "string", + "enum": [ + "site-variable" + ], + "title": "site-variable" + }, + { + "type": "string", + "enum": [ + "platform" + ], + "title": "platform" + }, + { + "type": "string", + "enum": [ + "api-key" + ], + "title": "api-key" + }, + { + "type": "string", + "enum": [ + "webhook" + ], + "title": "webhook" + }, + { + "type": "string", + "enum": [ + "smtp" + ], + "title": "smtp" + }, + { + "type": "string", + "enum": [ + "backup-policy" + ], + "title": "backup-policy" + }, + { + "type": "string", + "enum": [ + "project-variable" + ], + "title": "project-variable" + }, + { + "type": "string", + "enum": [ + "project-protocols" + ], + "title": "project-protocols" + }, + { + "type": "string", + "enum": [ + "project-labels" + ], + "title": "project-labels" + }, + { + "type": "string", + "enum": [ + "project-services" + ], + "title": "project-services" + }, + { + "type": "string", + "enum": [ + "project-email-template" + ], + "title": "project-email-template" + }, + { + "type": "string", + "enum": [ + "rule" + ], + "title": "rule" + } + ] + } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Appwrite Endpoint", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "projectID", + "description": "Source's Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "key", + "description": "Source's API Key", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "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": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID containing the source collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to export documents from.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "filename": { + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "type": "string", + "example": "<FILENAME>" + }, + "columns": { + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "queries": { + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "delimiter": { + "description": "The character that separates each column value. Default is comma.", + "type": "string", + "default": ",", + "example": "<DELIMITER>" + }, + "enclosure": { + "description": "The character that encloses each column value. Default is double quotes.", + "type": "string", + "default": "\"", + "example": "<ENCLOSURE>" + }, + "escape": { + "description": "The escape character for the enclosure character. Default is double quotes.", + "type": "string", + "default": "\"", + "example": "<ESCAPE>" + }, + "header": { + "description": "Whether to include the header row with column names. Default is true.", + "type": "boolean", + "default": true, + "example": false + }, + "notify": { + "description": "Set to true to receive an email when the export is complete. Default is true.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", + "tags": [ + "migrations" + ], + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-csv-import.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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).", + "type": "string", + "example": "<BUCKET_ID>" + }, + "fileId": { + "description": "File ID.", + "type": "string", + "example": "<FILE_ID>" + }, + "databaseId": { + "description": "Database ID containing the target collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to import documents into.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "internalFile": { + "description": "Is the file stored in an internal bucket?", + "type": "boolean", + "default": false, + "example": false + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "bucketId", + "fileId", + "databaseId", + "collectionId" + ] + } + } + } + } + } + }, + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-firebase-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "FirebaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "serviceAccount": { + "description": "JSON of the Firebase service account credentials", + "type": "string", + "example": "<SERVICE_ACCOUNT>" + } + }, + "required": [ + "resources", + "serviceAccount" + ] + } + } + } + } + } + }, + "\/migrations\/firebase\/report": { + "get": { + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", + "tags": [ + "migrations" + ], + "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": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-firebase-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "FirebaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", + "required": true, + "schema": { + "type": "string", + "example": "<SERVICE_ACCOUNT>" + }, + "in": "query" + } + ] + } + }, + "\/migrations\/json\/exports": { + "post": { + "summary": "Export documents to JSON", + "operationId": "migrationsCreateJSONExport", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-json-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID containing the source collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to export documents from.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "filename": { + "description": "The name of the file to be created for the export, excluding the .json extension.", + "type": "string", + "example": "<FILENAME>" + }, + "columns": { + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "queries": { + "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.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "notify": { + "description": "Set to true to receive an email when the export is complete. Default is true.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/json\/imports": { + "post": { + "summary": "Import documents from a JSON", + "operationId": "migrationsCreateJSONImport", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-json-import.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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).", + "type": "string", + "example": "<BUCKET_ID>" + }, + "fileId": { + "description": "File ID.", + "type": "string", + "example": "<FILE_ID>" + }, + "databaseId": { + "description": "Database ID containing the target collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to import documents into.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "internalFile": { + "description": "Is the file stored in an internal bucket?", + "type": "boolean", + "default": false, + "example": false + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "bucketId", + "fileId", + "databaseId", + "collectionId" + ] + } + } + } + } + } + }, + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-n-host-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "NHostMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "subdomain": { + "description": "Source's Subdomain", + "type": "string", + "example": "<SUBDOMAIN>" + }, + "region": { + "description": "Source's Region", + "type": "string", + "example": "<REGION>" + }, + "adminSecret": { + "description": "Source's Admin Secret", + "type": "string", + "example": "<ADMIN_SECRET>" + }, + "database": { + "description": "Source's Database Name", + "type": "string", + "example": "<DATABASE>" + }, + "username": { + "description": "Source's Database Username", + "type": "string", + "example": "<USERNAME>" + }, + "password": { + "description": "Source's Database Password", + "type": "string", + "example": "password", + "format": "password" + }, + "port": { + "description": "Source's Database Port", + "type": "integer", + "default": 5432, + "example": 5432, + "format": "int32" + } + }, + "required": [ + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" + ] + } + } + } + } + } + }, + "\/migrations\/nhost\/report": { + "get": { + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", + "tags": [ + "migrations" + ], + "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": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-n-host-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate.", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "NHostMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "subdomain", + "description": "Source's Subdomain.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBDOMAIN>" + }, + "in": "query" + }, + { + "name": "region", + "description": "Source's Region.", + "required": true, + "schema": { + "type": "string", + "example": "<REGION>" + }, + "in": "query" + }, + { + "name": "adminSecret", + "description": "Source's Admin Secret.", + "required": true, + "schema": { + "type": "string", + "example": "<ADMIN_SECRET>" + }, + "in": "query" + }, + { + "name": "database", + "description": "Source's Database Name.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 5432, + "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\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-supabase-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "SupabaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "endpoint": { + "description": "Source's Supabase Endpoint", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "apiKey": { + "description": "Source's API Key", + "type": "string", + "example": "<API_KEY>" + }, + "databaseHost": { + "description": "Source's Database Host", + "type": "string", + "example": "<DATABASE_HOST>" + }, + "username": { + "description": "Source's Database Username", + "type": "string", + "example": "<USERNAME>" + }, + "password": { + "description": "Source's Database Password", + "type": "string", + "example": "password", + "format": "password" + }, + "port": { + "description": "Source's Database Port", + "type": "integer", + "default": 5432, + "example": 5432, + "format": "int32" + } + }, + "required": [ + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" + ] + } + } + } + } + } + }, + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", + "tags": [ + "migrations" + ], + "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": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-supabase-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "SupabaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Supabase Endpoint.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "apiKey", + "description": "Source's API Key.", + "required": true, + "schema": { + "type": "string", + "example": "<API_KEY>" + }, + "in": "query" + }, + { + "name": "databaseHost", + "description": "Source's Database Host.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_HOST>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 5432, + "default": 5432 + }, + "in": "query" + } + ] + } + }, + "\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "migrationsGet", + "tags": [ + "migrations" + ], + "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", + "responses": { + "200": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", + "tags": [ + "migrations" + ], + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", + "tags": [ + "migrations" + ], + "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo": { + "get": { + "summary": "List databases", + "operationId": "mongoList", + "tags": [ + "mongo" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mongoCreate", + "tags": [ + "mongo" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mongo\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mongoListSpecifications", + "tags": [ + "mongo" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mongoGet", + "tags": [ + "mongo" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mongoUpdate", + "tags": [ + "mongo" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mongoDelete", + "tags": [ + "mongo" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mongoListBackups", + "tags": [ + "mongo" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mongoCreateBackup", + "tags": [ + "mongo" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mongoListBackupPolicies", + "tags": [ + "mongo" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mongoCreateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mongoGetBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mongoUpdateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mongoDeleteBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mongoUpdateBackupStorage", + "tags": [ + "mongo" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mongoGetBackup", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mongoDeleteBackup", + "tags": [ + "mongo" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mongoListBranches", + "tags": [ + "mongo" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mongoCreateBranch", + "tags": [ + "mongo" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mongoDeleteBranch", + "tags": [ + "mongo" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mongoUpdateCredentials", + "tags": [ + "mongo" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mongoCreateFailover", + "tags": [ + "mongo" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mongo\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mongoUpdateMaintenance", + "tags": [ + "mongo" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mongoCreateMigration", + "tags": [ + "mongo" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mongo\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mongoListOperations", + "tags": [ + "mongo" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mongo\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mongo\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mongoGetPitr", + "tags": [ + "mongo" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mongo\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mongoGetReplicas", + "tags": [ + "mongo" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mongo\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mongoListRestorations", + "tags": [ + "mongo" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mongoCreateRestoration", + "tags": [ + "mongo" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mongoGetRestoration", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mongoGetStatus", + "tags": [ + "mongo" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mongoCreateUpgrade", + "tags": [ + "mongo" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/mysql": { + "get": { + "summary": "List databases", + "operationId": "mysqlList", + "tags": [ + "mysql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mysqlCreate", + "tags": [ + "mysql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mysql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mysqlListSpecifications", + "tags": [ + "mysql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mysql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mysqlGet", + "tags": [ + "mysql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mysqlUpdate", + "tags": [ + "mysql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mysqlDelete", + "tags": [ + "mysql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mysqlListBackups", + "tags": [ + "mysql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mysqlCreateBackup", + "tags": [ + "mysql" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mysqlListBackupPolicies", + "tags": [ + "mysql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mysqlCreateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mysqlGetBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mysqlUpdateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mysqlDeleteBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mysqlUpdateBackupStorage", + "tags": [ + "mysql" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mysqlGetBackup", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mysqlDeleteBackup", + "tags": [ + "mysql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mysqlListBranches", + "tags": [ + "mysql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mysqlCreateBranch", + "tags": [ + "mysql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mysqlDeleteBranch", + "tags": [ + "mysql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mysqlUpdateCredentials", + "tags": [ + "mysql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "mysqlCreateExecution", + "tags": [ + "mysql" + ], + "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.center\/v1\/sql\/executions` 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": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "mysql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mysqlCreateFailover", + "tags": [ + "mysql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mysql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mysqlUpdateMaintenance", + "tags": [ + "mysql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mysqlCreateMigration", + "tags": [ + "mysql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mysql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mysqlListOperations", + "tags": [ + "mysql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mysql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mysql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mysqlGetPitr", + "tags": [ + "mysql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mysql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "mysqlGetPooler", + "tags": [ + "mysql" + ], + "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": { + "group": "pooler", + "demo": "mysql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "mysqlUpdatePooler", + "tags": [ + "mysql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "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.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "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).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "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.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "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).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "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.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mysqlGetReplicas", + "tags": [ + "mysql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mysql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mysqlListRestorations", + "tags": [ + "mysql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mysqlCreateRestoration", + "tags": [ + "mysql" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mysqlGetRestoration", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mysqlGetStatus", + "tags": [ + "mysql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mysqlCreateUpgrade", + "tags": [ + "mysql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/notifications": { + "get": { + "summary": "List notifications", + "operationId": "notificationsList", + "tags": [ + "notifications" + ], + "description": "Get the list of notifications for the currently logged in console user. Use queries to filter the results by attributes such as read status, view timestamps, or creation date.\n", + "responses": { + "200": { + "description": "Notifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/notificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "notifications\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: read, type, channel, messageId, projectId, resourceType, resourceId, parentResourceType, parentResourceId, firstSeen, lastSeen", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/notifications\/{notificationId}": { + "patch": { + "summary": "Update notification", + "operationId": "notificationsUpdate", + "tags": [ + "notifications" + ], + "description": "Update a notification by its unique ID. Use the `read` parameter to mark the notification as read or unread.\n", + "responses": { + "200": { + "description": "Notification", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/notification" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "notifications\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "notificationId", + "description": "Notification ID.", + "required": true, + "schema": { + "type": "string", + "example": "<NOTIFICATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "read": { + "description": "Notification read status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "read" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/logout": { + "get": { + "summary": "OAuth2 Logout", + "operationId": "oauth2Logout", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "id_token_hint", + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "required": false, + "schema": { + "type": "string", + "example": "<ID_TOKEN_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "logout_hint", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<LOGOUT_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "post_logout_redirect_uri", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "ui_locales", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<UI_LOCALES>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutPost", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "id_token_hint": { + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "type": "string", + "default": "", + "example": "<ID_TOKEN_HINT>" + }, + "logout_hint": { + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<LOGOUT_HINT>" + }, + "client_id": { + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "post_logout_redirect_uri": { + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "ui_locales": { + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<UI_LOCALES>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", + "tags": [ + "organization" + ], + "description": "Get the current organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", + "tags": [ + "organization" + ], + "description": "Update the current organization's name.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization", + "operationId": "organizationDelete", + "tags": [ + "organization" + ], + "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/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": { + "group": "keys", + "demo": "organization\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "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", + "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": { + "group": "keys", + "demo": "organization\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "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.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "OrganizationKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects.read" + ], + "title": "projects.read" + }, + { + "type": "string", + "enum": [ + "projects.write" + ], + "title": "projects.write" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.read" + ], + "title": "organization.projects.keys.read" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.write" + ], + "title": "organization.projects.keys.write" + }, + { + "type": "string", + "enum": [ + "organization.installations.read" + ], + "title": "organization.installations.read" + }, + { + "type": "string", + "enum": [ + "organization.installations.write" + ], + "title": "organization.installations.write" + }, + { + "type": "string", + "enum": [ + "organization.memberships.read" + ], + "title": "organization.memberships.read" + }, + { + "type": "string", + "enum": [ + "organization.memberships.write" + ], + "title": "organization.memberships.write" + }, + { + "type": "string", + "enum": [ + "organization.read" + ], + "title": "organization.read" + }, + { + "type": "string", + "enum": [ + "organization.write" + ], + "title": "organization.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "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": { + "group": "keys", + "demo": "organization\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "keys", + "demo": "organization\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "OrganizationKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects.read" + ], + "title": "projects.read" + }, + { + "type": "string", + "enum": [ + "projects.write" + ], + "title": "projects.write" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.read" + ], + "title": "organization.projects.keys.read" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.write" + ], + "title": "organization.projects.keys.write" + }, + { + "type": "string", + "enum": [ + "organization.installations.read" + ], + "title": "organization.installations.read" + }, + { + "type": "string", + "enum": [ + "organization.installations.write" + ], + "title": "organization.installations.write" + }, + { + "type": "string", + "enum": [ + "organization.memberships.read" + ], + "title": "organization.memberships.read" + }, + { + "type": "string", + "enum": [ + "organization.memberships.write" + ], + "title": "organization.memberships.write" + }, + { + "type": "string", + "enum": [ + "organization.read" + ], + "title": "organization.read" + }, + { + "type": "string", + "enum": [ + "organization.write" + ], + "title": "organization.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete 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": { + "group": "keys", + "demo": "organization\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/memberships": { + "get": { + "summary": "List organization memberships", + "operationId": "organizationListMemberships", + "tags": [ + "organization" + ], + "description": "Get a list of all memberships from the current organization.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "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, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", + "tags": [ + "organization" + ], + "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new organization member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to the organization.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the organization. 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.", + "type": "array", + "items": { + "type": "string" + } + }, + "url": { + "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.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new organization member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/organization\/memberships\/{membershipId}": { + "get": { + "summary": "Get organization membership", + "operationId": "organizationGetMembership", + "tags": [ + "organization" + ], + "description": "Get a membership from the current organization by its unique ID.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", + "tags": [ + "organization" + ], + "description": "Modify the roles of a member in the current organization.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the organization. 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.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization membership", + "operationId": "organizationDeleteMembership", + "tags": [ + "organization" + ], + "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_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": { + "group": "projects", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "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, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "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.", + "type": "string", + "example": "<PROJECT_ID>" + }, + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "region": { + "description": "Project Region.", + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + } + }, + "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": { + "group": "projects", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "projects", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "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": { + "group": "projects", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys": { + "get": { + "summary": "List project keys", + "operationId": "organizationListProjectKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys of a project in your organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/list-project-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project key", + "operationId": "organizationCreateProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new API key for a project in your organization. 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": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "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.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "organizationCreateEphemeralProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new ephemeral API key for a project in your organization. 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": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-ephemeral-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "organizationGetProjectKey", + "tags": [ + "organization" + ], + "description": "Get a project key by its unique ID.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/get-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "organizationUpdateProjectKey", + "tags": [ + "organization" + ], + "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/update-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "organizationDeleteProjectKey", + "tags": [ + "organization" + ], + "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/delete-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "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", + "example": "<SEARCH>", + "default": "" + }, + "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": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "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.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "name": { + "description": "Organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "default": "", + "example": "<BILLING_ADDRESS_ID>", + "nullable": true + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + }, + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "platform": { + "description": "Platform type", + "type": "string", + "default": "appwrite", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ] + } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", + "tags": [ + "organizations" + ], + "description": "Get estimation for creating an organization.", + "responses": { + "200": { + "description": "Estimation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "platform": { + "description": "Platform type", + "type": "string", + "default": "appwrite", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ] + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}": { + "delete": { + "summary": "Delete team", + "operationId": "organizationsDelete", + "tags": [ + "organizations" + ], + "description": "Delete an organization.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organizations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons": { + "get": { + "summary": "List addons", + "operationId": "organizationsListAddons", + "tags": [ + "organizations" + ], + "description": "List all billing addons for an organization.\n", + "responses": { + "200": { + "description": "Addons list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-addons.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_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": { + "group": null, + "demo": "organizations\/create-baa-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/premium-geo-db": { + "post": { + "summary": "Create Premium Geo DB addon", + "operationId": "organizationsCreatePremiumGeoDBAddon", + "tags": [ + "organizations" + ], + "description": "Create a Premium Geo DB addon for an organization.\n", + "responses": { + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-premium-geo-db-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addonId}": { + "get": { + "summary": "Get addon", + "operationId": "organizationsGetAddon", + "tags": [ + "organizations" + ], + "description": "Get the details of a billing addon for an organization.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-addon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete addon", + "operationId": "organizationsDeleteAddon", + "tags": [ + "organizations" + ], + "description": "Delete a billing addon for an organization.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "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": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get addon price", + "operationId": "organizationsGetAddonPrice", + "tags": [ + "organizations" + ], + "description": "Get the price details for a billing addon for an organization.\n", + "responses": { + "200": { + "description": "AddonPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonPrice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-addon-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. baa).", + "required": true, + "schema": { + "type": "string", + "example": "baa", + "title": "AddonKey", + "oneOf": [ + { + "type": "string", + "enum": [ + "baa" + ], + "title": "baa" + }, + { + "type": "string", + "enum": [ + "premiumgeodb" + ], + "title": "premiumgeodb" + }, + { + "type": "string", + "enum": [ + "premiumgeodborg" + ], + "title": "premiumgeodborg" + }, + { + "type": "string", + "enum": [ + "backup_recovery" + ], + "title": "backup_recovery" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", + "tags": [ + "organizations" + ], + "description": "Get a list of all aggregations for an organization.", + "responses": { + "200": { + "description": "Aggregation team list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/aggregationTeamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-aggregations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "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" + } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "get": { + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", + "tags": [ + "organizations" + ], + "description": "Get a specific aggregation using it's aggregation ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/aggregationTeam" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "aggregationId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "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", + "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" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", + "tags": [ + "organizations" + ], + "description": "Set a billing address for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-address.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + } + }, + "required": [ + "billingAddressId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", + "tags": [ + "organizations" + ], + "description": "Delete a team's billing address.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", + "tags": [ + "organizations" + ], + "description": "Get a billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", + "tags": [ + "organizations" + ], + "description": "Set the current billing email for the organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-email.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingEmail": { + "description": "Billing email for the organization.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "billingEmail" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", + "tags": [ + "organizations" + ], + "description": "Update the budget limit for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/update-budget.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "alerts": { + "description": "Budget alert limit percentage", + "type": "array", + "default": [ + 75 + ], + "items": { + "type": "integer" + } + } + }, + "required": [ + "budget" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/credits": { + "get": { + "summary": "List credits", + "operationId": "organizationsListCredits", + "tags": [ + "organizations" + ], + "description": "List all credits for an organization.\n", + "responses": { + "200": { + "description": "CreditList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-credits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "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" + } + ] + }, + "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": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "couponId": { + "description": "ID of the coupon", + "type": "string", + "example": "<COUPON_ID>" + } + }, + "required": [ + "couponId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", + "tags": [ + "organizations" + ], + "description": "Get total available valid credits for an organization.", + "responses": { + "200": { + "description": "CreditAvailable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditAvailable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-available-credits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/credits\/{creditId}": { + "get": { + "summary": "Get credit details", + "operationId": "organizationsGetCredit", + "tags": [ + "organizations" + ], + "description": "Get credit details.", + "responses": { + "200": { + "description": "Credit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/credit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-credit.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "creditId", + "description": "Credit Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<CREDIT_ID>" + }, + "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": "DeleteOrganization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationDeleteOrganization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organizations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/estimations\/update-plan": { + "patch": { + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", + "tags": [ + "organizations" + ], + "description": "Get estimation for updating the organization plan.", + "responses": { + "200": { + "description": "UpdatePlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationUpdatePlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", + "tags": [ + "organizations" + ], + "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": { + "201": { + "description": "Downgrade Feedback", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/downgradeFeedback" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-downgrade-feedback.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "reason": { + "description": "Feedback reason", + "type": "string", + "example": "<REASON>" + }, + "message": { + "description": "Feedback message", + "type": "string", + "example": "<MESSAGE>" + }, + "fromPlanId": { + "description": "Plan downgrading from", + "type": "string", + "example": "<FROM_PLAN_ID>" + }, + "toPlanId": { + "description": "Plan downgrading to", + "type": "string", + "example": "<TO_PLAN_ID>" + } + }, + "required": [ + "reason", + "message", + "fromPlanId", + "toPlanId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", + "tags": [ + "organizations" + ], + "description": "List all invoices for an organization.", + "responses": { + "200": { + "description": "Billing invoices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoiceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "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" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", + "tags": [ + "organizations" + ], + "description": "Get an invoice by its unique ID.", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", + "tags": [ + "organizations" + ], + "description": "Download invoice in PDF", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [] + }, + { + "Project": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", + "tags": [ + "organizations" + ], + "description": "Initiate payment for failed invoice to pay live from console", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-invoice-payment.md", + "rate-limit": 10, + "rate-time": 86400, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Payment method ID", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { + "patch": { + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", + "tags": [ + "organizations" + ], + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/validate-invoice.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", + "tags": [ + "organizations" + ], + "description": "View invoice in PDF", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [] + }, + { + "Project": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Set a organization's default payment method.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-default-payment-method.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Unique ID of payment method", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Delete the default payment method for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-default-payment-method.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-backup-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Unique ID of payment method", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Delete a backup payment method for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-backup-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Get an organization's payment method using it's payment method ID.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", + "tags": [ + "organizations" + ], + "description": "Get the details of the current billing plan for an organization.", + "responses": { + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-plan.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", + "tags": [ + "organizations" + ], + "description": "Update the billing plan for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "default": "", + "example": "<BILLING_ADDRESS_ID>" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + }, + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/plan\/estimations": { + "post": { + "summary": "Create billing plan estimation (upgrade or downgrade)", + "operationId": "organizationsCreatePlanEstimation", + "tags": [ + "organizations" + ], + "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", + "responses": { + "200": { + "description": "EstimationPlanChange", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationPlanChange" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-plan-estimation.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Target billing plan", + "type": "string", + "example": "tier-0" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", + "tags": [ + "organizations" + ], + "description": "Get all available regions for an organization.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/roles": { + "get": { + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", + "tags": [ + "organizations" + ], + "description": "Get Scopes", + "responses": { + "200": { + "description": "Roles", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/roles" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization id", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "projectId", + "description": "Project id", + "required": false, + "schema": { + "type": "string", + "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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-tax-id.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": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + } + }, + "required": [ + "taxId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/usage": { + "get": { + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", + "tags": [ + "organizations" + ], + "description": "Get the usage data for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageOrganization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "startDate", + "description": "Starting date for the usage", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "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", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/validate": { + "patch": { + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", + "tags": [ + "organizations" + ], + "description": "Validate payment for team after creation or upgrade.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/validate-payment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/postgresql": { + "get": { + "summary": "List databases", + "operationId": "postgresqlList", + "tags": [ + "postgresql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "postgresqlCreate", + "tags": [ + "postgresql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "postgresqlListSpecifications", + "tags": [ + "postgresql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/postgresql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "postgresqlGet", + "tags": [ + "postgresql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "postgresqlUpdate", + "tags": [ + "postgresql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "postgresqlDelete", + "tags": [ + "postgresql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "postgresqlListBackups", + "tags": [ + "postgresql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "postgresqlCreateBackup", + "tags": [ + "postgresql" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "postgresqlListBackupPolicies", + "tags": [ + "postgresql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "postgresqlCreateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "postgresqlGetBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "postgresqlUpdateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "postgresqlDeleteBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "postgresqlUpdateBackupStorage", + "tags": [ + "postgresql" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "postgresqlGetBackup", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "postgresqlDeleteBackup", + "tags": [ + "postgresql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "postgresqlListBranches", + "tags": [ + "postgresql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "postgresqlCreateBranch", + "tags": [ + "postgresql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "postgresqlDeleteBranch", + "tags": [ + "postgresql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "postgresqlUpdateCredentials", + "tags": [ + "postgresql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "postgresqlCreateExecution", + "tags": [ + "postgresql" + ], + "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.center\/v1\/sql\/executions` 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": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "postgresql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions": { + "get": { + "summary": "List extensions", + "operationId": "postgresqlListExtensions", + "tags": [ + "postgresql" + ], + "description": "List installed and available extensions for a PostgreSQL database.", + "responses": { + "200": { + "description": "Extensions", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/list-extensions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create extension", + "operationId": "postgresqlCreateExtension", + "tags": [ + "postgresql" + ], + "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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/create-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Delete extension", + "operationId": "postgresqlDeleteExtension", + "tags": [ + "postgresql" + ], + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/delete-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "example": "<EXTENSION_NAME>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "postgresqlCreateFailover", + "tags": [ + "postgresql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "postgresql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "postgresqlUpdateMaintenance", + "tags": [ + "postgresql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "postgresqlCreateMigration", + "tags": [ + "postgresql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "postgresql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "postgresqlListOperations", + "tags": [ + "postgresql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "postgresql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "postgresqlGetPitr", + "tags": [ + "postgresql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "postgresql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "postgresqlGetPooler", + "tags": [ + "postgresql" + ], + "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": { + "group": "pooler", + "demo": "postgresql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "postgresqlUpdatePooler", + "tags": [ + "postgresql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "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.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "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).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "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.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "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).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "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.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "postgresqlGetReplicas", + "tags": [ + "postgresql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "postgresql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "postgresqlListRestorations", + "tags": [ + "postgresql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "postgresqlCreateRestoration", + "tags": [ + "postgresql" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "postgresqlGetRestoration", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "postgresqlGetStatus", + "tags": [ + "postgresql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "postgresqlCreateUpgrade", + "tags": [ + "postgresql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/presences\/usage": { + "get": { + "summary": "Get presence usage", + "operationId": "presencesGetUsage", + "tags": [ + "presences" + ], + "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": "UsagePresence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usagePresence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "presences\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "example": "24h", + "title": "UsageRange", + "oneOf": [ + { + "type": "string", + "enum": [ + "24h" + ], + "title": "Twenty Four Hours" + }, + { + "type": "string", + "enum": [ + "30d" + ], + "title": "Thirty Days" + }, + { + "type": "string", + "enum": [ + "90d" + ], + "title": "Ninety Days" + } + ], + "default": "30d" + }, + "in": "query" + } + ] + } + }, + "\/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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "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": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId" + ], + "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.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", + "tags": [ + "project" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/get.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": [] + } + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", + "tags": [ + "project" + ], + "description": "Delete a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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\/auth-methods\/{methodId}": { + "patch": { + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", + "tags": [ + "project" + ], + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-auth-method.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": [] + } + ], + "parameters": [ + { + "name": "methodId", + "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "required": true, + "schema": { + "type": "string", + "example": "email-password", + "title": "ProjectAuthMethodId", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Auth method status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", + "tags": [ + "project" + ], + "description": "Get a list of all API keys from the current project.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/list-keys.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": [] + } + ], + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project key", + "operationId": "projectCreateKey", + "tags": [ + "project" + ], + "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": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "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.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", + "tags": [ + "project" + ], + "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": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-ephemeral-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "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": { + "group": "keys", + "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": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", + "tags": [ + "project" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/update-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", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", + "tags": [ + "project" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "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", + "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": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-labels.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": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "production" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", + "tags": [ + "project" + ], + "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": "Mock Numbers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/list-mock-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "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", + "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": { + "group": "mocks", + "demo": "project\/create-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "number", + "otp" + ] + } + } + } + } + } + }, + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", + "tags": [ + "project" + ], + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/get-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "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", + "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": { + "group": "mocks", + "demo": "project\/update-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", + "example": "+12065550100" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "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": { + "group": "mocks", + "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", + "example": "+12065550100" + }, + "in": "path" + } + ] + } + }, + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/oauth2-server": { + "put": { + "summary": "Update OAuth2 server", + "operationId": "projectUpdateOAuth2Server", + "tags": [ + "project" + ], + "description": "Update the OAuth2 server (OIDC provider) configuration.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-o-auth-2-server.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": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable or disable the OAuth2 server.", + "type": "boolean", + "example": false + }, + "authorizationUrl": { + "description": "URL to your application with consent screen.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "scopes": { + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "authorizationDetailsTypes": { + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "refreshTokenDuration": { + "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicAccessTokenDuration": { + "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicRefreshTokenDuration": { + "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "installationAccessTokenDuration": { + "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "confidentialPkce": { + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "type": "boolean", + "example": false, + "nullable": true + }, + "verificationUrl": { + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "userCodeLength": { + "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", + "type": "integer", + "example": 6, + "format": "int32", + "nullable": true + }, + "userCodeFormat": { + "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", + "type": "string", + "default": "alphanumeric", + "example": "numeric" + }, + "deviceCodeDuration": { + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "defaultScopes": { + "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationScopes": { + "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "authorizationUrl" + ] + } + } + } + } + } + }, + "\/project\/oauth2\/amazon": { + "patch": { + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Amazon configuration.", + "responses": { + "200": { + "description": "OAuth2Amazon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-amazon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Apple configuration.", + "responses": { + "200": { + "description": "OAuth2Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Apple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-apple.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "type": "string", + "example": "<SERVICE_ID>", + "nullable": true + }, + "keyId": { + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "type": "string", + "example": "<KEY_ID>", + "nullable": true + }, + "teamId": { + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "type": "string", + "example": "<TEAM_ID>", + "nullable": true + }, + "p8File": { + "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-----", + "type": "string", + "example": "<P8_FILE>", + "nullable": true + }, + "nativeClientIds": { + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/appwrite": { + "patch": { + "summary": "Update project OAuth2 Appwrite", + "operationId": "projectUpdateOAuth2Appwrite", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Appwrite configuration.", + "responses": { + "200": { + "description": "OAuth2Appwrite", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-appwrite.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Auth0 configuration.", + "responses": { + "200": { + "description": "OAuth2Auth0", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-auth-0.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "prompt": { + "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", + "type": "array", + "items": { + "title": "ProjectOAuth2Auth0Prompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Authentik configuration.", + "responses": { + "200": { + "description": "OAuth2Authentik", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-authentik.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Authentik instance. For example: example.authentik.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Autodesk configuration.", + "responses": { + "200": { + "description": "OAuth2Autodesk", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-autodesk.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitbucket configuration.", + "responses": { + "200": { + "description": "OAuth2Bitbucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitbucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitly configuration.", + "responses": { + "200": { + "description": "OAuth2Bitly", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitly.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Box configuration.", + "responses": { + "200": { + "description": "OAuth2Box", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Box" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-box.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/cloudflare": { + "patch": { + "summary": "Update project OAuth2 Cloudflare", + "operationId": "projectUpdateOAuth2Cloudflare", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Cloudflare configuration.", + "responses": { + "200": { + "description": "OAuth2Cloudflare", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-cloudflare.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dailymotion configuration.", + "responses": { + "200": { + "description": "OAuth2Dailymotion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dailymotion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "apiKey": { + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "type": "string", + "example": "<API_KEY>", + "nullable": true + }, + "apiSecret": { + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "type": "string", + "example": "<API_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-discord.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", + "type": "array", + "items": { + "title": "ProjectOAuth2DiscordPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Disqus configuration.", + "responses": { + "200": { + "description": "OAuth2Disqus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-disqus.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "publicKey": { + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "type": "string", + "example": "<PUBLIC_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dropbox configuration.", + "responses": { + "200": { + "description": "OAuth2Dropbox", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dropbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appKey": { + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "type": "string", + "example": "<APP_KEY>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Etsy configuration.", + "responses": { + "200": { + "description": "OAuth2Etsy", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-etsy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyString": { + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "type": "string", + "example": "<KEY_STRING>", + "nullable": true + }, + "sharedSecret": { + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "type": "string", + "example": "<SHARED_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Facebook configuration.", + "responses": { + "200": { + "description": "OAuth2Facebook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-facebook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "type": "string", + "example": "<APP_ID>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Figma configuration.", + "responses": { + "200": { + "description": "OAuth2Figma", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Figma" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-figma.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 FusionAuth configuration.", + "responses": { + "200": { + "description": "OAuth2FusionAuth", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-fusion-auth.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/github": { + "patch": { + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 GitHub configuration.", + "responses": { + "200": { + "description": "OAuth2GitHub", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Github" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-git-hub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", + "type": "array", + "items": { + "title": "ProjectOAuth2GitHubPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/gitlab": { + "patch": { + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Gitlab configuration.", + "responses": { + "200": { + "description": "OAuth2Gitlab", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-gitlab.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/google": { + "patch": { + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Google configuration.", + "responses": { + "200": { + "description": "OAuth2Google", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Google" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-google.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "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.", + "type": "array", + "items": { + "title": "ProjectOAuth2GooglePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "nativeClientIds": { + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/huggingface": { + "patch": { + "summary": "Update project OAuth2 Hugging Face", + "operationId": "projectUpdateOAuth2HuggingFace", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Hugging Face configuration.", + "responses": { + "200": { + "description": "OAuth2HuggingFace", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-hugging-face.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kakao": { + "patch": { + "summary": "Update project OAuth2 Kakao", + "operationId": "projectUpdateOAuth2Kakao", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kakao configuration.", + "responses": { + "200": { + "description": "OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kakao.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", + "type": "array", + "items": { + "title": "ProjectOAuth2KakaoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/keycloak": { + "patch": { + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Keycloak configuration.", + "responses": { + "200": { + "description": "OAuth2Keycloak", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-keycloak.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "realmName": { + "description": "Keycloak realm name. For example: appwrite-realm", + "type": "string", + "example": "<REALM_NAME>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kick": { + "patch": { + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kick configuration.", + "responses": { + "200": { + "description": "OAuth2Kick", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kick" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kick.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/linkedin": { + "patch": { + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Linkedin configuration.", + "responses": { + "200": { + "description": "OAuth2Linkedin", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-linkedin.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "primaryClientSecret": { + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "type": "string", + "example": "<PRIMARY_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-microsoft.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "applicationSecret": { + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "type": "string", + "example": "<APPLICATION_SECRET>", + "nullable": true + }, + "tenant": { + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "type": "string", + "example": "<TENANT>", + "nullable": true + }, + "prompt": { + "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", + "type": "array", + "items": { + "title": "ProjectOAuth2MicrosoftPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/notion": { + "patch": { + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Notion configuration.", + "responses": { + "200": { + "description": "OAuth2Notion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Notion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-notion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauthClientId": { + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "type": "string", + "example": "<OAUTH_CLIENT_ID>", + "nullable": true + }, + "oauthClientSecret": { + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "type": "string", + "example": "<OAUTH_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/oidc": { + "patch": { + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Oidc configuration.", + "responses": { + "200": { + "description": "OAuth2Oidc", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-oidc.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "wellKnownURL": { + "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", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "authorizationURL": { + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "tokenURL": { + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "userInfoURL": { + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "prompt": { + "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2OidcPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "maxAge": { + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/okta": { + "patch": { + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Okta configuration.", + "responses": { + "200": { + "description": "OAuth2Okta", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Okta" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-okta.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "domain": { + "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\/", + "type": "string", + "example": "example.com", + "nullable": true + }, + "authorizationServerId": { + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "type": "string", + "example": "<AUTHORIZATION_SERVER_ID>", + "nullable": true + }, + "prompt": { + "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", + "type": "array", + "items": { + "title": "ProjectOAuth2OktaPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypal": { + "patch": { + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Paypal configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypalSandbox": { + "patch": { + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 PaypalSandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/podio": { + "patch": { + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Podio configuration.", + "responses": { + "200": { + "description": "OAuth2Podio", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Podio" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-podio.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/resend": { + "patch": { + "summary": "Update project OAuth2 Resend", + "operationId": "projectUpdateOAuth2Resend", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Resend configuration.", + "responses": { + "200": { + "description": "OAuth2Resend", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Resend" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-resend.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/salesforce": { + "patch": { + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Salesforce configuration.", + "responses": { + "200": { + "description": "OAuth2Salesforce", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-salesforce.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "customerSecret": { + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "type": "string", + "example": "<CUSTOMER_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", + "type": "array", + "items": { + "title": "ProjectOAuth2SalesforcePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/slack": { + "patch": { + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Slack configuration.", + "responses": { + "200": { + "description": "OAuth2Slack", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Slack" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-slack.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Spotify configuration.", + "responses": { + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-spotify.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Stripe configuration.", + "responses": { + "200": { + "description": "OAuth2Stripe", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "apiSecretKey": { + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "type": "string", + "example": "<API_SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tiktok": { + "patch": { + "summary": "Update project OAuth2 TikTok", + "operationId": "projectUpdateOAuth2TikTok", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 TikTok configuration.", + "responses": { + "200": { + "description": "OAuth2TikTok", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tik-tok.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Twitch configuration.", + "responses": { + "200": { + "description": "OAuth2Twitch", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-twitch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/webflow": { + "patch": { + "summary": "Update project OAuth2 Webflow", + "operationId": "projectUpdateOAuth2Webflow", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Webflow configuration.", + "responses": { + "200": { + "description": "OAuth2Webflow", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-webflow.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 WordPress configuration.", + "responses": { + "200": { + "description": "OAuth2WordPress", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-word-press.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 X configuration.", + "responses": { + "200": { + "description": "OAuth2X", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2X" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2x.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yahoo configuration.", + "responses": { + "200": { + "description": "OAuth2Yahoo", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yahoo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yandex configuration.", + "responses": { + "200": { + "description": "OAuth2Yandex", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yandex.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoho configuration.", + "responses": { + "200": { + "description": "OAuth2Zoho", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", + "type": "array", + "items": { + "title": "ProjectOAuth2ZohoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "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": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "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 OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", + "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\/oAuth2Webflow" + }, + { + "$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\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$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" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "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", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "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", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "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", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.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", + "example": "amazon", + "title": "ProjectOAuthProviderId", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/platforms": { + "get": { + "summary": "List project platforms", + "operationId": "projectListPlatforms", + "tags": [ + "project" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "responses": { + "200": { + "description": "Platforms List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.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: 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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/platforms\/android": { + "post": { + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-android-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "platformId", + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "responses": { + "200": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-android-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", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", + "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.", + "responses": { + "201": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-apple-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", + "tags": [ + "project" + ], + "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "responses": { + "200": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-apple-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", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux": { + "post": { + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-linux-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "responses": { + "200": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-linux-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", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-web-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "platformId", + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", + "tags": [ + "project" + ], + "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "responses": { + "200": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-web-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", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-windows-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": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "responses": { + "200": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-windows-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", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/{platformId}": { + "get": { + "summary": "Get project platform", + "operationId": "projectGetPlatform", + "tags": [ + "project" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "responses": { + "200": { + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "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" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", + "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": { + "group": "platforms", + "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", + "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.", + "responses": { + "200": { + "description": "Policies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block aliased emails during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-corporate-email": { + "patch": { + "summary": "Update deny non-corporate email policy", + "operationId": "projectUpdateDenyCorporateEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-corporate-email-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block free email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", + "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..", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userEmail": { + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userPhone": { + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userName": { + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userMFA": { + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userAccessedAt": { + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/mfa-factors": { + "patch": { + "summary": "Update MFA factors policy", + "operationId": "projectUpdateMFAFactorsPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-mfa-factors-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "totp": { + "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "email": { + "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "phone": { + "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "custom": { + "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-dictionary-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-history-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-personal-data": { + "patch": { + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-personal-data-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-pwned": { + "patch": { + "summary": "Update password pwned policy", + "operationId": "projectUpdatePasswordPwnedPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-pwned-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + }, + "sessions": { + "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", + "type": "boolean", + "example": false + }, + "users": { + "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-strength": { + "patch": { + "summary": "Update password strength policy", + "operationId": "projectUpdatePasswordStrengthPolicy", + "tags": [ + "project" + ], + "description": "Update the password strength requirements for users in the project.", + "responses": { + "200": { + "description": "Policy Password Strength", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-strength-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "min": { + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "uppercase": { + "description": "Whether passwords must include at least one uppercase letter.", + "type": "boolean", + "example": false + }, + "lowercase": { + "description": "Whether passwords must include at least one lowercase letter.", + "type": "boolean", + "example": false + }, + "number": { + "description": "Whether passwords must include at least one number.", + "type": "boolean", + "example": false + }, + "symbols": { + "description": "Whether passwords must include at least one symbol.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-alert-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", + "tags": [ + "project" + ], + "description": "Update maximum duration how long sessions created within a project should stay active for.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-duration-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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", + "type": "integer", + "example": 60, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "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": { + "group": "policies", + "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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", + "type": "integer", + "example": 1, + "format": "int32" + } + }, + "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": { + "group": "policies", + "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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/{policyId}": { + "get": { + "summary": "Get project policy", + "operationId": "projectGetPolicy", + "tags": [ + "project" + ], + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "responses": { + "200": { + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "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", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", + "required": true, + "schema": { + "type": "string", + "example": "password-dictionary", + "title": "ProjectPolicyId", + "oneOf": [ + { + "type": "string", + "enum": [ + "password-dictionary" + ], + "title": "password-dictionary" + }, + { + "type": "string", + "enum": [ + "password-history" + ], + "title": "password-history" + }, + { + "type": "string", + "enum": [ + "password-strength" + ], + "title": "password-strength" + }, + { + "type": "string", + "enum": [ + "password-personal-data" + ], + "title": "password-personal-data" + }, + { + "type": "string", + "enum": [ + "password-pwned" + ], + "title": "password-pwned" + }, + { + "type": "string", + "enum": [ + "session-alert" + ], + "title": "session-alert" + }, + { + "type": "string", + "enum": [ + "session-duration" + ], + "title": "session-duration" + }, + { + "type": "string", + "enum": [ + "session-invalidation" + ], + "title": "session-invalidation" + }, + { + "type": "string", + "enum": [ + "session-limit" + ], + "title": "session-limit" + }, + { + "type": "string", + "enum": [ + "user-limit" + ], + "title": "user-limit" + }, + { + "type": "string", + "enum": [ + "membership-privacy" + ], + "title": "membership-privacy" + }, + { + "type": "string", + "enum": [ + "mfa-factors" + ], + "title": "mfa-factors" + }, + { + "type": "string", + "enum": [ + "deny-aliased-email" + ], + "title": "deny-aliased-email" + }, + { + "type": "string", + "enum": [ + "deny-disposable-email" + ], + "title": "deny-disposable-email" + }, + { + "type": "string", + "enum": [ + "deny-free-email" + ], + "title": "deny-free-email" + }, + { + "type": "string", + "enum": [ + "deny-corporate-email" + ], + "title": "deny-corporate-email" + } + ] + }, + "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": { + "group": null, + "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": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "schema": { + "type": "string", + "example": "rest", + "title": "ProjectProtocolId", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Protocol status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", + "tags": [ + "project" + ], + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-service.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": [] + } + ], + "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, oauth2", + "required": true, + "schema": { + "type": "string", + "example": "account", + "title": "ProjectServiceId", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + }, + { + "type": "string", + "enum": [ + "oauth2" + ], + "title": "oauth2" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Service status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/update-smtp.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": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "description": "SMTP server hostname (domain)", + "type": "string", + "example": "example.com", + "nullable": true + }, + "port": { + "description": "SMTP server port", + "type": "integer", + "example": 587, + "format": "int32", + "nullable": true + }, + "username": { + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<USERNAME>", + "nullable": true + }, + "password": { + "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).", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + }, + "senderEmail": { + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "senderName": { + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "replyToEmail": { + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "secure": { + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "type": "string", + "example": "tls", + "title": "ProjectSMTPSecure", + "oneOf": [ + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + } + ], + "nullable": true + }, + "enabled": { + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", + "tags": [ + "project" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/create-smtp-test.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": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "type": "array", + "example": [ + "recipient@example.com" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } + } + } + } + } + }, + "\/project\/templates\/email": { + "get": { + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", + "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.", + "responses": { + "200": { + "description": "Email Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplateList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/list-email-templates.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": [], + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", + "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.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "templateId": { + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "locale": { + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "subject": { + "description": "Subject of the email template. Can be up to 255 characters.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "message": { + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "type": "string", + "example": "<MESSAGE>", + "nullable": true + }, + "senderName": { + "description": "Name of the email sender.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "senderEmail": { + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToEmail": { + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Reply to name.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "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": { + "group": "templates", + "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": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", + "tags": [ + "project" + ], + "description": "Get a list of all project environment variables.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/list-variables.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": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create 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": { + "group": "variables", + "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": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "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.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", + "tags": [ + "project" + ], + "description": "Get a variable by its unique ID. ", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "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, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", + "tags": [ + "project" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/update-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": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", + "tags": [ + "project" + ], + "description": "Delete a variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/delete-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": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons": { + "get": { + "summary": "List project addons", + "operationId": "projectsListAddons", + "tags": [ + "projects" + ], + "description": "List all billing addons for a project.\n", + "responses": { + "200": { + "description": "Addons list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/list-addons.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": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/premium-geo-db": { + "post": { + "summary": "Create Premium Geo DB addon for project", + "operationId": "projectsCreatePremiumGeoDBAddon", + "tags": [ + "projects" + ], + "description": "Create a Premium Geo DB addon for a project.\n", + "responses": { + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/create-premium-geo-db-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addonId}": { + "get": { + "summary": "Get project addon", + "operationId": "projectsGetAddon", + "tags": [ + "projects" + ], + "description": "Get the details of a billing addon for a project.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/get-addon.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": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project addon", + "operationId": "projectsDeleteAddon", + "tags": [ + "projects" + ], + "description": "Delete a billing addon for a project.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/delete-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm project addon payment after 3DS authentication", + "operationId": "projectsConfirmAddonPayment", + "tags": [ + "projects" + ], + "description": "Confirm payment for a billing addon for a project.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/confirm-addon-payment.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get project addon price", + "operationId": "projectsGetAddonPrice", + "tags": [ + "projects" + ], + "description": "Get the price details for a billing addon for a project, including the prorated amount for the remaining days in the current billing cycle.\n", + "responses": { + "200": { + "description": "AddonPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonPrice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/get-addon-price.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": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. premiumGeoDB).", + "required": true, + "schema": { + "type": "string", + "example": "baa" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", + "tags": [ + "projects" + ], + "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/update-console-access.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/schedules": { + "get": { + "summary": "List schedules", + "operationId": "projectsListSchedules", + "tags": [ + "projects" + ], + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Schedules List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/scheduleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/list-schedules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", + "tags": [ + "projects" + ], + "description": "Create a new schedule for a resource.", + "responses": { + "201": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/create-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "type": "string", + "example": "function", + "title": "ScheduleResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "execution" + ], + "title": "execution" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "backup" + ], + "title": "backup" + } + ] + }, + "resourceId": { + "description": "The resource ID to associate with this schedule.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "schedule": { + "description": "Schedule CRON expression.", + "type": "string", + "example": "0 0 * * *" + }, + "active": { + "description": "Whether the schedule is active.", + "type": "boolean", + "default": false, + "example": false + }, + "data": { + "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "resourceType", + "resourceId", + "schedule" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "get": { + "summary": "Get schedule", + "operationId": "projectsGetSchedule", + "tags": [ + "projects" + ], + "description": "Get a schedule by its unique ID.", + "responses": { + "200": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/get-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "scheduleId", + "description": "Schedule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SCHEDULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/stages": { + "get": { + "summary": "List stages", + "operationId": "projectsListStages", + "tags": [ + "projects" + ], + "description": "Get the onboarding stages for the current project, including each stage\u2019s SDK method key and status (for example pending, completed, or skipped).\n", + "responses": { + "200": { + "description": "Stages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/stageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "stages", + "demo": "projects\/list-stages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "stages.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/stages\/{stageId}": { + "patch": { + "summary": "Update stage", + "operationId": "projectsUpdateStage", + "tags": [ + "projects" + ], + "description": "Update an onboarding stage for the current project. Use this endpoint to skip a stage or leave it unchanged without performing the related API action.\n", + "responses": { + "200": { + "description": "Stage", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/stage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "stages", + "demo": "projects\/update-stage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "stages.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "stageId", + "description": "SDK method key (namespace.method).", + "required": true, + "schema": { + "type": "string", + "example": "<STAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "skip": { + "description": "Mark the stage as skipped.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", + "tags": [ + "projects" + ], + "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "New status for the project", + "type": "string", + "example": "active", + "title": "Status", + "oneOf": [ + { + "type": "string", + "enum": [ + "active" + ], + "title": "active" + } + ] + } + }, + "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": { + "group": "projects", + "demo": "projects\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer project to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/proxy\/invalidations": { + "post": { + "summary": "Create invalidation", + "operationId": "proxyCreateInvalidation", + "tags": [ + "proxy" + ], + "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", + "responses": { + "201": { + "description": "Invalidation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyInvalidation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "proxy\/create-invalidation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "proxy.invalidations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "type": { + "description": "Type of reference passed. Allowed values are: tag, path, all", + "type": "string", + "example": "tag", + "title": "InvalidationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + }, + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ] + }, + "reference": { + "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", + "type": "string", + "default": "", + "example": "<REFERENCE>" + } + }, + "required": [ + "domain", + "type" + ] + }, + "examples": { + "tag": { + "summary": "Purge a cache tag", + "value": { + "domain": "example.com", + "type": "tag", + "reference": "<TAG>" + } + }, + "path": { + "summary": "Purge a URL path", + "value": { + "domain": "example.com", + "type": "path", + "reference": "\/blog\/hello-world" + } + } + } + } + } + } + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + } + }, + "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": { + "group": "rules", + "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": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "functionId": { + "description": "ID of function to be executed.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create redirect rule", + "operationId": "proxyCreateRedirectRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "url": { + "description": "Target URL of redirection", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "description": "Status code of redirection", + "type": "string", + "example": "301", + "title": "StatusCode", + "oneOf": [ + { + "type": "string", + "enum": [ + "301" + ], + "title": "MovedPermanently" + }, + { + "type": "string", + "enum": [ + "302" + ], + "title": "Found" + }, + { + "type": "string", + "enum": [ + "307" + ], + "title": "TemporaryRedirect" + }, + { + "type": "string", + "enum": [ + "308" + ], + "title": "PermanentRedirect" + } + ] + }, + "resourceId": { + "description": "ID of parent resource.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "resourceType": { + "description": "Type of parent resource.", + "type": "string", + "example": "site", + "title": "ProxyResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "site" + ], + "title": "Site" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "Function" + } + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "siteId": { + "description": "ID of site to be executed.", + "type": "string", + "example": "<SITE_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "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": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", + "tags": [ + "proxy" + ], + "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": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/update-rule-status.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": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/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": { + "group": "reports", + "demo": "advisor\/list-reports.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.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: 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", + "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": { + "group": "reports", + "demo": "advisor\/get-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "reports", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "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": { + "group": "insights", + "demo": "advisor\/list-insights.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "insights", + "demo": "advisor\/get-insight.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "insightId", + "description": "Insight ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSIGHT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/siteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "siteId": { + "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.", + "type": "string", + "example": "<SITE_ID>" + }, + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + } + } + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "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": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "templates", + "demo": "sites\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "Framework", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "SiteTemplateUseCase", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "portfolio" + ], + "title": "portfolio" + }, + { + "type": "string", + "enum": [ + "starter" + ], + "title": "starter" + }, + { + "type": "string", + "enum": [ + "events" + ], + "title": "events" + }, + { + "type": "string", + "enum": [ + "ecommerce" + ], + "title": "ecommerce" + }, + { + "type": "string", + "enum": [ + "documentation" + ], + "title": "documentation" + }, + { + "type": "string", + "enum": [ + "blog" + ], + "title": "blog" + }, + { + "type": "string", + "enum": [ + "ai" + ], + "title": "ai" + }, + { + "type": "string", + "enum": [ + "forms" + ], + "title": "forms" + }, + { + "type": "string", + "enum": [ + "dashboard" + ], + "title": "dashboard" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/templates\/{templateId}": { + "get": { + "summary": "Get site template", + "operationId": "sitesGetTemplate", + "tags": [ + "sites" + ], + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Template Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateSite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "sites\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEMPLATE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + }, + "nullable": true + } + }, + "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": { + "group": "sites", + "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, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "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, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "tags": [ + "sites" + ], + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "description": "Install Commands.", + "type": "string", + "example": "<INSTALL_COMMAND>", + "nullable": true + }, + "buildCommand": { + "description": "Build Commands.", + "type": "string", + "example": "<BUILD_COMMAND>", + "nullable": true + }, + "outputDirectory": { + "description": "Output Directory.", + "type": "string", + "example": "<OUTPUT_DIRECTORY>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "code" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to site code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "branch", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", + "tags": [ + "sites" + ], + "description": "Get a site deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "tags": [ + "sites" + ], + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "sites.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", + "tags": [ + "sites" + ], + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "tags": [ + "sites" + ], + "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": { + "group": "logs", + "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", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "tags": [ + "sites" + ], + "description": "Delete a site log by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/delete-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "tags": [ + "sites" + ], + "description": "Get a list of all variables of a specific site.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "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", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", + "tags": [ + "sites" + ], + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/create-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": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", + "tags": [ + "sites" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "variables", + "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": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", + "tags": [ + "storage" + ], + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Buckets List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucketList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/list-buckets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", + "tags": [ + "storage" + ], + "description": "Create a new storage bucket.", + "responses": { + "201": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/create-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<BUCKET_ID>" + }, + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "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", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ] + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "tags": [ + "storage" + ], + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/get-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", + "tags": [ + "storage" + ], + "description": "Update a storage bucket by its unique ID.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32", + "nullable": true + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "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", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ], + "nullable": true + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "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": { + "group": "buckets", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "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.", + "type": "string", + "example": "<FILE_ID>" + }, + "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).", + "type": "string", + "format": "binary" + }, + "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).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "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": { + "group": "files", + "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, + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "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", + "example": "FFFFFF", + "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", + "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", + "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", + "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", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.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 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, + "schema": { + "type": "string", + "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", + "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": { + "group": "tablesdb", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "tablesDBListSpecifications", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/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": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "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" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create 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": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", + "tags": [ + "tablesDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", + "tags": [ + "tablesDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "tags": [ + "tablesDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "tablesDBCreateFailover", + "tags": [ + "tablesDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "tablesdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "tablesDBListMigrations", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", + "responses": { + "200": { + "description": "Database Migrations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigrationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/list-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create migration", + "operationId": "tablesDBCreateMigration", + "tags": [ + "tablesDB" + ], + "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", + "responses": { + "201": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "specification": { + "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", + "type": "string", + "example": "s-1vcpu-1gb" + }, + "autoCutover": { + "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "specification" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "tablesDBGetMigration", + "tags": [ + "tablesDB" + ], + "description": "Get a single dedicated migration for a TablesDB database by its ID.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/get-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "tablesDBDeleteMigration", + "tags": [ + "tablesDB" + ], + "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/delete-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { + "post": { + "summary": "Cutover migration", + "operationId": "tablesDBCreateCutover", + "tags": [ + "tablesDB" + ], + "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-cutover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "tablesDBListOperations", + "tags": [ + "tablesDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "tablesdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "tablesDBGetReplicas", + "tags": [ + "tablesDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "tablesdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "tablesDBGetStatus", + "tags": [ + "tablesDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "tables", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, 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, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", + "tags": [ + "tablesDB" + ], + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/create-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "tableId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TABLE_ID>" + }, + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "columns": { + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { + "get": { + "summary": "Get table", + "operationId": "tablesDBGetTable", + "tags": [ + "tablesDB" + ], + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/get-table.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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", + "tags": [ + "tablesDB" + ], + "description": "Update a table by its unique ID.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/update-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "tags": [ + "tablesDB" + ], + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/delete-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", + "tags": [ + "tablesDB" + ], + "description": "List columns in the table.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/list-columns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a boolean column.\n", + "responses": { + "202": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-boolean-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-boolean-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a date time column according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-datetime-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update datetime column", + "operationId": "tablesDBUpdateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-datetime-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "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": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-email-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-email-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "responses": { + "202": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-enum-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-integer-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-integer-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "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": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric line column.", + "responses": { + "202": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-line-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-line-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a longtext column.\n", + "responses": { + "202": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-longtext-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a mediumtext column.\n", + "responses": { + "202": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-mediumtext-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric point column.", + "responses": { + "202": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-point-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-point-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric polygon column.", + "responses": { + "202": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-polygon-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-polygon-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "202": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-relationship-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedTableId": { + "description": "Related Table ID.", + "type": "string", + "example": "<RELATED_TABLE_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Column Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { + "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": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-relationship-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ], + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a string column.\n", + "responses": { + "202": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for text columns, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "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, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a text column.\n", + "responses": { + "202": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "patch": { + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a URL column.\n", + "responses": { + "202": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a varchar column.\n", + "responses": { + "202": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-varchar-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-varchar-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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", + "tags": [ + "tablesDB" + ], + "description": "Get column by ID.", + "responses": { + "200": { + "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/get-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "tags": [ + "tablesDB" + ], + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "tags": [ + "tablesDB" + ], + "description": "List indexes on the table.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "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`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "TablesDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "columns": { + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "columns" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "tags": [ + "tablesDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", + "tags": [ + "tablesDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "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", + "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": { + "group": "rows", + "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, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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", + "platforms": [ + "console", + "server" + ], + "summary": "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "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.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", + "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", + "responses": { + "201": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rows": { + "description": "Array of row data as JSON objects. May contain partial rows.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rows" + ] + } + } + } + } + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", + "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.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected rows", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", + "tags": [ + "tablesDB" + ], + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "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.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "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": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement 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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "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.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "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 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "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.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "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": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "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": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "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, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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": "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "Token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", + "tags": [ + "tokens" + ], + "description": "Get a token by its unique ID.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_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": { + "group": "tokens", + "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.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "File token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + }, + "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": { + "group": "tokens", + "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", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/usage\/events": { + "get": { + "summary": "List usage events", + "operationId": "usageListEvents", + "tags": [ + "usage" + ], + "description": "Aggregate usage event metrics. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one point per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one point per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down by one or more attributes (service, path, status, country, \u2026). `queries[]` filters the underlying events using the standard Utopia query syntax \u2014 `equal(\"path\", [\"\/v1\/storage\/files\"])`, `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `startsWith(\"path\", [\"\/v1\/storage\"])`, `equal(\"status\", [\"200\", \"201\"])`, `isNotNull(\"resourceId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `contains`, `startsWith`, `endsWith`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", + "responses": { + "200": { + "description": "usageEventList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "usage\/list-events.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": [ + "usage.read", + "account" + ], + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=executions` or `metrics[]=executions&metrics[]=executions.compute` for stacked charts. On console: `metrics[]=affiliates.clicks`.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "anyOf": [ + { + "title": "UsageEventMetric", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.events" + ], + "title": "analytics.events" + }, + { + "type": "string", + "enum": [ + "analytics.pageviews" + ], + "title": "analytics.pageviews" + }, + { + "type": "string", + "enum": [ + "analytics.bots.events" + ], + "title": "analytics.bots.events" + }, + { + "type": "string", + "enum": [ + "network.requests" + ], + "title": "network.requests" + }, + { + "type": "string", + "enum": [ + "network.inbound" + ], + "title": "network.inbound" + }, + { + "type": "string", + "enum": [ + "network.outbound" + ], + "title": "network.outbound" + }, + { + "type": "string", + "enum": [ + "webhooks.events.sent" + ], + "title": "webhooks.events.sent" + }, + { + "type": "string", + "enum": [ + "webhooks.events.failed" + ], + "title": "webhooks.events.failed" + }, + { + "type": "string", + "enum": [ + "auth.method.phone" + ], + "title": "auth.method.phone" + }, + { + "type": "string", + "enum": [ + "messages.sent" + ], + "title": "messages.sent" + }, + { + "type": "string", + "enum": [ + "messages.failed" + ], + "title": "messages.failed" + }, + { + "type": "string", + "enum": [ + "messages.sms.sent" + ], + "title": "messages.sms.sent" + }, + { + "type": "string", + "enum": [ + "executions" + ], + "title": "executions" + }, + { + "type": "string", + "enum": [ + "executions.compute" + ], + "title": "executions.compute" + }, + { + "type": "string", + "enum": [ + "executions.mbSeconds" + ], + "title": "executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "functions.executions" + ], + "title": "functions.executions" + }, + { + "type": "string", + "enum": [ + "sites.executions" + ], + "title": "sites.executions" + }, + { + "type": "string", + "enum": [ + "functions.executions.compute" + ], + "title": "functions.executions.compute" + }, + { + "type": "string", + "enum": [ + "sites.executions.compute" + ], + "title": "sites.executions.compute" + }, + { + "type": "string", + "enum": [ + "functions.executions.mbSeconds" + ], + "title": "functions.executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "sites.executions.mbSeconds" + ], + "title": "sites.executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "builds" + ], + "title": "builds" + }, + { + "type": "string", + "enum": [ + "builds.success" + ], + "title": "builds.success" + }, + { + "type": "string", + "enum": [ + "builds.failed" + ], + "title": "builds.failed" + }, + { + "type": "string", + "enum": [ + "builds.compute" + ], + "title": "builds.compute" + }, + { + "type": "string", + "enum": [ + "builds.compute.success" + ], + "title": "builds.compute.success" + }, + { + "type": "string", + "enum": [ + "builds.compute.failed" + ], + "title": "builds.compute.failed" + }, + { + "type": "string", + "enum": [ + "builds.mbSeconds" + ], + "title": "builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "functions.builds.mbSeconds" + ], + "title": "functions.builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "sites.builds.mbSeconds" + ], + "title": "sites.builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "databases.operations.reads" + ], + "title": "databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "databases.operations.writes" + ], + "title": "databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.operations.reads" + ], + "title": "documentsdb.databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.operations.writes" + ], + "title": "documentsdb.databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.operations.reads" + ], + "title": "vectorsdb.databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.operations.writes" + ], + "title": "vectorsdb.databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "files.imagesTransformed" + ], + "title": "files.imagesTransformed" + }, + { + "type": "string", + "enum": [ + "avatars.screenshotsGenerated" + ], + "title": "avatars.screenshotsGenerated" + }, + { + "type": "string", + "enum": [ + "realtime.messages.sent" + ], + "title": "realtime.messages.sent" + }, + { + "type": "string", + "enum": [ + "realtime.inbound" + ], + "title": "realtime.inbound" + }, + { + "type": "string", + "enum": [ + "realtime.outbound" + ], + "title": "realtime.outbound" + }, + { + "type": "string", + "enum": [ + "embeddings.text" + ], + "title": "embeddings.text" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalTokens" + ], + "title": "embeddings.text.totalTokens" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalDuration" + ], + "title": "embeddings.text.totalDuration" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalErrors" + ], + "title": "embeddings.text.totalErrors" + }, + { + "type": "string", + "enum": [ + "waf.requests.denied" + ], + "title": "waf.requests.denied" + }, + { + "type": "string", + "enum": [ + "waf.requests.challenged" + ], + "title": "waf.requests.challenged" + }, + { + "type": "string", + "enum": [ + "waf.requests.rateLimited" + ], + "title": "waf.requests.rateLimited" + }, + { + "type": "string", + "enum": [ + "waf.requests.redirected" + ], + "title": "waf.requests.redirected" + }, + { + "type": "string", + "enum": [ + "waf.requests.challengeSolved" + ], + "title": "waf.requests.challengeSolved" + }, + { + "type": "string", + "enum": [ + "waf.challenge.solveTimeMs" + ], + "title": "waf.challenge.solveTimeMs" + }, + { + "type": "string", + "enum": [ + "affiliates.clicks" + ], + "title": "affiliates.clicks" + }, + { + "type": "string", + "enum": [ + "affiliates.signups" + ], + "title": "affiliates.signups" + }, + { + "type": "string", + "enum": [ + "affiliates.conversions" + ], + "title": "affiliates.conversions" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.inbound" + ], + "title": "dedicatedDatabases.inbound" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.outbound" + ], + "title": "dedicatedDatabases.outbound" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.compute" + ], + "title": "dedicatedDatabases.compute" + } + ] + }, + { + "type": "string" + } + ] + } + }, + "in": "query" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageEventDimension` enum: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", + "required": false, + "schema": { + "type": "string", + "example": "1m", + "title": "UsageInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Minute" + }, + { + "type": "string", + "enum": [ + "15m" + ], + "title": "Fifteen Minutes" + }, + { + "type": "string", + "enum": [ + "30m" + ], + "title": "Thirty Minutes" + }, + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, teamId, resourceId, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "UsageEventDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "method" + ], + "title": "method" + }, + { + "type": "string", + "enum": [ + "status" + ], + "title": "status" + }, + { + "type": "string", + "enum": [ + "service" + ], + "title": "service" + }, + { + "type": "string", + "enum": [ + "resourceType" + ], + "title": "resourceType" + }, + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "continentCode" + ], + "title": "continentCode" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "ip" + ], + "title": "ip" + }, + { + "type": "string", + "enum": [ + "osName" + ], + "title": "osName" + }, + { + "type": "string", + "enum": [ + "clientType" + ], + "title": "clientType" + }, + { + "type": "string", + "enum": [ + "clientName" + ], + "title": "clientName" + }, + { + "type": "string", + "enum": [ + "deviceName" + ], + "title": "deviceName" + }, + { + "type": "string", + "enum": [ + "sdk" + ], + "title": "sdk" + }, + { + "type": "string", + "enum": [ + "sdkVersion" + ], + "title": "sdkVersion" + }, + { + "type": "string", + "enum": [ + "teamId" + ], + "title": "teamId" + }, + { + "type": "string", + "enum": [ + "resourceId" + ], + "title": "resourceId" + }, + { + "type": "string", + "enum": [ + "protocol" + ], + "title": "protocol" + }, + { + "type": "string", + "enum": [ + "queryKeys" + ], + "title": "queryKeys" + }, + { + "type": "string", + "enum": [ + "accept" + ], + "title": "accept" + }, + { + "type": "string", + "enum": [ + "acceptLanguage" + ], + "title": "acceptLanguage" + }, + { + "type": "string", + "enum": [ + "postalCode" + ], + "title": "postalCode" + }, + { + "type": "string", + "enum": [ + "latitude" + ], + "title": "latitude" + }, + { + "type": "string", + "enum": [ + "longitude" + ], + "title": "longitude" + }, + { + "type": "string", + "enum": [ + "timeZone" + ], + "title": "timeZone" + }, + { + "type": "string", + "enum": [ + "weatherCode" + ], + "title": "weatherCode" + }, + { + "type": "string", + "enum": [ + "isp" + ], + "title": "isp" + }, + { + "type": "string", + "enum": [ + "autonomousSystemNumber" + ], + "title": "autonomousSystemNumber" + }, + { + "type": "string", + "enum": [ + "autonomousSystemOrganization" + ], + "title": "autonomousSystemOrganization" + }, + { + "type": "string", + "enum": [ + "connectionType" + ], + "title": "connectionType" + }, + { + "type": "string", + "enum": [ + "connectionUsageType" + ], + "title": "connectionUsageType" + }, + { + "type": "string", + "enum": [ + "connectionOrganization" + ], + "title": "connectionOrganization" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Range start in ISO 8601. Defaults adapt to interval (7d for the no-interval aggregate).", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Range end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "orderBy", + "description": "Column to order by. Allowed: time, value. Default time when an interval is set; otherwise value.", + "required": false, + "schema": { + "type": "string", + "example": "time", + "title": "UsageOrderBy", + "oneOf": [ + { + "type": "string", + "enum": [ + "time" + ], + "title": "time" + }, + { + "type": "string", + "enum": [ + "value" + ], + "title": "value" + } + ], + "default": "time" + }, + "in": "query" + }, + { + "name": "orderDir", + "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, returns the most recent \/ highest-value groups first.", + "required": false, + "schema": { + "type": "string", + "example": "asc", + "title": "UsageOrderDirection", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ], + "default": "desc" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum rows to return (1-5000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 500 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Pagination offset (0-100000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/usage\/gauges": { + "get": { + "summary": "List usage gauges", + "operationId": "usageListGauges", + "tags": [ + "usage" + ], + "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each point carries the latest snapshot in its interval via `argMax(value, time)`. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\nA metric with no stored samples in the window returns an empty `points[]`. A metric that really did read zero returns a point whose `value` is `0`, so \"no such series\" and \"a genuine zero\" are different answers.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down further. Supported on gauges: `resourceId`, `teamId`, `service`, `resourceType`, `ordinal`. `service` and `resourceType` enable per-service \/ per-resource-type panels (e.g. storage-by-service: group `files.storage`, `deployments.storage`, `builds.storage`, `databases.storage` by `service`). `ordinal` separates per-node series for multi-node resources such as dedicated databases. It is a stable per-node identity, not a role \u2014 ordinal 0 is the first member created, and a failover can leave the primary on any ordinal, so read the role from the database's replicas endpoint rather than inferring it here. `queries[]` filters the underlying rows using the standard Utopia query syntax \u2014 `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `equal(\"teamId\", [\"team_x\"])`, `equal(\"ordinal\", [\"0\"])`, `isNotNull(\"teamId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).\n\n`aggregate` selects how the samples in a bucket are combined: `last` (default) is the latest reading \u2014 correct for a snapshot such as storage \u2014 while `max` is the highest reading. Use `max` for a sampled level series: peak concurrent realtime connections is `metrics[]=realtime.connections&aggregate=max`, at whatever `interval` the chart needs, since the peak of a set of samples is just the max of their per-bucket maxima. `realtime.connections` is served only here - it is a concurrency level, not a countable event, so `\/v1\/usage\/events` rejects it.", + "responses": { + "200": { + "description": "usageGaugeList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageGaugeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "gauges", + "demo": "usage\/list-gauges.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=files.storage` or `metrics[]=files.storage&metrics[]=deployments.storage` for stacked charts.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "anyOf": [ + { + "title": "UsageGaugeMetric", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.properties" + ], + "title": "analytics.properties" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + }, + { + "type": "string", + "enum": [ + "sessions" + ], + "title": "sessions" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "collections" + ], + "title": "collections" + }, + { + "type": "string", + "enum": [ + "documents" + ], + "title": "documents" + }, + { + "type": "string", + "enum": [ + "databases.storage" + ], + "title": "databases.storage" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases" + ], + "title": "documentsdb.databases" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections" + ], + "title": "documentsdb.collections" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents" + ], + "title": "documentsdb.documents" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.storage" + ], + "title": "documentsdb.databases.storage" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases" + ], + "title": "vectorsdb.databases" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections" + ], + "title": "vectorsdb.collections" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents" + ], + "title": "vectorsdb.documents" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.storage" + ], + "title": "vectorsdb.databases.storage" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "files" + ], + "title": "files" + }, + { + "type": "string", + "enum": [ + "files.storage" + ], + "title": "files.storage" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "deployments.storage" + ], + "title": "deployments.storage" + }, + { + "type": "string", + "enum": [ + "builds" + ], + "title": "builds" + }, + { + "type": "string", + "enum": [ + "builds.storage" + ], + "title": "builds.storage" + }, + { + "type": "string", + "enum": [ + "users.mau" + ], + "title": "users.mau" + }, + { + "type": "string", + "enum": [ + "users.dau" + ], + "title": "users.dau" + }, + { + "type": "string", + "enum": [ + "users.wau" + ], + "title": "users.wau" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "targets" + ], + "title": "targets" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "domains" + ], + "title": "domains" + }, + { + "type": "string", + "enum": [ + "realtime.connections" + ], + "title": "realtime.connections" + }, + { + "type": "string", + "enum": [ + "backups.policies" + ], + "title": "backups.policies" + }, + { + "type": "string", + "enum": [ + "backups.storage" + ], + "title": "backups.storage" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.storage" + ], + "title": "dedicatedDatabases.storage" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.connections" + ], + "title": "dedicatedDatabases.connections" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.cpu" + ], + "title": "dedicatedDatabases.cpu" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.memory" + ], + "title": "dedicatedDatabases.memory" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.qps" + ], + "title": "dedicatedDatabases.qps" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.iopsRead" + ], + "title": "dedicatedDatabases.iopsRead" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.iopsWrite" + ], + "title": "dedicatedDatabases.iopsWrite" + }, + { + "type": "string", + "enum": [ + "apps" + ], + "title": "apps" + }, + { + "type": "string", + "enum": [ + "apps.users" + ], + "title": "apps.users" + }, + { + "type": "string", + "enum": [ + "apps.installations" + ], + "title": "apps.installations" + } + ] + }, + { + "type": "string" + } + ] + } + }, + "in": "query" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageGaugeDimension` enum: service, resourceType, resourceId, teamId, ordinal. Allowed methods: equal, notEqual, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", + "required": false, + "schema": { + "type": "string", + "example": "1m", + "title": "UsageInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Minute" + }, + { + "type": "string", + "enum": [ + "15m" + ], + "title": "Fifteen Minutes" + }, + { + "type": "string", + "enum": [ + "30m" + ], + "title": "Thirty Minutes" + }, + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType, ordinal.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "UsageGaugeDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "resourceId" + ], + "title": "resourceId" + }, + { + "type": "string", + "enum": [ + "teamId" + ], + "title": "teamId" + }, + { + "type": "string", + "enum": [ + "service" + ], + "title": "service" + }, + { + "type": "string", + "enum": [ + "resourceType" + ], + "title": "resourceType" + }, + { + "type": "string", + "enum": [ + "ordinal" + ], + "title": "ordinal" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Range start in ISO 8601. Defaults to endAt - 7d.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Range end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "orderBy", + "description": "Column to order by. Allowed: time, value. Default time.", + "required": false, + "schema": { + "type": "string", + "example": "time", + "title": "UsageOrderBy", + "oneOf": [ + { + "type": "string", + "enum": [ + "time" + ], + "title": "time" + }, + { + "type": "string", + "enum": [ + "value" + ], + "title": "value" + } + ], + "default": "time" + }, + "in": "query" + }, + { + "name": "orderDir", + "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, this returns the most recent groups first. Pass asc for chronological charting.", + "required": false, + "schema": { + "type": "string", + "example": "asc", + "title": "UsageOrderDirection", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ], + "default": "desc" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum rows to return (1-5000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 500 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Pagination offset (0-100000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "aggregate", + "description": "How to combine the samples in each bucket. `last` (default) returns the latest reading \u2014 the right answer for a snapshot such as storage. `max` returns the highest reading, which is what a sampled level series needs: peak concurrent realtime connections is the max of `realtime.connections` over the window.", + "required": false, + "schema": { + "type": "string", + "example": "last", + "default": "last" + }, + "in": "query" + } + ] + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "tags": [ + "users" + ], + "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Users List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/userList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone", + "nullable": true + }, + "password": { + "description": "Plain text user password. Must be at least 8 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password", + "nullable": true + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Argon2.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Bcrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", + "tags": [ + "users" + ], + "description": "Get identities for all users.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.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: 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, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", + "tags": [ + "users" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using MD5.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "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.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using PHPass.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Optional salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "description": "Optional CPU cost used to hash password.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "passwordMemory": { + "description": "Optional memory cost used to hash password.", + "type": "integer", + "example": 65536, + "format": "int32" + }, + "passwordParallel": { + "description": "Optional parallelization cost used to hash password.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "passwordLength": { + "description": "Optional hash length used to hash password.", + "type": "integer", + "example": 64, + "format": "int32" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } + } + } + } + } + }, + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt Modified.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "description": "Salt separator used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "description": "Signer key used to hash password.", + "type": "string", + "example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "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": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using SHA.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordVersion": { + "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'", + "type": "string", + "example": "sha1", + "title": "PasswordHash", + "oneOf": [ + { + "type": "string", + "enum": [ + "sha1" + ], + "title": "sha1" + }, + { + "type": "string", + "enum": [ + "sha224" + ], + "title": "sha224" + }, + { + "type": "string", + "enum": [ + "sha256" + ], + "title": "sha256" + }, + { + "type": "string", + "enum": [ + "sha384" + ], + "title": "sha384" + }, + { + "type": "string", + "enum": [ + "sha512\/224" + ], + "title": "sha512\/224" + }, + { + "type": "string", + "enum": [ + "sha512\/256" + ], + "title": "sha512\/256" + }, + { + "type": "string", + "enum": [ + "sha512" + ], + "title": "sha512" + }, + { + "type": "string", + "enum": [ + "sha3-224" + ], + "title": "sha3-224" + }, + { + "type": "string", + "enum": [ + "sha3-256" + ], + "title": "sha3-256" + }, + { + "type": "string", + "enum": [ + "sha3-384" + ], + "title": "sha3-384" + }, + { + "type": "string", + "enum": [ + "sha3-512" + ], + "title": "sha3-512" + } + ] + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/usage": { + "get": { + "summary": "Get users usage stats", + "operationId": "usersGetUsage", + "tags": [ + "users" + ], + "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": "UsageUsers", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageUsers" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "users\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "example": "24h", + "title": "UsageRange", + "oneOf": [ + { + "type": "string", + "enum": [ + "24h" + ], + "title": "24h" + }, + { + "type": "string", + "enum": [ + "30d" + ], + "title": "30d" + }, + { + "type": "string", + "enum": [ + "90d" + ], + "title": "90d" + } + ], + "default": "30d" + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", + "tags": [ + "users" + ], + "description": "Get a user by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "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": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", + "tags": [ + "users" + ], + "description": "Update the user email by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", + "tags": [ + "users" + ], + "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. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-impersonator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "impersonator": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "impersonator" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", + "tags": [ + "users" + ], + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", + "type": "string", + "default": "recent()", + "example": "recent()" + }, + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "tags": [ + "users" + ], + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "subscriber" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/memberships": { + "get": { + "summary": "List user memberships", + "operationId": "usersListMemberships", + "tags": [ + "users" + ], + "description": "Get the user membership list by its unique ID.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "users\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", + "tags": [ + "users" + ], + "description": "Enable or disable MFA on a user account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "users", + "demo": "users\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", + "tags": [ + "users" + ], + "description": "Delete an authenticator app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { + "get": { + "summary": "Get MFA challenge", + "operationId": "usersGetMFAChallenge", + "tags": [ + "users" + ], + "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", + "responses": { + "200": { + "description": "MFA Challenge Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallengeSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-challenge.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "getMFAChallenge", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "challengeId" + ], + "required": [ + "userId", + "challengeId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaChallengeSecret" + } + ], + "description": "", + "demo": "users\/get-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "challengeId", + "description": "ID of the challenge.", + "required": true, + "schema": { + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", + "tags": [ + "users" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_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" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", + "tags": [ + "users" + ], + "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": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "tags": [ + "users" + ], + "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": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", + "tags": [ + "users" + ], + "description": "Update the user name by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", + "tags": [ + "users" + ], + "description": "Update the user password by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", + "tags": [ + "users" + ], + "description": "Update the user phone by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "User phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", + "tags": [ + "users" + ], + "description": "Get the user preferences by its unique ID.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", + "tags": [ + "users" + ], + "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", + "tags": [ + "users" + ], + "description": "Get the user sessions list by its unique ID.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.read", + "sessions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", + "tags": [ + "users" + ], + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", + "tags": [ + "users" + ], + "description": "Delete a user sessions by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "type": "boolean", + "example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/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": { + "group": "targets", + "demo": "users\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", + "tags": [ + "users" + ], + "description": "Create a messaging target.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "providerType": { + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "type": "string", + "example": "email", + "title": "MessagingProviderType", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "sms" + ], + "title": "sms" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + } + ] + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", + "tags": [ + "users" + ], + "description": "Get a user's push notification target by ID.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "targets", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "default": "", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "tags": [ + "users" + ], + "description": "Delete a messaging target.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", + "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", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "length": { + "description": "Token length in characters. The default length is 6 characters", + "type": "integer", + "default": 6, + "example": 4, + "format": "int32" + }, + "expire": { + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", + "tags": [ + "users" + ], + "description": "Update the user email verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "description": "User email verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", + "tags": [ + "users" + ], + "description": "Update the user phone verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phoneVerification": { + "description": "User phone verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "phoneVerification" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/detections": { + "post": { + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", + "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", + "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": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerRepositoryId": { + "description": "Repository Id", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "type": { + "description": "Detector type. Must be one of the following: runtime, framework", + "type": "string", + "example": "runtime", + "title": "VCSDetectionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + }, + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "providerRootDirectory": { + "description": "Path to Root Directory", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + } + }, + "required": [ + "providerRepositoryId", + "type" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "get": { + "summary": "List repositories", + "operationId": "vcsListRepositories", + "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", + "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" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Detector type. Must be one of the following: runtime, framework", + "required": true, + "schema": { + "type": "string", + "example": "runtime", + "title": "VCSDetectionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + }, + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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, and equal on namespace.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create repository", + "operationId": "vcsCreateRepository", + "tags": [ + "vcs" + ], + "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", + "responses": { + "200": { + "description": "ProviderRepository", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerRepository" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Repository name (slug)", + "type": "string", + "example": "<NAME>" + }, + "private": { + "description": "Mark repository public or private", + "type": "boolean", + "example": false + }, + "providerNamespace": { + "description": "Namespace of the git repository. Defaults to the installation's own namespace.", + "type": "string", + "default": "", + "example": "<PROVIDER_NAMESPACE>" + } + }, + "required": [ + "name", + "private" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { + "get": { + "summary": "Get repository", + "operationId": "vcsGetRepository", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerRepository" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "get": { + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/branchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "get": { + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vcsContentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + }, + { + "name": "providerRootDirectory", + "description": "Path to get contents of nested directory", + "required": false, + "schema": { + "type": "string", + "example": "<PROVIDER_ROOT_DIRECTORY>", + "default": "" + }, + "in": "query" + }, + { + "name": "providerReference", + "description": "Git reference (branch, tag, commit) to get contents from", + "required": false, + "schema": { + "type": "string", + "example": "<PROVIDER_REFERENCE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { + "patch": { + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", + "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": { + "group": "repositories", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "repositoryId", + "description": "VCS Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<REPOSITORY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerPullRequestId": { + "description": "GitHub Pull Request Id", + "type": "string", + "example": "<PROVIDER_PULL_REQUEST_ID>" + } + }, + "required": [ + "providerPullRequestId" + ] + } + } + } + } + } + }, + "\/vcs\/installations": { + "get": { + "summary": "List installations", + "operationId": "vcsListInstallations", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/installationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "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, + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/vcs\/installations\/{installationId}": { + "get": { + "summary": "Get installation", + "operationId": "vcsGetInstallation", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/installation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "installations", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vcs\/installations\/{installationId}\/namespaces": { + "get": { + "summary": "List namespaces", + "operationId": "vcsListNamespaces", + "tags": [ + "vcs" + ], + "description": "List provider namespaces available to a VCS installation. This can include the user personal namespace and any groups or organizations the installation can browse.", + "responses": { + "200": { + "description": "VCS Namespaces List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vcsNamespaceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "namespaces", + "demo": "vcs\/list-namespaces.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "vectorsdb", + "demo": "vectorsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.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 columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "vectorsDBCreate", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/vectorsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "vectorsDBListSpecifications", + "tags": [ + "vectorsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "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" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "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": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/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": { + "group": "vectorsdb", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "vectorsdb", + "demo": "vectorsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "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": { + "group": "vectorsdb", + "demo": "vectorsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "collections", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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": { + "group": "collections", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimension.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "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": { + "group": "collections", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "collections", + "demo": "vectorsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimensions.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + } + }, + "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": { + "group": "collections", + "demo": "vectorsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "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": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "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#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "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#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", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "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", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "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": { + "group": "documents", + "demo": "vectorsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update metadata on explicitly selected documents", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_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": { + "group": "documents", + "demo": "vectorsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "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", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "indexes", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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": { + "group": "indexes", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "hnsw_euclidean", + "title": "VectorsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "hnsw_euclidean" + ], + "title": "hnsw_euclidean" + }, + { + "type": "string", + "enum": [ + "hnsw_dot" + ], + "title": "hnsw_dot" + }, + { + "type": "string", + "enum": [ + "hnsw_cosine" + ], + "title": "hnsw_cosine" + }, + { + "type": "string", + "enum": [ + "object" + ], + "title": "object" + }, + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "embeddings" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/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": { + "group": "indexes", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "vectorsDBCreateFailover", + "tags": [ + "vectorsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "vectorsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "vectorsDBListOperations", + "tags": [ + "vectorsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "vectorsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "vectorsDBGetReplicas", + "tags": [ + "vectorsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "vectorsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "vectorsDBGetStatus", + "tags": [ + "vectorsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/waf\/rules": { + "get": { + "summary": "List WAF rules.", + "operationId": "wafListRules", + "tags": [ + "waf" + ], + "description": "List WAF rules for the current project.\n", + "responses": { + "200": { + "description": "WAF rule list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/waf\/rules\/bypass": { + "post": { + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", + "tags": [ + "waf" + ], + "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Leave empty for the API resource type.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Bypass other rules for an IP", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Office network", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", + "tags": [ + "waf" + ], + "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge": { + "post": { + "summary": "Create a challenge WAF rule.", + "operationId": "wafCreateChallengeRule", + "tags": [ + "waf" + ], + "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "default": "compute", + "example": "compute" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "default": 3, + "example": 1, + "format": "int32" + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "default": 1800, + "example": 900, + "format": "int32" + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Challenge requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Challenge sign-ins", + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge\/{ruleId}": { + "patch": { + "summary": "Update a challenge WAF rule.", + "operationId": "wafUpdateChallengeRule", + "tags": [ + "waf" + ], + "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "example": "compute", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "example": 900, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", + "tags": [ + "waf" + ], + "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Deny requests from an IP range", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Block abusive range", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny\/{ruleId}": { + "patch": { + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", + "tags": [ + "waf" + ], + "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "default": "ip", + "example": "ip" + }, + "strategy": { + "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", + "type": "string", + "default": "fixedWindow", + "example": "fixedWindow" + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + }, + "examples": { + "scoped": { + "summary": "Rate limit requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Limit sign-ins", + "limit": 10, + "interval": 60, + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit\/{ruleId}": { + "patch": { + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "example": "ip", + "nullable": true + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>" + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + }, + "examples": { + "scoped": { + "summary": "Redirect requests for a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Moved page", + "location": "\/new-page", + "statusCode": 301, + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", + "tags": [ + "waf" + ], + "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>", + "nullable": true + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/{ruleId}": { + "get": { + "summary": "Get a WAF rule.", + "operationId": "wafGetRule", + "tags": [ + "waf" + ], + "description": "Get a WAF rule by its ID.\n", + "responses": { + "200": { + "description": "WafRule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", + "tags": [ + "waf" + ], + "description": "Delete a WAF rule.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/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": { + "group": null, + "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", + "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": { + "group": null, + "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": { + "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.", + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "secret": { + "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.", + "type": "string", + "example": "<SECRET>", + "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": { + "group": null, + "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", + "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": { + "group": null, + "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", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + } + }, + "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": { + "group": null, + "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", + "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": { + "group": null, + "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", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "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.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "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": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "notifications", + "description": "The Notifications service allows you to read and manage your Appwrite Console notifications." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "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": "tokens", + "description": "The Tokens service allows you to create and manage resource tokens for secure file access." + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "usage", + "description": "" + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "vcs", + "description": "The VCS service allows you to interact with providers like GitHub, GitLab etc." + }, + { + "name": "webhooks", + "description": "The Webhooks service allows you to manage your project webhooks." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + }, + { + "name": "mysql", + "description": "" + }, + { + "name": "postgresql", + "description": "" + }, + { + "name": "mongo", + "description": "" + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "domains", + "description": "" + }, + { + "name": "manager", + "description": "" + }, + { + "name": "organizations", + "description": "The Organizations service allows you to manage organization billing, plans, invoices, and add-ons." + }, + { + "name": "affiliates", + "description": "The Affiliates service allows you to share referral codes, track conversions, and apply earned credits." + }, + { + "name": "backups", + "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." + }, + { + "name": "activities", + "description": "The Activities service allows you to list and inspect project activity events." + }, + { + "name": "analytics", + "description": "" + }, + { + "name": "waf", + "description": "" + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "embeddings", + "description": "" + }, + { + "name": "assistant", + "description": "" + }, + { + "name": "growth", + "description": "The Growth service allows you to contact the Appwrite team and record self-hosted installations." + } + ], + "components": { + "schemas": { + "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.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "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.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "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.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "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.", + "format": "int32", + "example": 5 + }, + "tables": { + "type": "array", + "description": "List of tables.", + "items": { + "$ref": "#\/components\/schemas\/table" + }, + "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.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/collection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "databaseList": { + "description": "Databases List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/database" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "indexList": { + "description": "Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "columnIndexList": { + "description": "Column Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "userList": { + "description": "Users List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of users that matched your query.", + "format": "int32", + "example": 5 + }, + "users": { + "type": "array", + "description": "List of users.", + "items": { + "$ref": "#\/components\/schemas\/user" + }, + "example": [] + } + }, + "required": [ + "total", + "users" + ], + "example": { + "total": 5, + "users": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "notificationList": { + "description": "Notifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of notifications that matched your query.", + "format": "int32", + "example": 5 + }, + "notifications": { + "type": "array", + "description": "List of notifications.", + "items": { + "$ref": "#\/components\/schemas\/notification" + }, + "example": [] + } + }, + "required": [ + "total", + "notifications" + ], + "example": { + "total": 5, + "notifications": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "bucketList": { + "description": "Buckets List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of buckets that matched your query.", + "format": "int32", + "example": 5 + }, + "buckets": { + "type": "array", + "description": "List of buckets.", + "items": { + "$ref": "#\/components\/schemas\/bucket" + }, + "example": [] + } + }, + "required": [ + "total", + "buckets" + ], + "example": { + "total": 5, + "buckets": "" + } + }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "siteList": { + "description": "Sites List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sites that matched your query.", + "format": "int32", + "example": 5 + }, + "sites": { + "type": "array", + "description": "List of sites.", + "items": { + "$ref": "#\/components\/schemas\/site" + }, + "example": [] + } + }, + "required": [ + "total", + "sites" + ], + "example": { + "total": 5, + "sites": "" + } + }, + "templateSiteList": { + "description": "Site Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/templateSite" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "functionList": { + "description": "Functions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of functions that matched your query.", + "format": "int32", + "example": 5 + }, + "functions": { + "type": "array", + "description": "List of functions.", + "items": { + "$ref": "#\/components\/schemas\/function" + }, + "example": [] + } + }, + "required": [ + "total", + "functions" + ], + "example": { + "total": 5, + "functions": "" + } + }, + "templateFunctionList": { + "description": "Function Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/templateFunction" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "installationList": { + "description": "Installations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/installation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "providerRepositoryFrameworkList": { + "description": "Framework Provider Repositories List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworkProviderRepositories that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworkProviderRepositories": { + "type": "array", + "description": "List of frameworkProviderRepositories.", + "items": { + "$ref": "#\/components\/schemas\/providerRepositoryFramework" + }, + "example": [] + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "example": "framework" + } + }, + "required": [ + "total", + "frameworkProviderRepositories", + "type" + ], + "example": { + "total": 5, + "frameworkProviderRepositories": "", + "type": "framework" + } + }, + "providerRepositoryRuntimeList": { + "description": "Runtime Provider Repositories List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimeProviderRepositories that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimeProviderRepositories": { + "type": "array", + "description": "List of runtimeProviderRepositories.", + "items": { + "$ref": "#\/components\/schemas\/providerRepositoryRuntime" + }, + "example": [] + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "example": "runtime" + } + }, + "required": [ + "total", + "runtimeProviderRepositories", + "type" + ], + "example": { + "total": 5, + "runtimeProviderRepositories": "", + "type": "runtime" + } + }, + "vcsNamespace": { + "description": "VcsNamespace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "VCS (Version Control System) namespace ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) namespace display name.", + "example": "Appwrite" + }, + "path": { + "type": "string", + "description": "VCS (Version Control System) namespace path, used to filter repositories by namespace.", + "example": "appwrite" + }, + "type": { + "type": "string", + "description": "Namespace type. Either the user's personal namespace or a group\/organization.", + "example": "user" + }, + "avatarUrl": { + "type": "string", + "description": "Namespace avatar URL.", + "example": "https:\/\/example.com\/avatar.png" + } + }, + "required": [ + "$id", + "name", + "path", + "type", + "avatarUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Appwrite", + "path": "appwrite", + "type": "user", + "avatarUrl": "https:\/\/example.com\/avatar.png" + } + }, + "vcsNamespaceList": { + "description": "VCS Namespaces List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of namespaces that matched your query.", + "format": "int32", + "example": 5 + }, + "namespaces": { + "type": "array", + "description": "List of namespaces.", + "items": { + "$ref": "#\/components\/schemas\/vcsNamespace" + }, + "example": [] + } + }, + "required": [ + "total", + "namespaces" + ], + "example": { + "total": 5, + "namespaces": "" + } + }, + "branchList": { + "description": "Branches List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches that matched your query.", + "format": "int32", + "example": 5 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/branch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 5, + "branches": "" + } + }, + "frameworkList": { + "description": "Frameworks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworks that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworks": { + "type": "array", + "description": "List of frameworks.", + "items": { + "$ref": "#\/components\/schemas\/framework" + }, + "example": [] + } + }, + "required": [ + "total", + "frameworks" + ], + "example": { + "total": 5, + "frameworks": "" + } + }, + "runtimeList": { + "description": "Runtimes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimes that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimes": { + "type": "array", + "description": "List of runtimes.", + "items": { + "$ref": "#\/components\/schemas\/runtime" + }, + "example": [] + } + }, + "required": [ + "total", + "runtimes" + ], + "example": { + "total": 5, + "runtimes": "" + } + }, + "deploymentList": { + "description": "Deployments List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of deployments that matched your query.", + "format": "int32", + "example": 5 + }, + "deployments": { + "type": "array", + "description": "List of deployments.", + "items": { + "$ref": "#\/components\/schemas\/deployment" + }, + "example": [] + } + }, + "required": [ + "total", + "deployments" + ], + "example": { + "total": 5, + "deployments": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "webhookList": { + "description": "Webhooks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of webhooks that matched your query.", + "format": "int32", + "example": 5 + }, + "webhooks": { + "type": "array", + "description": "List of webhooks.", + "items": { + "$ref": "#\/components\/schemas\/webhook" + }, + "example": [] + } + }, + "required": [ + "total", + "webhooks" + ], + "example": { + "total": 5, + "webhooks": "" + } + }, + "keyList": { + "description": "API Keys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/key" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "variableList": { + "description": "Variables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of variables that matched your query.", + "format": "int32", + "example": 5 + }, + "variables": { + "type": "array", + "description": "List of variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + } + }, + "required": [ + "total", + "variables" + ], + "example": { + "total": 5, + "variables": "" + } + }, + "mockNumberList": { + "description": "Mock Numbers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of mockNumbers that matched your query.", + "format": "int32", + "example": 5 + }, + "mockNumbers": { + "type": "array", + "description": "List of mockNumbers.", + "items": { + "$ref": "#\/components\/schemas\/mockNumber" + }, + "example": [] + } + }, + "required": [ + "total", + "mockNumbers" + ], + "example": { + "total": 5, + "mockNumbers": "" + } + }, + "policyList": { + "description": "Policies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies in the given project.", + "format": "int32", + "example": 10 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "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", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 10, + "policies": "" + } + }, + "emailTemplateList": { + "description": "Email Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/emailTemplate" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "proxyRuleList": { + "description": "Rule List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/proxyRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "scheduleList": { + "description": "Schedules List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of schedules that matched your query.", + "format": "int32", + "example": 5 + }, + "schedules": { + "type": "array", + "description": "List of schedules.", + "items": { + "$ref": "#\/components\/schemas\/schedule" + }, + "example": [] + } + }, + "required": [ + "total", + "schedules" + ], + "example": { + "total": 5, + "schedules": "" + } + }, + "stageList": { + "description": "Stages List", + "type": "object", + "properties": { + "stages": { + "type": "array", + "description": "List of stages.", + "items": { + "$ref": "#\/components\/schemas\/stage" + }, + "example": [] + } + }, + "required": [ + "stages" + ], + "example": { + "stages": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "providerList": { + "description": "Provider list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of providers that matched your query.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of providers.", + "items": { + "$ref": "#\/components\/schemas\/provider" + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "messageList": { + "description": "Message list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of messages that matched your query.", + "format": "int32", + "example": 5 + }, + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "#\/components\/schemas\/message" + }, + "example": [] + } + }, + "required": [ + "total", + "messages" + ], + "example": { + "total": 5, + "messages": "" + } + }, + "topicList": { + "description": "Topic list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of topics that matched your query.", + "format": "int32", + "example": 5 + }, + "topics": { + "type": "array", + "description": "List of topics.", + "items": { + "$ref": "#\/components\/schemas\/topic" + }, + "example": [] + } + }, + "required": [ + "total", + "topics" + ], + "example": { + "total": 5, + "topics": "" + } + }, + "subscriberList": { + "description": "Subscriber list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of subscribers that matched your query.", + "format": "int32", + "example": 5 + }, + "subscribers": { + "type": "array", + "description": "List of subscribers.", + "items": { + "$ref": "#\/components\/schemas\/subscriber" + }, + "example": [] + } + }, + "required": [ + "total", + "subscribers" + ], + "example": { + "total": 5, + "subscribers": "" + } + }, + "targetList": { + "description": "Target list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of targets that matched your query.", + "format": "int32", + "example": 5 + }, + "targets": { + "type": "array", + "description": "List of targets.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + } + }, + "required": [ + "total", + "targets" + ], + "example": { + "total": 5, + "targets": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "migrationList": { + "description": "Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/migration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "specificationList": { + "description": "Specifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of specifications that matched your query.", + "format": "int32", + "example": 5 + }, + "specifications": { + "type": "array", + "description": "List of specifications.", + "items": { + "$ref": "#\/components\/schemas\/specification" + }, + "example": [] + } + }, + "required": [ + "total", + "specifications" + ], + "example": { + "total": 5, + "specifications": "" + } + }, + "vcsContentList": { + "description": "VCS Content List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of contents that matched your query.", + "format": "int32", + "example": 5 + }, + "contents": { + "type": "array", + "description": "List of contents.", + "items": { + "$ref": "#\/components\/schemas\/vcsContent" + }, + "example": [] + } + }, + "required": [ + "total", + "contents" + ], + "example": { + "total": 5, + "contents": "" + } + }, + "vectorsdbCollectionList": { + "description": "VectorsDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "format": "int32", + "example": 5 + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "example": [] + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, + "insightList": { + "description": "Insights List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of insights that matched your query.", + "format": "int32", + "example": 5 + }, + "insights": { + "type": "array", + "description": "List of insights.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "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.", + "format": "int32", + "example": 5 + }, + "reports": { + "type": "array", + "description": "List of reports.", + "items": { + "$ref": "#\/components\/schemas\/report" + }, + "example": [] + } + }, + "required": [ + "total", + "reports" + ], + "example": { + "total": 5, + "reports": "" + } + }, + "database": { + "description": "Database", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database name.", + "example": "My Database" + }, + "$createdAt": { + "type": "string", + "description": "Database creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "enabled": { + "type": "boolean", + "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "type": { + "description": "Database type.", + "example": "legacy", + "title": "DatabaseType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "legacy" + ], + "title": "legacy" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "mysql" + ], + "title": "mysql" + }, + { + "type": "string", + "enum": [ + "postgresql" + ], + "title": "postgresql" + }, + { + "type": "string", + "enum": [ + "mongodb" + ], + "title": "mongodb" + } + ] + }, + "status": { + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", + "readOnly": true, + "example": "ready", + "title": "DatabaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "provisioning" + ], + "title": "provisioning" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "inactive" + ], + "title": "inactive" + }, + { + "type": "string", + "enum": [ + "paused" + ], + "title": "paused" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "deleted" + ], + "title": "deleted" + }, + { + "type": "string", + "enum": [ + "restoring" + ], + "title": "restoring" + }, + { + "type": "string", + "enum": [ + "scaling" + ], + "title": "scaling" + }, + { + "type": "string", + "enum": [ + "upgrading" + ], + "title": "upgrading" + }, + { + "type": "string", + "enum": [ + "migrating" + ], + "title": "migrating" + }, + { + "type": "string", + "enum": [ + "pausing" + ], + "title": "pausing" + }, + { + "type": "string", + "enum": [ + "resuming" + ], + "title": "resuming" + }, + { + "type": "string", + "enum": [ + "failing-over" + ], + "title": "failing-over" + } + ], + "nullable": true + }, + "engine": { + "type": "string", + "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "postgresql", + "nullable": true + }, + "specification": { + "type": "string", + "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "s-2vcpu-2gb", + "nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "format": "int32", + "readOnly": true, + "example": 0, + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", + "readOnly": true, + "example": "", + "nullable": true + }, + "containerStatus": { + "type": "string", + "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "policies": { + "type": "array", + "description": "Database backup policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [], + "nullable": true + }, + "archives": { + "type": "array", + "description": "Database backup archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "enabled", + "type" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "My Database", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "enabled": false, + "type": "legacy", + "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, + "error": "", + "containerStatus": "active", + "lifecycleState": "active", + "policies": {}, + "archives": {} + } + }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "example": "nomic-embed-text" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "format": "int32", + "example": 768 + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "nomic-embed-text", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, + "collection": { + "description": "Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "attributeList": { + "description": "Attributes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of attributes in the given collection.", + "format": "int32", + "example": 5 + }, + "attributes": { + "type": "array", + "description": "List of attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "attributes" + ], + "example": { + "total": 5, + "attributes": "" + } + }, + "attributeString": { + "description": "AttributeString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeInteger": { + "description": "AttributeInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "integer" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeBigint": { + "description": "AttributeBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "bigint" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeFloat": { + "description": "AttributeFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "double" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "attributeBoolean": { + "description": "AttributeBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "boolean" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "attributeEmail": { + "description": "AttributeEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "attributeEnum": { + "description": "AttributeEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "attributeIp": { + "description": "AttributeIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "attributeUrl": { + "description": "AttributeURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "http:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "http:\/\/example.com" + } + }, + "attributeDatetime": { + "description": "AttributeDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "datetime" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeRelationship": { + "description": "AttributeRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedCollection": { + "type": "string", + "description": "The ID of the related collection.", + "example": "collection" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedCollection", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedCollection": "collection", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "attributePoint": { + "description": "AttributePoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "attributeLine": { + "description": "AttributeLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "attributePolygon": { + "description": "AttributePolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "attributeVarchar": { + "description": "AttributeVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeMediumtext": { + "description": "AttributeMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeLongtext": { + "description": "AttributeLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "vectorsdbCollection": { + "description": "VectorsDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "object": "#\/components\/schemas\/attributeObject", + "vector": "#\/components\/schemas\/attributeVector" + } + } + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 1536 + } + }, + "table": { + "description": "Table", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Table ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Table creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Table update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Table name.", + "example": "My Table" + }, + "enabled": { + "type": "boolean", + "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "rowSecurity": { + "type": "boolean", + "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "columns": { + "type": "array", + "description": "Table columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Table indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum row size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used row size in bytes based on defined columns.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "rowSecurity", + "columns", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Table", + "enabled": false, + "rowSecurity": true, + "columns": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "columnList": { + "description": "Columns List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of columns in the given table.", + "format": "int32", + "example": 5 + }, + "columns": { + "type": "array", + "description": "List of columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "columns" + ], + "example": { + "total": 5, + "columns": "" + } + }, + "columnString": { + "description": "ColumnString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnInteger": { + "description": "ColumnInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "integer" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnBigint": { + "description": "ColumnBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "bigint" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnFloat": { + "description": "ColumnFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "double" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "columnBoolean": { + "description": "ColumnBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "boolean" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "columnEmail": { + "description": "ColumnEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "columnEnum": { + "description": "ColumnEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "columnIp": { + "description": "ColumnIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "columnUrl": { + "description": "ColumnURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "https:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "https:\/\/example.com" + } + }, + "columnDatetime": { + "description": "ColumnDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "datetime" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "columnRelationship": { + "description": "ColumnRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedTable": { + "type": "string", + "description": "The ID of the related table.", + "example": "table" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedTable", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedTable": "table", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "columnPoint": { + "description": "ColumnPoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "columnLine": { + "description": "ColumnLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "columnPolygon": { + "description": "ColumnPolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "columnVarchar": { + "description": "ColumnVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnText": { + "description": "ColumnText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnMediumtext": { + "description": "ColumnMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnLongtext": { + "description": "ColumnLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "index": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "attributes": { + "type": "array", + "description": "Index attributes.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index attributes length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "attributes", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "attributes": [], + "lengths": [], + "orders": [] + } + }, + "columnIndex": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index Key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "type": "string", + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "columns": { + "type": "array", + "description": "Index columns.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index columns length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "columns", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "columns": [], + "lengths": [], + "orders": [] + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "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).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "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", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "notification": { + "description": "Notification", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Notification ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Notification creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Notification update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "messageId": { + "type": "string", + "description": "Stable message ID used for dedup.", + "example": "session.create", + "nullable": true + }, + "type": { + "type": "string", + "description": "Notification type: info, warning, error.", + "example": "info" + }, + "channel": { + "type": "string", + "description": "Channel: email, sms, push, console, webhook.", + "example": "email" + }, + "resourceType": { + "type": "string", + "description": "Resource type this notification is addressed to.", + "example": "users" + }, + "resourceId": { + "type": "string", + "description": "Resource ID this notification is addressed to.", + "example": "5e5bb8c16897e" + }, + "parentResourceType": { + "type": "string", + "description": "Parent resource type for the notification.", + "example": "projects" + }, + "parentResourceId": { + "type": "string", + "description": "Parent resource ID for the notification.", + "example": "5e5bb8c16897e" + }, + "projectId": { + "type": "string", + "description": "Project the notification pertains to.", + "example": "5e5bb8c16897e", + "nullable": true + }, + "title": { + "type": "string", + "description": "Notification title.", + "example": "New sign-in detected" + }, + "body": { + "type": "string", + "description": "Notification body.", + "example": "A new device signed in to your account." + }, + "read": { + "type": "boolean", + "description": "Whether the notification has been read.", + "example": false, + "nullable": true + }, + "firstSeen": { + "type": "string", + "description": "First time the notification was viewed from a notification logo.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lastSeen": { + "type": "string", + "description": "Most recent time the notification was viewed from a notification logo.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "channel", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "body" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "messageId": "session.create", + "type": "info", + "channel": "email", + "resourceType": "users", + "resourceId": "5e5bb8c16897e", + "parentResourceType": "projects", + "parentResourceId": "5e5bb8c16897e", + "projectId": "5e5bb8c16897e", + "title": "New sign-in detected", + "body": "A new device signed in to your account.", + "read": false, + "firstSeen": "2020-10-15T06:38:00.000+00:00", + "lastSeen": "2020-10-15T06:38:00.000+00:00" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "bucket": { + "description": "Bucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Bucket creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Bucket update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "fileSecurity": { + "type": "boolean", + "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "name": { + "type": "string", + "description": "Bucket name.", + "example": "Documents" + }, + "enabled": { + "type": "boolean", + "description": "Bucket enabled.", + "example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size supported.", + "format": "int32", + "example": 100 + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions.", + "items": { + "type": "string" + }, + "example": [ + "jpg", + "png" + ] + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + }, + "encryption": { + "type": "boolean", + "description": "Bucket is encrypted.", + "example": false + }, + "antivirus": { + "type": "boolean", + "description": "Virus scanning is enabled.", + "example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "example": false + }, + "totalSize": { + "type": "integer", + "description": "Total size of this bucket in bytes.", + "format": "int32", + "example": 128 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "fileSecurity", + "name", + "enabled", + "maximumFileSize", + "allowedFileExtensions", + "compression", + "encryption", + "antivirus", + "transformations", + "totalSize" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "fileSecurity": true, + "name": "Documents", + "enabled": false, + "maximumFileSize": 100, + "allowedFileExtensions": [ + "jpg", + "png" + ], + "compression": "gzip", + "encryption": false, + "antivirus": false, + "transformations": false, + "totalSize": 128 + } + }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "files" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceType", + "expire", + "secret", + "accessedAt" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", + "resourceType": "files", + "expire": "2020-10-15T06:38:00.000+00:00", + "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "site": { + "description": "Site", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Site ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Site creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Site update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Site name.", + "example": "My Site" + }, + "enabled": { + "type": "boolean", + "description": "Site enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "example": false + }, + "framework": { + "type": "string", + "description": "Site framework.", + "example": "react" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Site's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "deploymentScreenshotLight": { + "type": "string", + "description": "Screenshot of active deployment with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "deploymentScreenshotDark": { + "type": "string", + "description": "Screenshot of active deployment with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentId": { + "type": "string", + "description": "Site's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "timeout": { + "type": "integer", + "description": "Site request timeout in seconds.", + "format": "int32", + "example": 300 + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the site dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the site.", + "example": "npm run build" + }, + "startCommand": { + "type": "string", + "description": "Custom command to use when starting site runtime.", + "example": "node custom-server.mjs" + }, + "outputDirectory": { + "type": "string", + "description": "The directory where the site build output is located.", + "example": "build" + }, + "installationId": { + "type": "string", + "description": "Site VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": "sites\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "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", + "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" + }, + "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" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for SSR executions.", + "example": "s-1vcpu-512mb" + }, + "buildRuntime": { + "type": "string", + "description": "Site build runtime.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework adapter.", + "example": "static" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "enabled", + "live", + "logging", + "framework", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "deploymentScreenshotLight", + "deploymentScreenshotDark", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "timeout", + "installCommand", + "buildCommand", + "startCommand", + "outputDirectory", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification", + "buildRuntime", + "adapter", + "fallbackFile" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Site", + "enabled": false, + "live": false, + "logging": false, + "framework": "react", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "deploymentScreenshotLight": "5e5ea5c16897e", + "deploymentScreenshotDark": "5e5ea5c16897e", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "timeout": 300, + "installCommand": "npm install", + "buildCommand": "npm run build", + "startCommand": "node custom-server.mjs", + "outputDirectory": "build", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "sites\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb", + "buildRuntime": "node-22", + "adapter": "static", + "fallbackFile": "index.html" + } + }, + "templateSite": { + "description": "Template Site", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Site Template ID.", + "example": "starter" + }, + "name": { + "type": "string", + "description": "Site Template Name.", + "example": "Starter site" + }, + "tagline": { + "type": "string", + "description": "Short description of template", + "example": "Minimal web app integrating with Appwrite." + }, + "demoUrl": { + "type": "string", + "description": "URL hosting a template demo.", + "example": "https:\/\/nextjs-starter.appwrite.network\/", + "nullable": true + }, + "screenshotDark": { + "type": "string", + "description": "File URL with preview screenshot in dark theme preference.", + "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png" + }, + "screenshotLight": { + "type": "string", + "description": "File URL with preview screenshot in light theme preference.", + "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png" + }, + "useCases": { + "type": "array", + "description": "Site use cases.", + "items": { + "type": "string" + }, + "example": [ + "Starter" + ] + }, + "frameworks": { + "type": "array", + "description": "List of frameworks that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateFramework" + }, + "example": [] + }, + "vcsProvider": { + "type": "string", + "description": "VCS (Version Control System) Provider.", + "example": "github" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "templates" + }, + "providerOwner": { + "type": "string", + "description": "VCS (Version Control System) Owner.", + "example": "appwrite" + }, + "providerVersion": { + "type": "string", + "description": "VCS (Version Control System) branch version (tag).", + "example": "main" + }, + "variables": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/templateVariable" + }, + "example": [] + } + }, + "required": [ + "key", + "name", + "tagline", + "screenshotDark", + "screenshotLight", + "useCases", + "frameworks", + "vcsProvider", + "providerRepositoryId", + "providerOwner", + "providerVersion", + "variables" + ], + "example": { + "key": "starter", + "name": "Starter site", + "tagline": "Minimal web app integrating with Appwrite.", + "demoUrl": "https:\/\/nextjs-starter.appwrite.network\/", + "screenshotDark": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png", + "screenshotLight": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png", + "useCases": "Starter", + "frameworks": [], + "vcsProvider": "github", + "providerRepositoryId": "templates", + "providerOwner": "appwrite", + "providerVersion": "main", + "variables": [] + } + }, + "templateFramework": { + "description": "Template Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Parent framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "The output directory to store the build output.", + "example": ".\/build" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": ".\/svelte-kit\/starter" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime used during build step of template.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework runtime", + "example": "ssr" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for SPA. Only relevant for static serve runtime.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "name", + "installCommand", + "buildCommand", + "outputDirectory", + "providerRootDirectory", + "buildRuntime", + "adapter" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/build", + "providerRootDirectory": ".\/svelte-kit\/starter", + "buildRuntime": "node-22", + "adapter": "ssr", + "fallbackFile": "index.html" + } + }, + "function": { + "description": "Function", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "execute": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "name": { + "type": "string", + "description": "Function name.", + "example": "My Function" + }, + "enabled": { + "type": "boolean", + "description": "Function enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "example": false + }, + "runtime": { + "type": "string", + "description": "Function execution and build runtime.", + "example": "python-3.8" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Function's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentId": { + "type": "string", + "description": "Function's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "schedule": { + "type": "string", + "description": "Function execution schedule in CRON format.", + "example": "5 4 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "version": { + "type": "string", + "description": "Version of Open Runtimes used for the function.", + "example": "v2" + }, + "installationId": { + "type": "string", + "description": "Function VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "functions\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "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", + "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" + }, + "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" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for executions.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "execute", + "name", + "enabled", + "live", + "logging", + "runtime", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "events", + "schedule", + "timeout", + "entrypoint", + "commands", + "version", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "execute": "users", + "name": "My Function", + "enabled": false, + "live": false, + "logging": false, + "runtime": "python-3.8", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "events": "account.create", + "schedule": "5 4 * * *", + "timeout": 300, + "entrypoint": "index.js", + "commands": "npm install", + "version": "v2", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "functions\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb" + } + }, + "templateFunction": { + "description": "Template Function", + "type": "object", + "properties": { + "icon": { + "type": "string", + "description": "Function Template Icon.", + "example": "icon-lightning-bolt" + }, + "id": { + "type": "string", + "description": "Function Template ID.", + "example": "starter" + }, + "name": { + "type": "string", + "description": "Function Template Name.", + "example": "Starter function" + }, + "tagline": { + "type": "string", + "description": "Function Template Tagline.", + "example": "A simple function to get started." + }, + "permissions": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "cron": { + "type": "string", + "description": "Function execution schedult in CRON format.", + "example": "0 0 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "useCases": { + "type": "array", + "description": "Function use cases.", + "items": { + "type": "string" + }, + "example": [ + "Starter" + ] + }, + "runtimes": { + "type": "array", + "description": "List of runtimes that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateRuntime" + }, + "example": [] + }, + "instructions": { + "type": "string", + "description": "Function Template Instructions.", + "example": "For documentation and instructions check out <link>." + }, + "vcsProvider": { + "type": "string", + "description": "VCS (Version Control System) Provider.", + "example": "github" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "templates" + }, + "providerOwner": { + "type": "string", + "description": "VCS (Version Control System) Owner.", + "example": "appwrite" + }, + "providerVersion": { + "type": "string", + "description": "VCS (Version Control System) branch version (tag).", + "example": "main" + }, + "variables": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/templateVariable" + }, + "example": [] + }, + "scopes": { + "type": "array", + "description": "Function scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + } + }, + "required": [ + "icon", + "id", + "name", + "tagline", + "permissions", + "events", + "cron", + "timeout", + "useCases", + "runtimes", + "instructions", + "vcsProvider", + "providerRepositoryId", + "providerOwner", + "providerVersion", + "variables", + "scopes" + ], + "example": { + "icon": "icon-lightning-bolt", + "id": "starter", + "name": "Starter function", + "tagline": "A simple function to get started.", + "permissions": "any", + "events": "account.create", + "cron": "0 0 * * *", + "timeout": 300, + "useCases": "Starter", + "runtimes": [], + "instructions": "For documentation and instructions check out <link>.", + "vcsProvider": "github", + "providerRepositoryId": "templates", + "providerOwner": "appwrite", + "providerVersion": "main", + "variables": [], + "scopes": "users.read" + } + }, + "templateRuntime": { + "description": "Template Runtime", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "node-19.0" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "node\/starter" + } + }, + "required": [ + "name", + "commands", + "entrypoint", + "providerRootDirectory" + ], + "example": { + "name": "node-19.0", + "commands": "npm install", + "entrypoint": "index.js", + "providerRootDirectory": "node\/starter" + } + }, + "templateVariable": { + "description": "Template Variable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Variable Name.", + "example": "APPWRITE_DATABASE_ID" + }, + "description": { + "type": "string", + "description": "Variable Description.", + "example": "The ID of the Appwrite database that contains the collection to sync." + }, + "value": { + "type": "string", + "description": "Variable Value.", + "example": "512" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "placeholder": { + "type": "string", + "description": "Variable Placeholder.", + "example": "64a55...7b912" + }, + "required": { + "type": "boolean", + "description": "Is the variable required?", + "example": false + }, + "type": { + "type": "string", + "description": "Variable Type.", + "example": "password" + } + }, + "required": [ + "name", + "description", + "value", + "secret", + "placeholder", + "required", + "type" + ], + "example": { + "name": "APPWRITE_DATABASE_ID", + "description": "The ID of the Appwrite database that contains the collection to sync.", + "value": "512", + "secret": false, + "placeholder": "64a55...7b912", + "required": false, + "type": "password" + } + }, + "installation": { + "description": "Installation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name.", + "example": "appwrite" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "5322" + }, + "organizationUrl": { + "type": "string", + "description": "VCS (Version Control System) organization URL. Points at the configured instance, which is not the provider's own host for a self-hosted install.", + "example": "https:\/\/github.com\/appwrite" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "provider", + "organization", + "providerInstallationId", + "organizationUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "provider": "github", + "organization": "appwrite", + "providerInstallationId": "5322", + "organizationUrl": "https:\/\/github.com\/appwrite" + } + }, + "providerRepository": { + "description": "ProviderRepository", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] + } + }, + "providerRepositoryFramework": { + "description": "ProviderRepositoryFramework", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + }, + "framework": { + "type": "string", + "description": "Auto-detected framework. Empty if type is not \"framework\".", + "example": "nextjs" + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables", + "framework" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], + "framework": "nextjs" + } + }, + "providerRepositoryRuntime": { + "description": "ProviderRepositoryRuntime", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + }, + "runtime": { + "type": "string", + "description": "Auto-detected runtime. Empty if type is not \"runtime\".", + "example": "node-22" + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables", + "runtime" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], + "runtime": "node-22" + } + }, + "detectionFramework": { + "description": "DetectionFramework", + "type": "object", + "properties": { + "type": { + "description": "Repository detection type.", + "example": "framework", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "example": [], + "nullable": true + }, + "framework": { + "type": "string", + "description": "Framework", + "example": "nuxt" + }, + "installCommand": { + "type": "string", + "description": "Site Install Command", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Site Build Command", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Site Output Directory", + "example": "dist" + } + }, + "required": [ + "type", + "framework", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "type": "framework", + "variables": {}, + "framework": "nuxt", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": "dist" + } + }, + "detectionRuntime": { + "description": "DetectionRuntime", + "type": "object", + "properties": { + "type": { + "description": "Repository detection type.", + "example": "runtime", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + } + ] + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "example": [], + "nullable": true + }, + "runtime": { + "type": "string", + "description": "Runtime", + "example": "node" + }, + "entrypoint": { + "type": "string", + "description": "Function Entrypoint", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "Function install and build commands", + "example": "npm install && npm run build" + } + }, + "required": [ + "type", + "runtime", + "entrypoint", + "commands" + ], + "example": { + "type": "runtime", + "variables": {}, + "runtime": "node", + "entrypoint": "index.js", + "commands": "npm install && npm run build" + } + }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, + "vcsContent": { + "description": "VcsContents", + "type": "object", + "properties": { + "size": { + "type": "integer", + "description": "Content size in bytes. Only files have size, and for directories, 0 is returned.", + "format": "int32", + "example": 1523, + "nullable": true + }, + "isDirectory": { + "type": "boolean", + "description": "If a content is a directory. Directories can be used to check nested contents.", + "example": true, + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of directory or file.", + "example": "Main.java" + } + }, + "required": [ + "name" + ], + "example": { + "size": 1523, + "isDirectory": true, + "name": "Main.java" + } + }, + "branch": { + "description": "Branch", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Branch Name.", + "example": "main" + } + }, + "required": [ + "name" + ], + "example": { + "name": "main" + } + }, + "runtime": { + "description": "Runtime", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Runtime ID.", + "example": "python-3.8" + }, + "key": { + "type": "string", + "description": "Parent runtime key.", + "example": "python" + }, + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "Python" + }, + "version": { + "type": "string", + "description": "Runtime version.", + "example": "3.8" + }, + "base": { + "type": "string", + "description": "Base Docker image used to build the runtime.", + "example": "python:3.8-alpine" + }, + "image": { + "type": "string", + "description": "Image name of Docker Hub.", + "example": "appwrite\\\/runtime-for-python:3.8" + }, + "logo": { + "type": "string", + "description": "Name of the logo image.", + "example": "python.png" + }, + "supports": { + "type": "array", + "description": "List of supported architectures.", + "items": { + "type": "string" + }, + "example": [ + "amd64" + ] + } + }, + "required": [ + "$id", + "key", + "name", + "version", + "base", + "image", + "logo", + "supports" + ], + "example": { + "$id": "python-3.8", + "key": "python", + "name": "Python", + "version": "3.8", + "base": "python:3.8-alpine", + "image": "appwrite\\\/runtime-for-python:3.8", + "logo": "python.png", + "supports": "amd64" + } + }, + "framework": { + "description": "Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "buildRuntime": { + "type": "string", + "description": "Default runtime version.", + "example": "node-22" + }, + "runtimes": { + "type": "array", + "description": "List of supported runtime versions.", + "items": { + "type": "string" + }, + "example": [ + "static-1", + "node-22" + ] + }, + "adapters": { + "type": "array", + "description": "List of supported adapters.", + "items": { + "$ref": "#\/components\/schemas\/frameworkAdapter" + }, + "example": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "required": [ + "key", + "name", + "buildRuntime", + "runtimes", + "adapters" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "buildRuntime": "node-22", + "runtimes": [ + "static-1", + "node-22" + ], + "adapters": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "frameworkAdapter": { + "description": "Framework Adapter", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Adapter key.", + "example": "static" + }, + "installCommand": { + "type": "string", + "description": "Default command to download dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Default command to build site into output directory.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Default output directory of build.", + "example": ".\/dist" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "key": "static", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/dist", + "fallbackFile": "index.html" + } + }, + "deployment": { + "description": "Deployment", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Deployment ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Deployment update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "Type of deployment.", + "example": "vcs" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "functions" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file to use to execute the deployment code.", + "example": "index.js" + }, + "sourceSize": { + "type": "integer", + "description": "The code size in bytes.", + "format": "int32", + "example": 128 + }, + "buildSize": { + "type": "integer", + "description": "The build output size in bytes.", + "format": "int32", + "example": 128 + }, + "totalSize": { + "type": "integer", + "description": "The total size in bytes (source and build output).", + "format": "int32", + "example": 128 + }, + "buildId": { + "type": "string", + "description": "The current build ID.", + "example": "5e5ea5c16897e" + }, + "activate": { + "type": "boolean", + "description": "Whether the deployment should be automatically activated.", + "example": true + }, + "screenshotLight": { + "type": "string", + "description": "Screenshot with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "screenshotDark": { + "type": "string", + "description": "Screenshot with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", + "example": "ready", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "building" + ], + "title": "building" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "canceled" + ], + "title": "canceled" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "buildLogs": { + "type": "string", + "description": "The build logs.", + "example": "Compiling source files..." + }, + "buildDuration": { + "type": "integer", + "description": "The current build time in seconds.", + "format": "int32", + "example": 128 + }, + "providerRepositoryName": { + "type": "string", + "description": "The name of the vcs provider repository", + "example": "database" + }, + "providerRepositoryOwner": { + "type": "string", + "description": "The name of the vcs provider repository owner", + "example": "utopia" + }, + "providerRepositoryUrl": { + "type": "string", + "description": "The url of the vcs provider repository", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" + }, + "providerCommitHash": { + "type": "string", + "description": "The commit hash of the vcs commit", + "example": "7c3f25d" + }, + "providerCommitAuthorUrl": { + "type": "string", + "description": "The url of vcs commit author", + "example": "https:\/\/github.com\/vermakhushboo" + }, + "providerCommitAuthor": { + "type": "string", + "description": "The name of vcs commit author", + "example": "Khushboo Verma" + }, + "providerCommitMessage": { + "type": "string", + "description": "The commit message", + "example": "Update index.js" + }, + "providerCommitUrl": { + "type": "string", + "description": "The url of the vcs commit", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" + }, + "providerBranch": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "0.7.x" + }, + "providerBranchUrl": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "resourceId", + "resourceType", + "entrypoint", + "sourceSize", + "buildSize", + "totalSize", + "buildId", + "activate", + "screenshotLight", + "screenshotDark", + "status", + "buildLogs", + "buildDuration", + "providerRepositoryName", + "providerRepositoryOwner", + "providerRepositoryUrl", + "providerCommitHash", + "providerCommitAuthorUrl", + "providerCommitAuthor", + "providerCommitMessage", + "providerCommitUrl", + "providerBranch", + "providerBranchUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "vcs", + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "entrypoint": "index.js", + "sourceSize": 128, + "buildSize": 128, + "totalSize": 128, + "buildId": "5e5ea5c16897e", + "activate": true, + "screenshotLight": "5e5ea5c16897e", + "screenshotDark": "5e5ea5c16897e", + "status": "ready", + "buildLogs": "Compiling source files...", + "buildDuration": 128, + "providerRepositoryName": "database", + "providerRepositoryOwner": "utopia", + "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", + "providerCommitHash": "7c3f25d", + "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", + "providerCommitAuthor": "Khushboo Verma", + "providerCommitMessage": "Update index.js", + "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", + "providerBranch": "0.7.x", + "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "project": { + "description": "Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Project creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Project update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Project name.", + "example": "New Project" + }, + "teamId": { + "type": "string", + "description": "Project team ID.", + "example": "1592981250" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "smtpEnabled": { + "type": "boolean", + "description": "Status for custom SMTP", + "example": false + }, + "smtpSenderName": { + "type": "string", + "description": "SMTP sender name", + "example": "John Appwrite" + }, + "smtpSenderEmail": { + "type": "string", + "description": "SMTP sender email", + "example": "john@appwrite.io" + }, + "smtpReplyToName": { + "type": "string", + "description": "SMTP reply to name", + "example": "Support Team" + }, + "smtpReplyToEmail": { + "type": "string", + "description": "SMTP reply to email", + "example": "support@appwrite.io" + }, + "smtpHost": { + "type": "string", + "description": "SMTP server host name", + "example": "mail.appwrite.io" + }, + "smtpPort": { + "type": "integer", + "description": "SMTP server port", + "format": "int32", + "example": 25 + }, + "smtpUsername": { + "type": "string", + "description": "SMTP server username", + "example": "emailuser" + }, + "smtpPassword": { + "type": "string", + "description": "SMTP server password. This property is write-only and always returned empty.", + "format": "password", + "example": "smtp-password" + }, + "smtpSecure": { + "type": "string", + "description": "SMTP server secure protocol", + "example": "tls" + }, + "pingCount": { + "type": "integer", + "description": "Number of times the ping was received for this project.", + "format": "int32", + "example": 1 + }, + "pingedAt": { + "type": "string", + "description": "Last ping datetime in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "labels": { + "type": "array", + "description": "Labels for the project.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "status": { + "type": "string", + "description": "Project status", + "example": "active" + }, + "onboarding": { + "type": "object", + "additionalProperties": true, + "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", + "example": {} + }, + "authMethods": { + "type": "array", + "description": "List of auth methods.", + "items": { + "$ref": "#\/components\/schemas\/projectAuthMethod" + }, + "example": [] + }, + "services": { + "type": "array", + "description": "List of services.", + "items": { + "$ref": "#\/components\/schemas\/projectService" + }, + "example": [] + }, + "protocols": { + "type": "array", + "description": "List of protocols.", + "items": { + "$ref": "#\/components\/schemas\/projectProtocol" + }, + "example": [] + }, + "blocks": { + "type": "array", + "description": "Project blocks information", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "example": [] + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "wafEnabled": { + "type": "boolean", + "description": "Whether WAF enforcement is enabled for the project.", + "example": true, + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "firstAccessedAt": { + "type": "string", + "description": "First time the project received a non-console API request. Empty until the project is used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "mcpAccessedAt": { + "type": "string", + "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "oAuth2ServerEnabled": { + "type": "boolean", + "description": "OAuth2 server status", + "example": false, + "nullable": true + }, + "oAuth2ServerAuthorizationUrl": { + "type": "string", + "description": "OAuth2 server authorization URL", + "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true + }, + "oAuth2ServerScopes": { + "type": "array", + "description": "OAuth2 server allowed scopes", + "items": { + "type": "string" + }, + "example": [ + "read", + "write" + ], + "nullable": true + }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "example": [ + "read" + ], + "nullable": true + }, + "oAuth2ServerInstallationScopes": { + "type": "array", + "description": "Scopes an application may request when installed on a team", + "items": { + "type": "string" + }, + "example": [ + "project:all" + ], + "nullable": true + }, + "oAuth2ServerAuthorizationDetailsTypes": { + "type": "array", + "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "items": { + "type": "string" + }, + "example": [ + "calendar" + ], + "nullable": true + }, + "oAuth2ServerAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for confidential clients", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for confidential clients", + "format": "int32", + "example": 86400, + "nullable": true + }, + "oAuth2ServerPublicAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerPublicRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 2592000, + "nullable": true + }, + "oAuth2ServerInstallationAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for app installation access tokens", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerConfidentialPkce": { + "type": "boolean", + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "example": false, + "nullable": true + }, + "oAuth2ServerVerificationUrl": { + "type": "string", + "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", + "example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true + }, + "oAuth2ServerUserCodeLength": { + "type": "integer", + "description": "Number of characters in the device flow user code, excluding the formatting separator.", + "format": "int32", + "example": 8, + "nullable": true + }, + "oAuth2ServerUserCodeFormat": { + "type": "string", + "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", + "example": "alphanumeric", + "nullable": true + }, + "oAuth2ServerDeviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes.", + "format": "int32", + "example": 600, + "nullable": true + }, + "oAuth2ServerDiscoveryUrl": { + "type": "string", + "description": "OAuth2 server discovery URL", + "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "teamId", + "region", + "smtpEnabled", + "smtpSenderName", + "smtpSenderEmail", + "smtpReplyToName", + "smtpReplyToEmail", + "smtpHost", + "smtpPort", + "smtpUsername", + "smtpPassword", + "smtpSecure", + "pingCount", + "pingedAt", + "labels", + "status", + "onboarding", + "authMethods", + "services", + "protocols", + "blocks", + "consoleAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "New Project", + "teamId": "1592981250", + "region": "fra", + "smtpEnabled": false, + "smtpSenderName": "John Appwrite", + "smtpSenderEmail": "john@appwrite.io", + "smtpReplyToName": "Support Team", + "smtpReplyToEmail": "support@appwrite.io", + "smtpHost": "mail.appwrite.io", + "smtpPort": 25, + "smtpUsername": "emailuser", + "smtpPassword": "smtp-password", + "smtpSecure": "tls", + "pingCount": 1, + "pingedAt": "2020-10-15T06:38:00.000+00:00", + "labels": [ + "vip" + ], + "status": "active", + "onboarding": {}, + "authMethods": {}, + "services": {}, + "protocols": {}, + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", + "wafEnabled": true, + "billingLimits": "", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", + "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", + "oAuth2ServerEnabled": false, + "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "oAuth2ServerScopes": [ + "read", + "write" + ], + "oAuth2ServerDefaultScopes": [ + "read" + ], + "oAuth2ServerInstallationScopes": [ + "project:all" + ], + "oAuth2ServerAuthorizationDetailsTypes": [ + "calendar" + ], + "oAuth2ServerAccessTokenDuration": 3600, + "oAuth2ServerRefreshTokenDuration": 86400, + "oAuth2ServerPublicAccessTokenDuration": 3600, + "oAuth2ServerPublicRefreshTokenDuration": 2592000, + "oAuth2ServerInstallationAccessTokenDuration": 3600, + "oAuth2ServerConfidentialPkce": false, + "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", + "oAuth2ServerUserCodeLength": 8, + "oAuth2ServerUserCodeFormat": "alphanumeric", + "oAuth2ServerDeviceCodeDuration": 600, + "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + } + }, + "projectAuthMethod": { + "description": "ProjectAuthMethod", + "type": "object", + "properties": { + "$id": { + "description": "Auth method ID.", + "example": "email-password", + "title": "ProjectAuthMethodId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Auth method status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "email-password", + "enabled": false + } + }, + "projectService": { + "description": "ProjectService", + "type": "object", + "properties": { + "$id": { + "description": "Service ID.", + "example": "sites", + "title": "ProjectServiceId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Service status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "sites", + "enabled": false + } + }, + "projectProtocol": { + "description": "ProjectProtocol", + "type": "object", + "properties": { + "$id": { + "description": "Protocol ID.", + "example": "graphql", + "title": "ProjectProtocolId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "graphql", + "enabled": false + } + }, + "webhook": { + "description": "Webhook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Webhook ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Webhook creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Webhook update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Webhook name.", + "example": "My Webhook" + }, + "url": { + "type": "string", + "description": "Webhook URL endpoint.", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "type": "array", + "description": "Webhook trigger events.", + "items": { + "type": "string" + }, + "example": [ + "databases.tables.update", + "databases.collections.update" + ] + }, + "tls": { + "type": "boolean", + "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "example": true + }, + "authUsername": { + "type": "string", + "description": "HTTP basic authentication username.", + "example": "username" + }, + "authPassword": { + "type": "string", + "description": "HTTP basic authentication password. Write-only: always returned empty.", + "format": "password", + "example": "webhook-password" + }, + "secret": { + "type": "string", + "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", + "example": "ad3d581ca230e2b7059c545e5a" + }, + "enabled": { + "type": "boolean", + "description": "Indicates if this webhook is enabled.", + "example": true + }, + "logs": { + "type": "string", + "description": "Webhook error logs from the most recent failure.", + "example": "Failed to connect to remote server." + }, + "attempts": { + "type": "integer", + "description": "Number of consecutive failed webhook attempts.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "url", + "events", + "tls", + "authUsername", + "authPassword", + "secret", + "enabled", + "logs", + "attempts" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Webhook", + "url": "https:\/\/example.com\/webhook", + "events": [ + "databases.tables.update", + "databases.collections.update" + ], + "tls": true, + "authUsername": "username", + "authPassword": "webhook-password", + "secret": "ad3d581ca230e2b7059c545e5a", + "enabled": true, + "logs": "Failed to connect to remote server.", + "attempts": 10 + } + }, + "key": { + "description": "Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "ephemeralKey": { + "description": "Ephemeral Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "mockNumber": { + "description": "Mock Number", + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", + "example": "+1612842323" + }, + "otp": { + "type": "string", + "description": "Mock OTP for the number. ", + "example": "123456" + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "number", + "otp", + "$createdAt", + "$updatedAt" + ], + "example": { + "number": "+1612842323", + "otp": "123456", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oAuth2Github": { + "description": "OAuth2GitHub", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", + "example": "e4d87900000000540733" + }, + "clientSecret": { + "type": "string", + "description": "GitHub OAuth2 client secret.", + "example": "5e07c00000000000000000000000000000198bcc" + }, + "prompt": { + "type": "array", + "description": "GitHub OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "select_account" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "e4d87900000000540733", + "clientSecret": "5e07c00000000000000000000000000000198bcc", + "prompt": [ + "select_account" + ] + } + }, + "oAuth2Discord": { + "description": "OAuth2Discord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Discord OAuth2 client ID.", + "example": "950722000000343754" + }, + "clientSecret": { + "type": "string", + "description": "Discord OAuth2 client secret.", + "example": "YmPXnM000000000000000000002zFg5D" + }, + "prompt": { + "type": "array", + "description": "Discord OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "950722000000343754", + "clientSecret": "YmPXnM000000000000000000002zFg5D", + "prompt": [ + "none" + ] + } + }, + "oAuth2Figma": { + "description": "OAuth2Figma", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Figma OAuth2 client ID.", + "example": "byay5H0000000000VtiI40" + }, + "clientSecret": { + "type": "string", + "description": "Figma OAuth2 client secret.", + "example": "yEpOYn0000000000000000004iIsU5" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "byay5H0000000000VtiI40", + "clientSecret": "yEpOYn0000000000000000004iIsU5" + } + }, + "oAuth2Dropbox": { + "description": "OAuth2Dropbox", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appKey": { + "type": "string", + "description": "Dropbox OAuth2 app key.", + "example": "jl000000000009t" + }, + "appSecret": { + "type": "string", + "description": "Dropbox OAuth2 app secret.", + "example": "g200000000000vw" + } + }, + "required": [ + "$id", + "enabled", + "appKey", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appKey": "jl000000000009t", + "appSecret": "g200000000000vw" + } + }, + "oAuth2Dailymotion": { + "description": "OAuth2Dailymotion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "apiKey": { + "type": "string", + "description": "Dailymotion OAuth2 API key.", + "example": "07a9000000000000067f" + }, + "apiSecret": { + "type": "string", + "description": "Dailymotion OAuth2 API secret.", + "example": "a399a90000000000000000000000000000d90639" + } + }, + "required": [ + "$id", + "enabled", + "apiKey", + "apiSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "apiKey": "07a9000000000000067f", + "apiSecret": "a399a90000000000000000000000000000d90639" + } + }, + "oAuth2Bitbucket": { + "description": "OAuth2Bitbucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "key": { + "type": "string", + "description": "Bitbucket OAuth2 key.", + "example": "Knt70000000000ByRc" + }, + "secret": { + "type": "string", + "description": "Bitbucket OAuth2 secret.", + "example": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "required": [ + "$id", + "enabled", + "key", + "secret" + ], + "example": { + "$id": "github", + "enabled": false, + "key": "Knt70000000000ByRc", + "secret": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "oAuth2Bitly": { + "description": "OAuth2Bitly", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Bitly OAuth2 client ID.", + "example": "d95151000000000000000000000000000067af9b" + }, + "clientSecret": { + "type": "string", + "description": "Bitly OAuth2 client secret.", + "example": "a13e250000000000000000000000000000d73095" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "d95151000000000000000000000000000067af9b", + "clientSecret": "a13e250000000000000000000000000000d73095" + } + }, + "oAuth2Box": { + "description": "OAuth2Box", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Box OAuth2 client ID.", + "example": "deglcs00000000000000000000x2og6y" + }, + "clientSecret": { + "type": "string", + "description": "Box OAuth2 client secret.", + "example": "OKM1f100000000000000000000eshEif" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "deglcs00000000000000000000x2og6y", + "clientSecret": "OKM1f100000000000000000000eshEif" + } + }, + "oAuth2Autodesk": { + "description": "OAuth2Autodesk", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Autodesk OAuth2 client ID.", + "example": "5zw90v00000000000000000000kVYXN7" + }, + "clientSecret": { + "type": "string", + "description": "Autodesk OAuth2 client secret.", + "example": "7I000000000000MW" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "5zw90v00000000000000000000kVYXN7", + "clientSecret": "7I000000000000MW" + } + }, + "oAuth2Google": { + "description": "OAuth2Google", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Google OAuth2 client ID.", + "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" + }, + "clientSecret": { + "type": "string", + "description": "Google OAuth2 client secret.", + "example": "GOCSPX-2k8gsR0000000000000000VNahJj" + }, + "prompt": { + "type": "array", + "description": "Google OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "consent" + ] + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", + "items": { + "type": "string" + }, + "example": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", + "prompt": [ + "consent" + ], + "nativeEnabled": false, + "nativeClientIds": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "oAuth2Zoom": { + "description": "OAuth2Zoom", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoom OAuth2 client ID.", + "example": "QMAC00000000000000w0AQ" + }, + "clientSecret": { + "type": "string", + "description": "Zoom OAuth2 client secret.", + "example": "GAWsG4000000000000000000007U01ON" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "QMAC00000000000000w0AQ", + "clientSecret": "GAWsG4000000000000000000007U01ON" + } + }, + "oAuth2Zoho": { + "description": "OAuth2Zoho", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoho OAuth2 client ID.", + "example": "1000.83C178000000000000000000RPNX0B" + }, + "clientSecret": { + "type": "string", + "description": "Zoho OAuth2 client secret.", + "example": "fb5cac000000000000000000000000000000a68f6e" + }, + "prompt": { + "type": "array", + "description": "Zoho OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "consent" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "1000.83C178000000000000000000RPNX0B", + "clientSecret": "fb5cac000000000000000000000000000000a68f6e", + "prompt": [ + "consent" + ] + } + }, + "oAuth2Yandex": { + "description": "OAuth2Yandex", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yandex OAuth2 client ID.", + "example": "6a8a6a0000000000000000000091483c" + }, + "clientSecret": { + "type": "string", + "description": "Yandex OAuth2 client secret.", + "example": "bbf98500000000000000000000c75a63" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a8a6a0000000000000000000091483c", + "clientSecret": "bbf98500000000000000000000c75a63" + } + }, + "oAuth2X": { + "description": "OAuth2X", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "X OAuth2 customer key.", + "example": "slzZV0000000000000NFLaWT" + }, + "secretKey": { + "type": "string", + "description": "X OAuth2 secret key.", + "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "slzZV0000000000000NFLaWT", + "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "oAuth2WordPress": { + "description": "OAuth2WordPress", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "WordPress OAuth2 client ID.", + "example": "130005" + }, + "clientSecret": { + "type": "string", + "description": "WordPress OAuth2 client secret.", + "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "130005", + "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "oAuth2Webflow": { + "description": "OAuth2Webflow", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Webflow OAuth2 client ID.", + "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" + }, + "clientSecret": { + "type": "string", + "description": "Webflow OAuth2 client secret.", + "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", + "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "oAuth2Twitch": { + "description": "OAuth2Twitch", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Twitch OAuth2 client ID.", + "example": "vvi0in000000000000000000ikmt9p" + }, + "clientSecret": { + "type": "string", + "description": "Twitch OAuth2 client secret.", + "example": "pmapue000000000000000000zylw3v" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "vvi0in000000000000000000ikmt9p", + "clientSecret": "pmapue000000000000000000zylw3v" + } + }, + "oAuth2Stripe": { + "description": "OAuth2Stripe", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Stripe OAuth2 client ID.", + "example": "ca_UKibXX0000000000000000000006byvR" + }, + "apiSecretKey": { + "type": "string", + "description": "Stripe OAuth2 API secret key.", + "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "apiSecretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "ca_UKibXX0000000000000000000006byvR", + "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "oAuth2Spotify": { + "description": "OAuth2Spotify", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Spotify OAuth2 client ID.", + "example": "6ec271000000000000000000009beace" + }, + "clientSecret": { + "type": "string", + "description": "Spotify OAuth2 client secret.", + "example": "db068a000000000000000000008b5b9f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6ec271000000000000000000009beace", + "clientSecret": "db068a000000000000000000008b5b9f" + } + }, + "oAuth2Slack": { + "description": "OAuth2Slack", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Slack OAuth2 client ID.", + "example": "23000000089.15000000000023" + }, + "clientSecret": { + "type": "string", + "description": "Slack OAuth2 client secret.", + "example": "81656000000000000000000000f3d2fd" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "23000000089.15000000000023", + "clientSecret": "81656000000000000000000000f3d2fd" + } + }, + "oAuth2Podio": { + "description": "OAuth2Podio", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Podio OAuth2 client ID.", + "example": "appwrite-oauth-test-app" + }, + "clientSecret": { + "type": "string", + "description": "Podio OAuth2 client secret.", + "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-oauth-test-app", + "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "oAuth2Notion": { + "description": "OAuth2Notion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauthClientId": { + "type": "string", + "description": "Notion OAuth2 client ID.", + "example": "341d8700-0000-0000-0000-000000446ee3" + }, + "oauthClientSecret": { + "type": "string", + "description": "Notion OAuth2 client secret.", + "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "required": [ + "$id", + "enabled", + "oauthClientId", + "oauthClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", + "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "oAuth2Salesforce": { + "description": "OAuth2Salesforce", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "Salesforce OAuth2 consumer key.", + "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" + }, + "customerSecret": { + "type": "string", + "description": "Salesforce OAuth2 consumer secret.", + "example": "3w000000000000e2" + }, + "prompt": { + "type": "array", + "description": "Salesforce OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "login" + ] + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "customerSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "customerSecret": "3w000000000000e2", + "prompt": [ + "login" + ] + } + }, + "oAuth2Yahoo": { + "description": "OAuth2Yahoo", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yahoo OAuth2 client ID.", + "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" + }, + "clientSecret": { + "type": "string", + "description": "Yahoo OAuth2 client secret.", + "example": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "clientSecret": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "oAuth2Cloudflare": { + "description": "OAuth2Cloudflare", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Cloudflare OAuth2 client ID.", + "example": "4b866000000000000000000000c9e4e2" + }, + "clientSecret": { + "type": "string", + "description": "Cloudflare OAuth2 client secret.", + "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "4b866000000000000000000000c9e4e2", + "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "oAuth2HuggingFace": { + "description": "OAuth2HuggingFace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Hugging Face OAuth2 client ID.", + "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" + }, + "clientSecret": { + "type": "string", + "description": "Hugging Face OAuth2 client secret.", + "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "oAuth2Linkedin": { + "description": "OAuth2Linkedin", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "LinkedIn OAuth2 client ID.", + "example": "770000000000dv" + }, + "primaryClientSecret": { + "type": "string", + "description": "LinkedIn OAuth2 primary client secret.", + "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "primaryClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "770000000000dv", + "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "oAuth2Disqus": { + "description": "OAuth2Disqus", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "publicKey": { + "type": "string", + "description": "Disqus OAuth2 public key.", + "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + }, + "secretKey": { + "type": "string", + "description": "Disqus OAuth2 secret key.", + "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "required": [ + "$id", + "enabled", + "publicKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "oAuth2Amazon": { + "description": "OAuth2Amazon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Amazon OAuth2 client ID.", + "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + }, + "clientSecret": { + "type": "string", + "description": "Amazon OAuth2 client secret.", + "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "oAuth2Etsy": { + "description": "OAuth2Etsy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "keyString": { + "type": "string", + "description": "Etsy OAuth2 keystring.", + "example": "nsgzxh0000000000008j85a2" + }, + "sharedSecret": { + "type": "string", + "description": "Etsy OAuth2 shared secret.", + "example": "tp000000ru" + } + }, + "required": [ + "$id", + "enabled", + "keyString", + "sharedSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "keyString": "nsgzxh0000000000008j85a2", + "sharedSecret": "tp000000ru" + } + }, + "oAuth2Facebook": { + "description": "OAuth2Facebook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appId": { + "type": "string", + "description": "Facebook OAuth2 app ID.", + "example": "260600000007694" + }, + "appSecret": { + "type": "string", + "description": "Facebook OAuth2 app secret.", + "example": "2d0b2800000000000000000000d38af4" + } + }, + "required": [ + "$id", + "enabled", + "appId", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appId": "260600000007694", + "appSecret": "2d0b2800000000000000000000d38af4" + } + }, + "oAuth2Tradeshift": { + "description": "OAuth2Tradeshift", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauth2ClientId": { + "type": "string", + "description": "Tradeshift OAuth2 client ID.", + "example": "appwrite-test-org.appwrite-test-app" + }, + "oauth2ClientSecret": { + "type": "string", + "description": "Tradeshift OAuth2 client secret.", + "example": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "required": [ + "$id", + "enabled", + "oauth2ClientId", + "oauth2ClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauth2ClientId": "appwrite-test-org.appwrite-test-app", + "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "oAuth2Paypal": { + "description": "OAuth2Paypal", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "PayPal OAuth2 client ID.", + "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + }, + "secretKey": { + "type": "string", + "description": "PayPal OAuth2 secret key.", + "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "oAuth2Gitlab": { + "description": "OAuth2Gitlab", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "GitLab OAuth2 application ID.", + "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" + }, + "secret": { + "type": "string", + "description": "GitLab OAuth2 secret.", + "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" + }, + "endpoint": { + "type": "string", + "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", + "example": "https:\/\/gitlab.com" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "secret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "endpoint": "https:\/\/gitlab.com" + } + }, + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Appwrite OAuth2 client ID.", + "example": "6a42000000000000b5a0" + }, + "clientSecret": { + "type": "string", + "description": "Appwrite OAuth2 client secret.", + "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "oAuth2Authentik": { + "description": "OAuth2Authentik", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Authentik OAuth2 client ID.", + "example": "dTKOPa0000000000000000000000000000e7G8hv" + }, + "clientSecret": { + "type": "string", + "description": "Authentik OAuth2 client secret.", + "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" + }, + "endpoint": { + "type": "string", + "description": "Authentik OAuth2 endpoint domain.", + "example": "example.authentik.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dTKOPa0000000000000000000000000000e7G8hv", + "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "endpoint": "example.authentik.com" + } + }, + "oAuth2Auth0": { + "description": "OAuth2Auth0", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Auth0 OAuth2 client ID.", + "example": "OaOkIA000000000000000000005KLSYq" + }, + "clientSecret": { + "type": "string", + "description": "Auth0 OAuth2 client secret.", + "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" + }, + "prompt": { + "type": "array", + "description": "Auth0 OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "endpoint": { + "type": "string", + "description": "Auth0 OAuth2 endpoint domain.", + "example": "example.us.auth0.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "OaOkIA000000000000000000005KLSYq", + "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "prompt": [ + "none" + ], + "endpoint": "example.us.auth0.com" + } + }, + "oAuth2FusionAuth": { + "description": "OAuth2FusionAuth", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "FusionAuth OAuth2 client ID.", + "example": "b2222c00-0000-0000-0000-000000862097" + }, + "clientSecret": { + "type": "string", + "description": "FusionAuth OAuth2 client secret.", + "example": "Jx4s0C0000000000000000000000000000000wGqLsc" + }, + "endpoint": { + "type": "string", + "description": "FusionAuth OAuth2 endpoint domain.", + "example": "example.fusionauth.io" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "b2222c00-0000-0000-0000-000000862097", + "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", + "endpoint": "example.fusionauth.io" + } + }, + "oAuth2Keycloak": { + "description": "OAuth2Keycloak", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Keycloak OAuth2 client ID.", + "example": "appwrite-o0000000st-app" + }, + "clientSecret": { + "type": "string", + "description": "Keycloak OAuth2 client secret.", + "example": "jdjrJd00000000000000000000HUsaZO" + }, + "endpoint": { + "type": "string", + "description": "Keycloak OAuth2 endpoint domain.", + "example": "keycloak.example.com" + }, + "realmName": { + "type": "string", + "description": "Keycloak OAuth2 realm name.", + "example": "appwrite-realm" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint", + "realmName" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-o0000000st-app", + "clientSecret": "jdjrJd00000000000000000000HUsaZO", + "endpoint": "keycloak.example.com", + "realmName": "appwrite-realm" + } + }, + "oAuth2Oidc": { + "description": "OAuth2Oidc", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "OpenID Connect OAuth2 client ID.", + "example": "qibI2x0000000000000000000000000006L2YFoG" + }, + "clientSecret": { + "type": "string", + "description": "OpenID Connect OAuth2 client secret.", + "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" + }, + "prompt": { + "type": "array", + "description": "OpenID Connect prompt values controlling the authentication and consent screens.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/authorize" + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/token" + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", + "format": "int32", + "example": 3600, + "nullable": true + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "wellKnownURL", + "authorizationURL", + "tokenURL", + "userInfoURL" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "qibI2x0000000000000000000000000006L2YFoG", + "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "prompt": [ + "none" + ], + "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", + "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", + "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", + "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", + "maxAge": 3600 + } + }, + "oAuth2Okta": { + "description": "OAuth2Okta", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Okta OAuth2 client ID.", + "example": "0oa00000000000000698" + }, + "clientSecret": { + "type": "string", + "description": "Okta OAuth2 client secret.", + "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" + }, + "prompt": { + "type": "array", + "description": "Okta OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "domain": { + "type": "string", + "description": "Okta OAuth2 domain.", + "example": "trial-6400025.okta.com" + }, + "authorizationServerId": { + "type": "string", + "description": "Okta OAuth2 authorization server ID.", + "example": "aus000000000000000h7z" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "domain", + "authorizationServerId" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "0oa00000000000000698", + "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "prompt": [ + "none" + ], + "domain": "trial-6400025.okta.com", + "authorizationServerId": "aus000000000000000h7z" + } + }, + "oAuth2Kick": { + "description": "OAuth2Kick", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kick OAuth2 client ID.", + "example": "01KQ7C00000000000001MFHS32" + }, + "clientSecret": { + "type": "string", + "description": "Kick OAuth2 client secret.", + "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "01KQ7C00000000000001MFHS32", + "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "oAuth2Apple": { + "description": "OAuth2Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "apple" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "serviceId": { + "type": "string", + "description": "Apple OAuth2 service ID.", + "example": "ip.appwrite.app.web" + }, + "keyId": { + "type": "string", + "description": "Apple OAuth2 key ID.", + "example": "P4000000N8" + }, + "teamId": { + "type": "string", + "description": "Apple OAuth2 team ID.", + "example": "D4000000R6" + }, + "p8File": { + "type": "string", + "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", + "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", + "items": { + "type": "string" + }, + "example": [ + "com.example.app" + ] + } + }, + "required": [ + "$id", + "enabled", + "serviceId", + "keyId", + "teamId", + "p8File", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "apple", + "enabled": false, + "serviceId": "ip.appwrite.app.web", + "keyId": "P4000000N8", + "teamId": "D4000000R6", + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "nativeEnabled": false, + "nativeClientIds": [ + "com.example.app" + ] + } + }, + "oAuth2Microsoft": { + "description": "OAuth2Microsoft", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "Microsoft OAuth2 application ID.", + "example": "00001111-aaaa-2222-bbbb-3333cccc4444" + }, + "applicationSecret": { + "type": "string", + "description": "Microsoft OAuth2 application secret.", + "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" + }, + "prompt": { + "type": "array", + "description": "Microsoft OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", + "example": "common" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "applicationSecret", + "prompt", + "tenant" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", + "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "prompt": [ + "none" + ], + "tenant": "common" + } + }, + "oAuth2Resend": { + "description": "OAuth2Resend", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Resend OAuth2 client ID.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "clientSecret": { + "type": "string", + "description": "Resend OAuth2 client secret.", + "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "oAuth2TikTok": { + "description": "OAuth2TikTok", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "TikTok OAuth2 client key.", + "example": "awz000000000tyw0" + }, + "clientSecret": { + "type": "string", + "description": "TikTok OAuth2 client secret.", + "example": "6wXewM00000000000000000000yXnite" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "awz000000000tyw0", + "clientSecret": "6wXewM00000000000000000000yXnite" + } + }, + "oAuth2Kakao": { + "description": "OAuth2Kakao", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kakao OAuth2 REST API key.", + "example": "839ff5000000000000000000013206de" + }, + "clientSecret": { + "type": "string", + "description": "Kakao OAuth2 client secret.", + "example": "jLNVOK00000000000000000000yJebea" + }, + "prompt": { + "type": "array", + "description": "Kakao OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "839ff5000000000000000000013206de", + "clientSecret": "jLNVOK00000000000000000000yJebea", + "prompt": [ + "none" + ] + } + }, + "oAuth2ProviderList": { + "description": "OAuth2 Providers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers in the given project.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of OAuth2 providers.", + "items": { + "anyOf": [ + { + "$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\/oAuth2Webflow" + }, + { + "$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\/oAuth2Appwrite" + }, + { + "$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" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "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", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "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", + "appwrite": "#\/components\/schemas\/oAuth2Appwrite", + "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", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "policyPasswordDictionary": { + "description": "Policy Password Dictionary", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password dictionary policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordHistory": { + "description": "Policy Password History", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Password history length. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 5 + } + }, + "policyPasswordStrength": { + "description": "Policy Password Strength", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "min": { + "type": "integer", + "description": "Minimum password length required for user passwords.", + "format": "int32", + "example": 12 + }, + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "example": true + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "example": true + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "example": true + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "example": true + } + }, + "required": [ + "$id", + "min", + "uppercase", + "lowercase", + "number", + "symbols" + ], + "example": { + "$id": "password-dictionary", + "min": 12, + "uppercase": true, + "lowercase": true, + "number": true, + "symbols": true + } + }, + "policyPasswordPersonalData": { + "description": "Policy Password Personal Data", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password personal data policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordPwned": { + "description": "Policy Password Pwned", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", + "example": true + }, + "sessions": { + "type": "boolean", + "description": "Whether a sign-in with a breached password is refused until the password is reset.", + "example": false + }, + "users": { + "type": "boolean", + "description": "Whether a breached password is rejected when a user signs up or sets a new password.", + "example": false + } + }, + "required": [ + "$id", + "enabled", + "sessions", + "users" + ], + "example": { + "$id": "password-dictionary", + "enabled": true, + "sessions": false, + "users": false + } + }, + "policySessionAlert": { + "description": "Policy Session Alert", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session alert policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionDuration": { + "description": "Policy Session Duration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "duration": { + "type": "integer", + "description": "Session duration in seconds.", + "format": "int32", + "example": 3600 + } + }, + "required": [ + "$id", + "duration" + ], + "example": { + "$id": "password-dictionary", + "duration": 3600 + } + }, + "policySessionInvalidation": { + "description": "Policy Session Invalidation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session invalidation policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionLimit": { + "description": "Policy Session Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 10 + } + }, + "policyUserLimit": { + "description": "Policy User Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 100 + } + }, + "policyMembershipPrivacy": { + "description": "Policy Membership Privacy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "userId": { + "type": "boolean", + "description": "Whether user ID is visible in memberships.", + "example": true + }, + "userEmail": { + "type": "boolean", + "description": "Whether user email is visible in memberships.", + "example": true + }, + "userPhone": { + "type": "boolean", + "description": "Whether user phone is visible in memberships.", + "example": true + }, + "userName": { + "type": "boolean", + "description": "Whether user name is visible in memberships.", + "example": true + }, + "userMFA": { + "type": "boolean", + "description": "Whether user MFA status is visible in memberships.", + "example": true + }, + "userAccessedAt": { + "type": "boolean", + "description": "Whether user last access time is visible in memberships.", + "example": true + } + }, + "required": [ + "$id", + "userId", + "userEmail", + "userPhone", + "userName", + "userMFA", + "userAccessedAt" + ], + "example": { + "$id": "password-dictionary", + "userId": true, + "userEmail": true, + "userPhone": true, + "userName": true, + "userMFA": true, + "userAccessedAt": true + } + }, + "policyMfaFactors": { + "description": "Policy MFA Factors", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "totp": { + "type": "boolean", + "description": "Whether TOTP can be used to complete an MFA challenge.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Whether email can be used to complete an MFA challenge.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Whether phone (SMS) can be used to complete an MFA challenge.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Whether the custom factor can be used to complete an MFA challenge.", + "example": true + } + }, + "required": [ + "$id", + "totp", + "email", + "phone", + "custom" + ], + "example": { + "$id": "password-dictionary", + "totp": true, + "email": true, + "phone": true, + "custom": true + } + }, + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyDisposableEmail": { + "description": "Policy Deny Disposable Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyFreeEmail": { + "description": "Policy Deny Free Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyCorporateEmail": { + "description": "Policy Deny Corporate Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "platformWeb": { + "description": "Platform Web", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "hostname": { + "type": "string", + "description": "Web app hostname. Empty string for other platforms.", + "example": "app.example.com" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "hostname", + "key" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "hostname": "app.example.com" + } + }, + "platformApple": { + "description": "Platform Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "bundleIdentifier" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "bundleIdentifier": "com.company.appname" + } + }, + "platformAndroid": { + "description": "Platform Android", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "applicationId": { + "type": "string", + "description": "Android application ID.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "applicationId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "applicationId": "com.company.appname" + } + }, + "platformWindows": { + "description": "Platform Windows", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageIdentifierName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageIdentifierName": "com.company.appname" + } + }, + "platformLinux": { + "description": "Platform Linux", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageName": { + "type": "string", + "description": "Linux package name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageName": "com.company.appname" + } + }, + "platformList": { + "description": "Platforms List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of platforms in the given project.", + "format": "int32", + "example": 5 + }, + "platforms": { + "type": "array", + "description": "List of platforms.", + "items": { + "anyOf": [ + { + "$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" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "platforms" + ], + "example": { + "total": 5, + "platforms": "" + } + }, + "variable": { + "description": "Variable", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Variable ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Variable key.", + "example": "API_KEY" + }, + "value": { + "type": "string", + "description": "Variable value.", + "example": "myPa$$word1" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "resourceType": { + "type": "string", + "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", + "example": "myAwesomeFunction" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "value", + "secret", + "resourceType", + "resourceId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "API_KEY", + "value": "myPa$$word1", + "secret": false, + "resourceType": "function", + "resourceId": "myAwesomeFunction" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "metric": { + "description": "Metric", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "The value of this metric at the timestamp.", + "format": "int32", + "example": 1 + }, + "date": { + "type": "string", + "description": "The date at which this metric was aggregated in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "value", + "date" + ], + "example": { + "value": 1, + "date": "2020-10-15T06:38:00.000+00:00" + } + }, + "usageUsers": { + "description": "UsageUsers", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "example": "30d" + }, + "usersTotal": { + "type": "integer", + "description": "Total aggregated number of statistics of users.", + "format": "int32", + "example": 0 + }, + "sessionsTotal": { + "type": "integer", + "description": "Total aggregated number of active sessions.", + "format": "int32", + "example": 0 + }, + "users": { + "type": "array", + "description": "Aggregated number of users per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "sessions": { + "type": "array", + "description": "Aggregated number of active sessions per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + } + }, + "required": [ + "range", + "usersTotal", + "sessionsTotal", + "users", + "sessions" + ], + "example": { + "range": "30d", + "usersTotal": 0, + "sessionsTotal": 0, + "users": [], + "sessions": [] + } + }, + "usagePresence": { + "description": "UsagePresence", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "example": "30d" + }, + "usersOnlineTotal": { + "type": "integer", + "description": "Current total number of online users.", + "format": "int32", + "example": 0 + }, + "presences": { + "type": "array", + "description": "Aggregated number of online users per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + } + }, + "required": [ + "range", + "usersOnlineTotal", + "presences" + ], + "example": { + "range": "30d", + "usersOnlineTotal": 0, + "presences": [] + } + }, + "usageDataPoint": { + "description": "usageDataPoint", + "type": "object", + "properties": { + "time": { + "type": "string", + "description": "Bucket start timestamp in ISO 8601. Omitted for flat dimension aggregates.", + "example": "2026-04-09T12:00:00.000+00:00", + "nullable": true + }, + "value": { + "type": "number", + "description": "Aggregated value for the point.", + "format": "double", + "example": 5000 + }, + "path": { + "type": "string", + "description": "Value when broken down by `path`.", + "example": "\/v1\/storage\/files", + "nullable": true + }, + "method": { + "type": "string", + "description": "Value when broken down by `method`.", + "example": "POST", + "nullable": true + }, + "status": { + "type": "string", + "description": "Value when broken down by `status`.", + "example": "201", + "nullable": true + }, + "service": { + "type": "string", + "description": "Value when broken down by `service`.", + "example": "storage", + "nullable": true + }, + "country": { + "type": "string", + "description": "Value when broken down by `country`.", + "example": "us", + "nullable": true + }, + "region": { + "type": "string", + "description": "Value when broken down by `region`.", + "example": "default", + "nullable": true + }, + "hostname": { + "type": "string", + "description": "Value when broken down by `hostname`.", + "example": "app.example.com", + "nullable": true + }, + "ip": { + "type": "string", + "description": "Value when broken down by `ip`.", + "example": "192.0.2.44", + "nullable": true + }, + "protocol": { + "type": "string", + "description": "Value when broken down by `protocol`.", + "example": "https", + "nullable": true + }, + "accept": { + "type": "string", + "description": "Value when broken down by `accept`.", + "example": "application\/json", + "nullable": true + }, + "acceptLanguage": { + "type": "string", + "description": "Value when broken down by `acceptLanguage`.", + "example": "en-US", + "nullable": true + }, + "queryKeys": { + "type": "string", + "description": "Value when broken down by `queryKeys`.", + "example": "project,mode", + "nullable": true + }, + "osName": { + "type": "string", + "description": "Value when broken down by `osName`.", + "example": "iOS", + "nullable": true + }, + "clientType": { + "type": "string", + "description": "Value when broken down by `clientType`.", + "example": "browser", + "nullable": true + }, + "clientName": { + "type": "string", + "description": "Value when broken down by `clientName`.", + "example": "Chrome", + "nullable": true + }, + "sdk": { + "type": "string", + "description": "Value when broken down by `sdk`.", + "example": "web", + "nullable": true + }, + "sdkVersion": { + "type": "string", + "description": "Value when broken down by `sdkVersion`.", + "example": "14.0.0", + "nullable": true + }, + "deviceName": { + "type": "string", + "description": "Value when broken down by `deviceName`.", + "example": "smartphone", + "nullable": true + }, + "resourceId": { + "type": "string", + "description": "Value when broken down by `resourceId`.", + "example": "abc123", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "Value when broken down by `resourceType`.", + "example": "bucket", + "nullable": true + }, + "ordinal": { + "type": "string", + "description": "Value when broken down by `ordinal`.", + "example": "0", + "nullable": true + }, + "continentCode": { + "type": "string", + "description": "Continent code when broken down by `continentCode`.", + "example": "NA", + "nullable": true + }, + "city": { + "type": "string", + "description": "City name when broken down by `city`.", + "example": "Mountain View", + "nullable": true + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain when broken down by `subdivisions`.", + "example": "California", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code when broken down by `postalCode`.", + "example": "94043", + "nullable": true + }, + "latitude": { + "type": "string", + "description": "Latitude when broken down by `latitude`.", + "example": "37.4223", + "nullable": true + }, + "longitude": { + "type": "string", + "description": "Longitude when broken down by `longitude`.", + "example": "-122.0848", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Time zone when broken down by `timeZone`.", + "example": "America\/Los_Angeles", + "nullable": true + }, + "weatherCode": { + "type": "string", + "description": "Weather station code when broken down by `weatherCode`.", + "example": "USCA0746", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider when broken down by `isp`.", + "example": "Google", + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) when broken down by `autonomousSystemNumber`.", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization owning the ASN when broken down by `autonomousSystemOrganization`.", + "example": "GOOGLE", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type when broken down by `connectionType`.", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "Connection usage type when broken down by `connectionUsageType`.", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP when broken down by `connectionOrganization`.", + "example": "Google LLC", + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Owning team ID when broken down by `teamId`.", + "example": "team_abc", + "nullable": true + } + }, + "required": [ + "value" + ], + "example": { + "time": "2026-04-09T12:00:00.000+00:00", + "value": 5000, + "path": "\/v1\/storage\/files", + "method": "POST", + "status": "201", + "service": "storage", + "country": "us", + "region": "default", + "hostname": "app.example.com", + "ip": "192.0.2.44", + "protocol": "https", + "accept": "application\/json", + "acceptLanguage": "en-US", + "queryKeys": "project,mode", + "osName": "iOS", + "clientType": "browser", + "clientName": "Chrome", + "sdk": "web", + "sdkVersion": "14.0.0", + "deviceName": "smartphone", + "resourceId": "abc123", + "resourceType": "bucket", + "ordinal": "0", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "postalCode": "94043", + "latitude": "37.4223", + "longitude": "-122.0848", + "timeZone": "America\/Los_Angeles", + "weatherCode": "USCA0746", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "teamId": "team_abc" + } + }, + "usageMetric": { + "description": "usageMetric", + "type": "object", + "properties": { + "metric": { + "type": "string", + "description": "Metric key this series describes.", + "example": "files.storage" + }, + "points": { + "type": "array", + "description": "Data points in the requested order.", + "items": { + "$ref": "#\/components\/schemas\/usageDataPoint" + }, + "example": [] + } + }, + "required": [ + "metric", + "points" + ], + "example": { + "metric": "files.storage", + "points": "" + } + }, + "usageEventList": { + "description": "usageEventList", + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "Requested interval, or an empty string for a flat aggregate.", + "example": "1h" + }, + "metrics": { + "type": "array", + "description": "One series per requested event metric.", + "items": { + "$ref": "#\/components\/schemas\/usageMetric" + }, + "example": [] + } + }, + "required": [ + "interval", + "metrics" + ], + "example": { + "interval": "1h", + "metrics": "" + } + }, + "usageGaugeList": { + "description": "usageGaugeList", + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "Requested interval, or an empty string for a flat aggregate.", + "example": "1h" + }, + "metrics": { + "type": "array", + "description": "One series per requested gauge metric.", + "items": { + "$ref": "#\/components\/schemas\/usageMetric" + }, + "example": [] + } + }, + "required": [ + "interval", + "metrics" + ], + "example": { + "interval": "1h", + "metrics": "" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "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.", + "format": "int32", + "example": 512 + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "format": "double", + "example": 1 + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" + ], + "example": { + "memory": 512, + "cpus": 1, + "enabled": true, + "slug": "s-1vcpu-512mb" + } + }, + "proxyRule": { + "description": "Rule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "example": "deployment" + }, + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "example": "manual" + }, + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "example": "https:\/\/appwrite.io\/docs" + }, + "redirectStatusCode": { + "type": "integer", + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "format": "int32", + "example": 301 + }, + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentResourceType": { + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", + "example": "function", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" + } + ], + "nullable": true + }, + "deploymentResourceId": { + "type": "string", + "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "example": "main" + }, + "status": { + "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", + "example": "verified", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "unverified" + ], + "title": "unverified" + }, + { + "type": "string", + "enum": [ + "verifying" + ], + "title": "verifying" + }, + { + "type": "string", + "enum": [ + "verified" + ], + "title": "verified" + } + ] + }, + "logs": { + "type": "string", + "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", + "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." + }, + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "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.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Schedule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Schedule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "The resource type associated with this schedule.", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "The resource ID associated with this schedule.", + "example": "5e5ea5c16897e" + }, + "resourceUpdatedAt": { + "type": "string", + "description": "Change-tracking timestamp used by the scheduler to detect resource changes in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "The project ID associated with this schedule.", + "example": "5e5ea5c16897e" + }, + "schedule": { + "type": "string", + "description": "The CRON schedule expression.", + "example": "5 4 * * *" + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Schedule data used to store resource-specific context needed for execution.", + "example": {} + }, + "active": { + "type": "boolean", + "description": "Whether the schedule is active.", + "example": true + }, + "region": { + "type": "string", + "description": "The region where the schedule is deployed.", + "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" + } + }, + "stage": { + "description": "Stage", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Stage ID.", + "example": "tablesDB.create" + }, + "sdk": { + "type": "string", + "description": "SDK method key (namespace.name) for this stage.", + "example": "tablesDB.create" + }, + "status": { + "type": "string", + "description": "Stage status.", + "example": "completed" + }, + "at": { + "type": "string", + "description": "When the stage was completed or skipped, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "actorType": { + "type": "string", + "description": "Actor type when the stage was recorded.", + "example": "user" + } + }, + "required": [ + "id", + "sdk", + "status", + "at", + "actorType" + ], + "example": { + "id": "tablesDB.create", + "sdk": "tablesDB.create", + "status": "completed", + "at": "2020-10-15T06:38:00.000+00:00", + "actorType": "user" + } + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Template type", + "example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "example": "Click on the link to verify your account." + }, + "senderName": { + "type": "string", + "description": "Name of the sender", + "example": "My User" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "example": "mail@appwrite.io" + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email address", + "example": "emails@appwrite.io" + }, + "replyToName": { + "type": "string", + "description": "Reply to name", + "example": "Support Team" + }, + "subject": { + "type": "string", + "description": "Email subject", + "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.", + "example": "appwrite.io" + }, + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "example": "127.0.0.1" + }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "format": "int32", + "example": 900 + }, + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "example": "::1" + }, + "_APP_DOMAIN_TARGET_CAA": { + "type": "string", + "description": "CAA target for your Appwrite custom domains.", + "example": "digicert.com" + }, + "_APP_STORAGE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for file upload in bytes.", + "format": "int32", + "example": 30000000 + }, + "_APP_COMPUTE_SIZE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for deployment in bytes.", + "format": "int32", + "example": 30000000 + }, + "_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'.", + "example": "enabled" + }, + "_APP_VCS_ENABLED": { + "type": "boolean", + "description": "Defines if VCS (Version Control System) is enabled.", + "example": true + }, + "_APP_VCS_PROVIDERS": { + "type": "array", + "description": "List of configured VCS providers.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": { + "type": "array", + "description": "List of configured VCS providers that support repository creation.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": { + "type": "array", + "description": "List of configured VCS providers that can host public repositories.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_DOMAIN_ENABLED": { + "type": "boolean", + "description": "Defines if main domain is configured. If so, custom domains can be created.", + "example": true + }, + "_APP_ASSISTANT_ENABLED": { + "type": "boolean", + "description": "Defines if AI assistant is enabled.", + "example": true + }, + "_APP_DOMAIN_SITES": { + "type": "string", + "description": "A comma separated list of domains to use for site URLs.", + "example": "sites.localhost,sites.example.com" + }, + "_APP_DOMAIN_FUNCTIONS": { + "type": "string", + "description": "A domain to use for function URLs.", + "example": "functions.localhost" + }, + "_APP_OPTIONS_FORCE_HTTPS": { + "type": "string", + "description": "Defines if HTTPS is enforced for all requests.", + "example": "enabled" + }, + "_APP_DOMAINS_NAMESERVERS": { + "type": "string", + "description": "Comma-separated list of nameservers.", + "example": "ns1.example.com,ns2.example.com" + }, + "_APP_DB_ADAPTER": { + "type": "string", + "description": "Database adapter in use.", + "example": "mysql" + }, + "supportForRelationships": { + "type": "boolean", + "description": "Whether the database adapter supports relationships.", + "example": true + }, + "supportForOperators": { + "type": "boolean", + "description": "Whether the database adapter supports operators.", + "example": true + }, + "supportForSpatials": { + "type": "boolean", + "description": "Whether the database adapter supports spatial attributes.", + "example": true + }, + "supportForSpatialIndexNull": { + "type": "boolean", + "description": "Whether the database adapter supports spatial indexes on nullable columns.", + "example": false + }, + "supportForFulltextWildcard": { + "type": "boolean", + "description": "Whether the database adapter supports fulltext wildcard search.", + "example": true + }, + "supportForMultipleFulltextIndexes": { + "type": "boolean", + "description": "Whether the database adapter supports multiple fulltext indexes per collection.", + "example": true + }, + "supportForAttributeResizing": { + "type": "boolean", + "description": "Whether the database adapter supports resizing attributes.", + "example": true + }, + "supportForSchemas": { + "type": "boolean", + "description": "Whether the database adapter supports fixed schemas with row width limits.", + "example": true + }, + "maxIndexLength": { + "type": "integer", + "description": "Maximum index length supported by the database adapter.", + "format": "int32", + "example": 768 + }, + "supportForIntegerIds": { + "type": "boolean", + "description": "Whether the database adapter uses integer sequence IDs.", + "example": true + }, + "_APP_CONSOLE_EMAIL_VERIFICATION": { + "type": "string", + "description": "Whether email verification for console users is required. Can be \"true\" or \"false\".", + "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_VCS_PROVIDERS", + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION", + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES", + "_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_VCS_PROVIDERS": [ + "github" + ], + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": [ + "github" + ], + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": [ + "github" + ], + "_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`).", + "example": "clientId" + }, + "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.", + "example": "Client ID or App ID" + }, + "example": { + "type": "string", + "description": "Example value for this parameter.", + "example": "e4d87900000000540733" + }, + "hint": { + "type": "string", + "description": "Optional hint for this parameter, typically calling out a common wrong value. Empty string when no hint is set.", + "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.", + "example": "github" + }, + "parameters": { + "type": "array", + "description": "List of parameters required to configure this OAuth2 provider.", + "items": { + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderParameter" + }, + "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.", + "format": "int32", + "example": 5 + }, + "oAuth2Providers": { + "type": "array", + "description": "List of OAuth2 providers, each with the parameters required to configure it.", + "items": { + "$ref": "#\/components\/schemas\/consoleOAuth2Provider" + }, + "example": [] + } + }, + "required": [ + "total", + "oAuth2Providers" + ], + "example": { + "total": 5, + "oAuth2Providers": "" + } + }, + "consoleKeyScope": { + "description": "Console Key Scope", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Scope ID.", + "example": "users.read" + }, + "description": { + "type": "string", + "description": "Scope description.", + "example": "Access to read your project's users" + }, + "category": { + "type": "string", + "description": "Scope category.", + "example": "Auth" + }, + "deprecated": { + "type": "boolean", + "description": "Scope is deprecated.", + "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.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of key scopes, each with its ID and description.", + "items": { + "$ref": "#\/components\/schemas\/consoleKeyScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "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" + } + }, + "mfaChallengeSecret": { + "description": "MFA Challenge Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "code": { + "type": "string", + "description": "Challenge code to be delivered to the end user through a custom channel.", + "example": "446372" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire", + "code" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00", + "code": "446372" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "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.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "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.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name for the provider instance.", + "example": "Mailgun" + }, + "provider": { + "type": "string", + "description": "The name of the provider service.", + "example": "mailgun" + }, + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "example": true + }, + "type": { + "type": "string", + "description": "Type of provider.", + "example": "sms" + }, + "credentials": { + "type": "object", + "additionalProperties": true, + "description": "Provider credentials.", + "example": { + "key": "123456789" + } + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Provider options.", + "example": { + "from": "sender-email@mydomain" + } + } + }, + "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" + }, + "options": { + "from": "sender-email@mydomain" + } + } + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerType": { + "type": "string", + "description": "Message provider type.", + "example": "email" + }, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "users": { + "type": "array", + "description": "User IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "targets": { + "type": "array", + "description": "Target IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveryErrors": { + "type": "array", + "description": "Delivery errors if any.", + "items": { + "type": "string" + }, + "example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "nullable": true + }, + "deliveredTotal": { + "type": "integer", + "description": "Number of recipients the message was delivered to.", + "format": "int32", + "example": 1 + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Data of the message.", + "example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } + }, + "status": { + "description": "Status of delivery.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "draft" + ], + "title": "draft" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + }, + { + "type": "string", + "enum": [ + "sent" + ], + "title": "sent" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "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." + }, + "status": "processing" + } + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name of the topic.", + "example": "events" + }, + "emailTotal": { + "type": "integer", + "description": "Total count of email subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "smsTotal": { + "type": "integer", + "description": "Total count of SMS subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "pushTotal": { + "type": "integer", + "description": "Total count of push subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "subscribe": { + "type": "array", + "description": "Subscribe permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "qos": { + "type": "integer", + "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", + "format": "int32", + "example": 1, + "nullable": true + }, + "expiry": { + "type": "integer", + "description": "Message retention in seconds for offline delivery.", + "format": "int32", + "example": 604800, + "nullable": true + } + }, + "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", + "qos": 1, + "expiry": 604800 + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "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" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "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" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "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" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$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 + } + }, + "migration": { + "description": "Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Migration status ( pending, processing, failed, completed ) ", + "example": "pending" + }, + "stage": { + "type": "string", + "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", + "example": "init" + }, + "source": { + "type": "string", + "description": "A string containing the type of source of the migration.", + "example": "Appwrite" + }, + "destination": { + "type": "string", + "description": "A string containing the type of destination of the migration.", + "example": "Appwrite" + }, + "resources": { + "type": "array", + "description": "Resources to migrate.", + "items": { + "type": "string" + }, + "example": [ + "user" + ] + }, + "resourceId": { + "type": "string", + "description": "ID of the resource being migrated.", + "example": "collectionId" + }, + "resourceInternalId": { + "type": "string", + "description": "Internal ID of the resource being migrated.", + "example": "1" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource being migrated.", + "example": "collection" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource that contains the migrated resource.", + "example": "databaseId" + }, + "parentResourceInternalId": { + "type": "string", + "description": "Internal ID of the parent resource that contains the migrated resource.", + "example": "1" + }, + "parentResourceType": { + "type": "string", + "description": "Type of the parent resource that contains the migrated resource.", + "example": "database" + }, + "destinationResourceId": { + "type": "string", + "description": "ID of the destination resource created or overwritten by the migration.", + "example": "databaseId" + }, + "destinationResourceInternalId": { + "type": "string", + "description": "Internal ID of the destination resource created or overwritten by the migration.", + "example": "1" + }, + "destinationResourceType": { + "type": "string", + "description": "Type of the destination resource created or overwritten by the migration.", + "example": "database" + }, + "statusCounters": { + "type": "object", + "additionalProperties": true, + "description": "A group of counters that represent the total progress of the migration.", + "example": { + "Database": { + "PENDING": 0, + "SUCCESS": 1, + "ERROR": 0, + "SKIP": 0, + "PROCESSING": 0, + "WARNING": 0 + } + } + }, + "resourceData": { + "type": "array", + "description": "An array of objects containing the report data of the resources that were migrated.", + "items": { + "type": "object" + }, + "example": [ + { + "resource": "Database", + "id": "public", + "status": "SUCCESS", + "message": "" + } + ] + }, + "errors": { + "type": "array", + "description": "All errors that occurred during the migration process.", + "items": { + "type": "string" + }, + "example": [] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Migration options used during the migration process.", + "example": { + "bucketId": "exports", + "notify": false + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "stage", + "source", + "destination", + "resources", + "resourceId", + "resourceInternalId", + "resourceType", + "parentResourceId", + "parentResourceInternalId", + "parentResourceType", + "destinationResourceId", + "destinationResourceInternalId", + "destinationResourceType", + "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", + "status": "pending", + "stage": "init", + "source": "Appwrite", + "destination": "Appwrite", + "resources": [ + "user" + ], + "resourceId": "collectionId", + "resourceInternalId": "1", + "resourceType": "collection", + "parentResourceId": "databaseId", + "parentResourceInternalId": "1", + "parentResourceType": "database", + "destinationResourceId": "databaseId", + "destinationResourceInternalId": "1", + "destinationResourceType": "database", + "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}" + } + }, + "migrationReport": { + "description": "Migration Report", + "type": "object", + "properties": { + "user": { + "type": "integer", + "description": "Number of users to be migrated.", + "format": "int32", + "example": 20 + }, + "team": { + "type": "integer", + "description": "Number of teams to be migrated.", + "format": "int32", + "example": 20 + }, + "database": { + "type": "integer", + "description": "Number of databases to be migrated.", + "format": "int32", + "example": 20 + }, + "row": { + "type": "integer", + "description": "Number of rows to be migrated.", + "format": "int32", + "example": 20 + }, + "file": { + "type": "integer", + "description": "Number of files to be migrated.", + "format": "int32", + "example": 20 + }, + "bucket": { + "type": "integer", + "description": "Number of buckets to be migrated.", + "format": "int32", + "example": 20 + }, + "function": { + "type": "integer", + "description": "Number of functions to be migrated.", + "format": "int32", + "example": 20 + }, + "platform": { + "type": "integer", + "description": "Number of platforms to be migrated.", + "format": "int32", + "example": 5 + }, + "api-key": { + "type": "integer", + "description": "Number of API keys to be migrated.", + "format": "int32", + "example": 5 + }, + "project-variable": { + "type": "integer", + "description": "Number of project variables to be migrated.", + "format": "int32", + "example": 5 + }, + "webhook": { + "type": "integer", + "description": "Number of webhooks to be migrated.", + "format": "int32", + "example": 5 + }, + "auth-methods": { + "type": "integer", + "description": "Number of auth-method configs to be migrated (always 0 or 1 \u2014 the project-level flag bundle).", + "format": "int32", + "example": 1 + }, + "project-protocols": { + "type": "integer", + "description": "Number of protocol configs to be migrated (always 0 or 1 \u2014 the project-level REST\/GraphQL\/WebSocket flags).", + "format": "int32", + "example": 1 + }, + "project-labels": { + "type": "integer", + "description": "Number of label sets to be migrated (always 0 or 1 \u2014 the project-level RBAC label array).", + "format": "int32", + "example": 1 + }, + "project-services": { + "type": "integer", + "description": "Number of service configs to be migrated (always 0 or 1 \u2014 the project-level enable\/disable flags for all 17 services).", + "format": "int32", + "example": 1 + }, + "policies": { + "type": "integer", + "description": "Number of policy bundles to be migrated (always 0 or 1 \u2014 the project-level security policies covering password rules, session behavior, user limits, and membership privacy).", + "format": "int32", + "example": 1 + }, + "smtp": { + "type": "integer", + "description": "Number of SMTP configurations to be migrated (always 0 or 1 \u2014 the project-level custom SMTP settings; password is not exposed by the source API).", + "format": "int32", + "example": 1 + }, + "rule": { + "type": "integer", + "description": "Number of custom-domain proxy rules to be migrated. Auto-generated `.appwrite.network` rules are skipped \u2014 they are recreated by parent Function\/Site migration.", + "format": "int32", + "example": 5 + }, + "project-email-template": { + "type": "integer", + "description": "Number of custom email templates to be migrated (one per templateId \u00d7 locale pair).", + "format": "int32", + "example": 7 + }, + "site": { + "type": "integer", + "description": "Number of sites to be migrated.", + "format": "int32", + "example": 5 + }, + "provider": { + "type": "integer", + "description": "Number of providers to be migrated.", + "format": "int32", + "example": 5 + }, + "topic": { + "type": "integer", + "description": "Number of topics to be migrated.", + "format": "int32", + "example": 10 + }, + "subscriber": { + "type": "integer", + "description": "Number of subscribers to be migrated.", + "format": "int32", + "example": 100 + }, + "message": { + "type": "integer", + "description": "Number of messages to be migrated.", + "format": "int32", + "example": 50 + }, + "size": { + "type": "integer", + "description": "Size of files to be migrated in mb.", + "format": "int32", + "example": 30000 + }, + "version": { + "type": "string", + "description": "Version of the Appwrite instance to be migrated.", + "example": "1.4.0" + }, + "oauth2-provider": { + "type": "integer", + "description": "Number of OAuth2 provider configurations to be migrated. Secrets (clientSecret, p8File) are never migrated \u2014 destination admin must re-enter them per provider.", + "format": "int32", + "example": 5 + }, + "backup-policy": { + "type": "integer", + "description": "Number of backup policies to be migrated.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "user", + "team", + "database", + "row", + "file", + "bucket", + "function", + "platform", + "api-key", + "project-variable", + "webhook", + "auth-methods", + "project-protocols", + "project-labels", + "project-services", + "policies", + "smtp", + "rule", + "project-email-template", + "site", + "provider", + "topic", + "subscriber", + "message", + "size", + "version", + "oauth2-provider", + "backup-policy" + ], + "example": { + "user": 20, + "team": 20, + "database": 20, + "row": 20, + "file": 20, + "bucket": 20, + "function": 20, + "platform": 5, + "api-key": 5, + "project-variable": 5, + "webhook": 5, + "auth-methods": 1, + "project-protocols": 1, + "project-labels": 1, + "project-services": 1, + "policies": 1, + "smtp": 1, + "rule": 5, + "project-email-template": 7, + "site": 5, + "provider": 5, + "topic": 10, + "subscriber": 100, + "message": 50, + "size": 30000, + "version": "1.4.0", + "oauth2-provider": 5, + "backup-policy": 5 + } + }, + "insight": { + "description": "Insight", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Insight ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Insight creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Insight update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "reportId": { + "type": "string", + "description": "Parent report ID. Insights always belong to a report.", + "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).", + "example": "tablesDBIndex" + }, + "severity": { + "type": "string", + "description": "Insight severity. One of info, warning, critical.", + "example": "warning" + }, + "status": { + "type": "string", + "description": "Insight status. One of active, dismissed.", + "example": "active" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", + "example": "databases" + }, + "resourceId": { + "type": "string", + "description": "ID of the resource the insight is about.", + "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.", + "example": "tables" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource. Empty when the resource has no parent.", + "example": "orders" + }, + "title": { + "type": "string", + "description": "Insight title.", + "example": "Missing index on collection orders" + }, + "summary": { + "type": "string", + "description": "Short markdown summary describing the insight.", + "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" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the insight was analyzed in ISO 8601 format.", + "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.", + "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.", + "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.", + "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.", + "example": "tablesDB" + }, + "method": { + "type": "string", + "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", + "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).", + "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.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Report creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Report update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the third-party app that submitted the report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", + "example": "lighthouse" + }, + "title": { + "type": "string", + "description": "Short, human-readable title for the report.", + "example": "Lighthouse audit for https:\/\/appwrite.io\/" + }, + "summary": { + "type": "string", + "description": "Markdown summary describing the report.", + "example": "Performance score 78. 4 opportunities found." + }, + "targetType": { + "type": "string", + "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", + "example": "urls" + }, + "target": { + "type": "string", + "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", + "example": "https:\/\/appwrite.io\/" + }, + "categories": { + "type": "array", + "description": "Categories covered by the report, e.g. performance, accessibility.", + "items": { + "type": "string" + }, + "example": [ + "performance", + "accessibility" + ] + }, + "insights": { + "type": "array", + "description": "Insights nested under this report.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the report was analyzed in ISO 8601 format.", + "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.", + "example": "5e5ea5c16897e" + }, + "actorType": { + "type": "string", + "description": "Actor type.", + "example": "user" + }, + "actorId": { + "type": "string", + "description": "Actor ID.", + "example": "610fc2f985ee0" + }, + "actorEmail": { + "type": "string", + "description": "Actor Email.", + "example": "john@appwrite.io" + }, + "actorName": { + "type": "string", + "description": "Actor Name.", + "example": "John Doe" + }, + "resourceParent": { + "type": "string", + "description": "Resource parent.", + "example": "database\/ID" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "collection" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "610fc2f985ee0" + }, + "resource": { + "type": "string", + "description": "Resource.", + "example": "collections\/610fc2f985ee0" + }, + "event": { + "type": "string", + "description": "Event name.", + "example": "account.sessions.create" + }, + "userAgent": { + "type": "string", + "description": "User agent.", + "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.", + "example": "127.0.0.1" + }, + "mode": { + "type": "string", + "description": "API mode when event triggered.", + "example": "admin" + }, + "country": { + "type": "string", + "description": "Location.", + "example": "US" + }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "example": "Google LLC" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "610fc2f985ee0" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "610fc2f985ee0" + }, + "hostname": { + "type": "string", + "description": "Hostname.", + "example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "example": "14.0.0" + } + }, + "required": [ + "$id", + "actorType", + "actorId", + "actorEmail", + "actorName", + "resourceParent", + "resourceType", + "resourceId", + "resource", + "event", + "userAgent", + "ip", + "mode", + "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", + "time", + "projectId", + "teamId", + "hostname", + "sdk", + "sdkVersion" + ], + "example": { + "$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", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "time": "2020-10-15T06:38:00.000+00:00", + "projectId": "610fc2f985ee0", + "teamId": "610fc2f985ee0", + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" + } + }, + "additionalResource": { + "description": "AdditionalResource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Resource name", + "example": "" + }, + "unit": { + "type": "string", + "description": "Resource unit", + "example": "GB" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD" + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "name", + "unit", + "currency", + "price", + "value", + "invoiceDesc" + ], + "example": { + "name": "", + "unit": "GB", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "addon": { + "description": "Addon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Addon ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Addon creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Addon update date in ISO 8601 format.", + "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" + }, + "example": [ + "read(\"any\")" + ] + }, + "key": { + "type": "string", + "description": "Addon key", + "example": "baa" + }, + "resourceType": { + "type": "string", + "description": "Resource type (organization or project)", + "example": "organization" + }, + "resourceId": { + "type": "string", + "description": "Resource ID", + "example": "5e5ea5c16897e" + }, + "status": { + "type": "string", + "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", + "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.", + "format": "int32", + "example": 1 + }, + "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.", + "format": "int32", + "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.", + "example": "baa" + }, + "name": { + "type": "string", + "description": "Addon display name.", + "example": "HIPAA BAA" + }, + "monthlyPrice": { + "type": "number", + "description": "Full monthly price of the addon.", + "format": "double", + "example": 350 + }, + "proratedAmount": { + "type": "number", + "description": "Calculated prorated amount for the current billing cycle.", + "format": "double", + "example": 175.5 + }, + "remainingDays": { + "type": "integer", + "description": "Days remaining in the current billing cycle.", + "format": "int32", + "example": 15 + }, + "totalCycleDays": { + "type": "integer", + "description": "Total days in the billing cycle.", + "format": "int32", + "example": 30 + }, + "currency": { + "type": "string", + "description": "Currency code.", + "example": "USD" + }, + "billingCycleEnd": { + "type": "string", + "description": "When the current billing cycle ends.", + "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" + } + }, + "affiliateLink": { + "description": "AffiliateLink", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Link ID. This is the shareable referral code.", + "example": "my-campaign" + }, + "$createdAt": { + "type": "string", + "description": "Link creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Link update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID of the link owner.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Optional link name.", + "example": "Launch campaign" + }, + "status": { + "type": "string", + "description": "Link status. Can be one of `active` or `disabled`.", + "example": "active" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "name", + "status" + ], + "example": { + "$id": "my-campaign", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "name": "Launch campaign", + "status": "active" + } + }, + "affiliateLinkList": { + "description": "Affiliate links list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of links that matched your query.", + "format": "int32", + "example": 5 + }, + "links": { + "type": "array", + "description": "List of links.", + "items": { + "$ref": "#\/components\/schemas\/affiliateLink" + }, + "example": [] + } + }, + "required": [ + "total", + "links" + ], + "example": { + "total": 5, + "links": "" + } + }, + "affiliateReferral": { + "description": "AffiliateReferral", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Referral ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Referral creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Referral update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "linkId": { + "type": "string", + "description": "Affiliate link ID used for attribution.", + "example": "my-campaign" + }, + "referredUserMaskedId": { + "type": "string", + "description": "Privacy-safe truncated referred user ID.", + "example": "****97e" + }, + "referredUserCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code of the referred user at signup, when available.", + "example": "us" + }, + "status": { + "type": "string", + "description": "Referral status. Can be one of `pending`, `converted`, or `expired`. `expired` is derived from `expiresAt` when still pending.", + "example": "pending" + }, + "attributedAt": { + "type": "string", + "description": "Attribution time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "expiresAt": { + "type": "string", + "description": "Attribution expiry time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "convertedAt": { + "type": "string", + "description": "Conversion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "linkId", + "referredUserMaskedId", + "referredUserCountry", + "status", + "attributedAt", + "expiresAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "linkId": "my-campaign", + "referredUserMaskedId": "****97e", + "referredUserCountry": "us", + "status": "pending", + "attributedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "convertedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "affiliateReferralList": { + "description": "Affiliate referrals list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of referrals that matched your query.", + "format": "int32", + "example": 5 + }, + "referrals": { + "type": "array", + "description": "List of referrals.", + "items": { + "$ref": "#\/components\/schemas\/affiliateReferral" + }, + "example": [] + } + }, + "required": [ + "total", + "referrals" + ], + "example": { + "total": 5, + "referrals": "" + } + }, + "affiliateReward": { + "description": "AffiliateReward", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Reward ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Reward creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Reward update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID of the reward owner.", + "example": "5e5ea5c16897e" + }, + "linkId": { + "type": "string", + "description": "Affiliate link ID that earned this reward.", + "example": "my-campaign" + }, + "referralId": { + "type": "string", + "description": "Referral ID that earned this reward.", + "example": "5e5ea5c16897e" + }, + "amount": { + "type": "number", + "description": "Reward amount in USD.", + "format": "double", + "example": 10 + }, + "status": { + "type": "string", + "description": "Reward status. Can be one of `pending` or `claimed`.", + "example": "pending" + }, + "teamId": { + "type": "string", + "description": "Organization ID the reward was claimed on.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "creditId": { + "type": "string", + "description": "Credit document ID created when the reward was claimed.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "linkId", + "referralId", + "amount", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "linkId": "my-campaign", + "referralId": "5e5ea5c16897e", + "amount": 10, + "status": "pending", + "teamId": "5e5ea5c16897e", + "creditId": "5e5ea5c16897e" + } + }, + "affiliateRewardList": { + "description": "Affiliate rewards list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rewards that matched your query.", + "format": "int32", + "example": 5 + }, + "rewards": { + "type": "array", + "description": "List of rewards.", + "items": { + "$ref": "#\/components\/schemas\/affiliateReward" + }, + "example": [] + } + }, + "required": [ + "total", + "rewards" + ], + "example": { + "total": 5, + "rewards": "" + } + }, + "aggregationBreakdown": { + "description": "Breakdown", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Aggregation ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Project name", + "example": "" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "format": "int32", + "example": 2 + }, + "resources": { + "type": "array", + "description": "", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + } + }, + "required": [ + "$id", + "name", + "region", + "amount", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "", + "region": "fra", + "amount": 2, + "resources": "" + } + }, + "analyticsMetric": { + "description": "AnalyticsMetric", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", + "example": "google.com", + "nullable": true + }, + "date": { + "type": "string", + "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", + "example": "2026-05-01T00:00:00.000+00:00", + "nullable": true + }, + "visitors": { + "type": "integer", + "description": "Unique visitors in the requested range.", + "format": "int32", + "example": 1234 + }, + "sessions": { + "type": "integer", + "description": "Unique sessions in the requested range.", + "format": "int32", + "example": 4567 + }, + "pageviews": { + "type": "integer", + "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 5678, + "nullable": true + }, + "events": { + "type": "integer", + "description": "Total events in the requested range.", + "format": "int32", + "example": 8910 + }, + "visits": { + "type": "integer", + "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 2345, + "nullable": true + }, + "bounceRate": { + "type": "number", + "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 42.5, + "nullable": true + }, + "visitDuration": { + "type": "number", + "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 75.4, + "nullable": true + }, + "viewsPerVisit": { + "type": "number", + "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 2.7, + "nullable": true + }, + "scrollDepth": { + "type": "number", + "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 65, + "nullable": true + }, + "engagementTime": { + "type": "number", + "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 18432, + "nullable": true + } + }, + "required": [ + "visitors", + "sessions", + "events" + ], + "example": { + "value": "google.com", + "date": "2026-05-01T00:00:00.000+00:00", + "visitors": 1234, + "sessions": 4567, + "pageviews": 5678, + "events": 8910, + "visits": 2345, + "bounceRate": 42.5, + "visitDuration": 75.4, + "viewsPerVisit": 2.7, + "scrollDepth": 65, + "engagementTime": 18432 + } + }, + "analyticsMetricList": { + "description": "AnalyticsMetricList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of metric rows returned.", + "format": "int32", + "example": 30 + }, + "metrics": { + "type": "array", + "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", + "items": { + "$ref": "#\/components\/schemas\/analyticsMetric" + }, + "example": [] + } + }, + "required": [ + "total", + "metrics" + ], + "example": { + "total": 30, + "metrics": [] + } + }, + "analyticsProperty": { + "description": "AnalyticsProperty", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Analytics property ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Property creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Property update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human-readable name of the tracked website or application.", + "example": "My Website" + }, + "domain": { + "type": "string", + "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", + "example": "example.com" + }, + "timezone": { + "type": "string", + "description": "IANA timezone used to define the daily boundary for stats.", + "example": "UTC" + }, + "enabled": { + "type": "boolean", + "description": "Whether tracking is currently active.", + "example": true + }, + "public": { + "type": "boolean", + "description": "Whether stats for this property are publicly viewable.", + "example": false + }, + "allowedOrigins": { + "type": "array", + "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + }, + "snippetId": { + "type": "string", + "description": "Unique identifier for the tracking script snippet.", + "example": "snp_a1b2c3d4e5" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "domain", + "timezone", + "enabled", + "public", + "allowedOrigins", + "snippetId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Website", + "domain": "example.com", + "timezone": "UTC", + "enabled": true, + "public": false, + "allowedOrigins": [ + "https:\/\/example.com" + ], + "snippetId": "snp_a1b2c3d4e5" + } + }, + "aggregationTeam": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Aggregation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Aggregation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Aggregation update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Aggregation permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "from": { + "type": "string", + "description": "Beginning date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "to": { + "type": "string", + "description": "End date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "usageStorage": { + "type": "integer", + "description": "Total storage usage", + "format": "int32", + "example": 20009090 + }, + "usageTotalStorage": { + "type": "integer", + "description": "Total storage usage with builds storage", + "format": "int32", + "example": 20009090 + }, + "usageFilesStorage": { + "type": "integer", + "description": "Total files storage usage", + "format": "int32", + "example": 20009090 + }, + "usageDeploymentsStorage": { + "type": "integer", + "description": "Total deployments storage usage", + "format": "int32", + "example": 20009090 + }, + "usageBuildsStorage": { + "type": "integer", + "description": "Total builds storage usage", + "format": "int32", + "example": 20009090 + }, + "usageDatabasesStorage": { + "type": "integer", + "description": "Total databases storage usage", + "format": "int32", + "example": 2009090 + }, + "usageFunctionsStorage": { + "type": "integer", + "description": "Total functions storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", + "format": "int32", + "example": 20009090 + }, + "usageSitesStorage": { + "type": "integer", + "description": "Total sites storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", + "format": "int32", + "example": 20009090 + }, + "usageUsers": { + "type": "integer", + "description": "Total active users for the billing period", + "format": "int32", + "example": 2000 + }, + "usageExecutions": { + "type": "integer", + "description": "Total number of executions for the billing period", + "format": "int32", + "example": 2000 + }, + "usageBandwidth": { + "type": "integer", + "description": "Total bandwidth usage for the billing period", + "format": "int32", + "example": 2000 + }, + "usageRealtime": { + "type": "integer", + "description": "Peak concurrent realtime connections for the billing period", + "format": "int32", + "example": 200 + }, + "usageRealtimeMessages": { + "type": "integer", + "description": "Total realtime messages sent for the billing period", + "format": "int32", + "example": 10000 + }, + "usageRealtimeBandwidth": { + "type": "integer", + "description": "Total realtime bandwidth usage for the billing period", + "format": "int32", + "example": 5000000 + }, + "additionalMembers": { + "type": "integer", + "description": "Additional members", + "format": "int32", + "example": 5 + }, + "additionalMemberAmount": { + "type": "integer", + "description": "Additional members cost", + "format": "int32", + "example": 30 + }, + "additionalStorageAmount": { + "type": "integer", + "description": "Additional storage usage cost", + "format": "int32", + "example": 40 + }, + "additionalUsersAmount": { + "type": "integer", + "description": "Additional users usage cost.", + "format": "int32", + "example": 4 + }, + "additionalExecutionsAmount": { + "type": "integer", + "description": "Additional executions usage cost", + "format": "int32", + "example": 30 + }, + "additionalBandwidthAmount": { + "type": "integer", + "description": "Additional bandwidth usage cost", + "format": "int32", + "example": 40 + }, + "additionalRealtimeAmount": { + "type": "integer", + "description": "Additional realtime usage cost", + "format": "int32", + "example": 20 + }, + "plan": { + "type": "string", + "description": "Billing plan", + "example": "tier-0" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "format": "int32", + "example": 2 + }, + "breakdown": { + "type": "array", + "description": "Aggregation project breakdown", + "items": { + "$ref": "#\/components\/schemas\/aggregationBreakdown" + }, + "example": [] + }, + "resources": { + "type": "array", + "description": "Usage resources", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "from", + "to", + "usageStorage", + "usageTotalStorage", + "usageFilesStorage", + "usageDeploymentsStorage", + "usageBuildsStorage", + "usageDatabasesStorage", + "usageFunctionsStorage", + "usageSitesStorage", + "usageUsers", + "usageExecutions", + "usageBandwidth", + "usageRealtime", + "usageRealtimeMessages", + "usageRealtimeBandwidth", + "additionalMembers", + "additionalMemberAmount", + "additionalStorageAmount", + "additionalUsersAmount", + "additionalExecutionsAmount", + "additionalBandwidthAmount", + "additionalRealtimeAmount", + "plan", + "amount", + "breakdown", + "resources" + ], + "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, + "usageFunctionsStorage": 20009090, + "usageSitesStorage": 20009090, + "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": [] + } + }, + "backupArchive": { + "description": "Archive", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Archive ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Archive creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Archive update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "policyId": { + "type": "string", + "description": "Archive policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "size": { + "type": "integer", + "description": "Archive size in bytes. Null until the size is known.", + "format": "int32", + "example": 100000, + "nullable": true + }, + "status": { + "type": "string", + "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The backup start time. Null until the backup starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this archive should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this archive should backup a single resource.", + "example": "database", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "policyId", + "status", + "migrationId", + "services", + "resources" + ], + "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" + } + }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID when the backup was created by a schedule.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "type": "string", + "description": "Backup trigger. Possible values: manual, schedule.", + "example": "schedule" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "example": "full" + }, + "requestedType": { + "type": "string", + "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", + "example": "incremental" + }, + "fallbackReason": { + "type": "string", + "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", + "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." + }, + "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).", + "example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "format": "int32", + "example": 1073741824 + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "logPosition": { + "type": "string", + "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", + "example": "000000010000000000000003|0\/3000148", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "policyId", + "trigger", + "type", + "requestedType", + "fallbackReason", + "status", + "sizeBytes", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "policyId": "5e5ea5c16897e", + "trigger": "schedule", + "type": "full", + "requestedType": "incremental", + "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", + "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", + "logPosition": "000000010000000000000003|0\/3000148", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "format": "int32", + "example": 5 + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + }, + "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).", + "example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "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": "Address", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Region ID", + "example": "eu-fr" + }, + "userId": { + "type": "string", + "description": "User ID", + "example": "5e5ea5c16897e" + }, + "streetAddress": { + "type": "string", + "description": "Street address", + "example": "13th Avenue" + }, + "addressLine2": { + "type": "string", + "description": "Address line 2", + "example": "" + }, + "country": { + "type": "string", + "description": "Address country", + "example": "USA" + }, + "city": { + "type": "string", + "description": "city", + "example": "" + }, + "state": { + "type": "string", + "description": "state", + "example": "" + }, + "postalCode": { + "type": "string", + "description": "postal code", + "example": "" + } + }, + "required": [ + "$id", + "userId", + "streetAddress", + "addressLine2", + "country", + "city", + "state", + "postalCode" + ], + "example": { + "$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", + "format": "int32", + "example": 5, + "nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "format": "int32", + "example": 150, + "nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "format": "int32", + "example": 200000, + "nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "format": "int32", + "example": 750000, + "nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "format": "int32", + "example": 10, + "nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "format": "int32", + "example": 100, + "nullable": true + } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 + } + }, + "billingPlan": { + "description": "billingPlan", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Plan ID.", + "example": "tier-0" + }, + "name": { + "type": "string", + "description": "Plan name", + "example": "Hobby" + }, + "desc": { + "type": "string", + "description": "Plan description", + "example": "Hobby plan" + }, + "order": { + "type": "integer", + "description": "Plan order", + "format": "int32", + "example": 0 + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 25 + }, + "trial": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "bandwidth": { + "type": "integer", + "description": "Bandwidth", + "format": "int32", + "example": 25 + }, + "storage": { + "type": "integer", + "description": "Storage", + "format": "int32", + "example": 25 + }, + "imageTransformations": { + "type": "integer", + "description": "Image Transformations", + "format": "int32", + "example": 100 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Screenshots generated", + "format": "int32", + "example": 50 + }, + "members": { + "type": "integer", + "description": "Members", + "format": "int32", + "example": 25, + "nullable": true + }, + "webhooks": { + "type": "integer", + "description": "Webhooks", + "format": "int32", + "example": 25 + }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "format": "int32", + "example": 2 + }, + "projects": { + "type": "integer", + "description": "Projects", + "format": "int32", + "example": 2 + }, + "platforms": { + "type": "integer", + "description": "Platforms", + "format": "int32", + "example": 3 + }, + "users": { + "type": "integer", + "description": "Users", + "format": "int32", + "example": 25 + }, + "teams": { + "type": "integer", + "description": "Teams", + "format": "int32", + "example": 25 + }, + "databases": { + "type": "integer", + "description": "Databases", + "format": "int32", + "example": 25 + }, + "databasesReads": { + "type": "integer", + "description": "Database reads per month", + "format": "int32", + "example": 500000 + }, + "databasesWrites": { + "type": "integer", + "description": "Database writes per month", + "format": "int32", + "example": 250000 + }, + "databasesBatchSize": { + "type": "integer", + "description": "Database batch size limit", + "format": "int32", + "example": 100 + }, + "buckets": { + "type": "integer", + "description": "Buckets", + "format": "int32", + "example": 25 + }, + "fileSize": { + "type": "integer", + "description": "File size", + "format": "int32", + "example": 25 + }, + "functions": { + "type": "integer", + "description": "Functions", + "format": "int32", + "example": 25 + }, + "sites": { + "type": "integer", + "description": "Sites", + "format": "int32", + "example": 1 + }, + "executions": { + "type": "integer", + "description": "Function executions", + "format": "int32", + "example": 25 + }, + "executionsRetentionCount": { + "type": "integer", + "description": "Rolling max executions retained per function\/site", + "format": "int32", + "example": 10000 + }, + "GBHours": { + "type": "integer", + "description": "GB hours for functions", + "format": "int32", + "example": 100 + }, + "realtime": { + "type": "integer", + "description": "Realtime connections", + "format": "int32", + "example": 25 + }, + "realtimeMessages": { + "type": "integer", + "description": "Realtime messages", + "format": "int32", + "example": 100000 + }, + "messages": { + "type": "integer", + "description": "Messages per month", + "format": "int32", + "example": 1000 + }, + "topics": { + "type": "integer", + "description": "Topics for messaging", + "format": "int32", + "example": 1 + }, + "authPhone": { + "type": "integer", + "description": "SMS authentications per month", + "format": "int32", + "example": 10 + }, + "domains": { + "type": "integer", + "description": "Custom domains", + "format": "int32", + "example": 5 + }, + "activityLogs": { + "type": "integer", + "description": "Activity log days", + "format": "int32", + "example": 7, + "nullable": true + }, + "usageLogs": { + "type": "integer", + "description": "Usage history days", + "format": "int32", + "example": 30 + }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, + "usageAggregateOnlyMetrics": { + "type": "array", + "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", + "items": { + "type": "string" + }, + "example": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "nullable": true + }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "format": "int32", + "example": 7 + }, + "alertLimit": { + "type": "integer", + "description": "Alert threshold percentage", + "format": "int32", + "example": 80 + }, + "usage": { + "type": "object", + "description": "Additional resources. Null when the plan does not support usage billing.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/usageBillingPlan" + } + ], + "nullable": true + }, + "addons": { + "type": "object", + "description": "Addons", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddon" + } + ] + }, + "budgetCapEnabled": { + "type": "boolean", + "description": "Budget cap enabled or disabled.", + "example": true + }, + "customSmtp": { + "type": "boolean", + "description": "Custom SMTP", + "example": true + }, + "emailBranding": { + "type": "boolean", + "description": "Appwrite branding in email", + "example": true + }, + "requiresPaymentMethod": { + "type": "boolean", + "description": "Does plan require payment method", + "example": true + }, + "requiresBillingAddress": { + "type": "boolean", + "description": "Does plan require billing address", + "example": true + }, + "eligibleCountries": { + "type": "array", + "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", + "items": { + "type": "string" + }, + "example": [ + "IN", + "NP" + ], + "nullable": true + }, + "isAvailable": { + "type": "boolean", + "description": "Is the billing plan available", + "example": true + }, + "selfService": { + "type": "boolean", + "description": "Can user change the plan themselves", + "example": true + }, + "premiumSupport": { + "type": "boolean", + "description": "Does plan enable premium support", + "example": true + }, + "budgeting": { + "type": "boolean", + "description": "Does plan support budget cap", + "example": true + }, + "supportsMockNumbers": { + "type": "boolean", + "description": "Does plan support mock numbers", + "example": true + }, + "supportsOrganizationRoles": { + "type": "boolean", + "description": "Does plan support organization roles", + "example": true + }, + "supportsCredits": { + "type": "boolean", + "description": "Does plan support credit", + "example": true + }, + "supportsDedicatedDatabases": { + "type": "boolean", + "description": "Does plan support dedicated databases.", + "example": true + }, + "supportsDisposableEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking disposable email addresses.", + "example": true + }, + "supportsCanonicalEmailValidation": { + "type": "boolean", + "description": "Does plan support requiring canonical email addresses.", + "example": true + }, + "supportsFreeEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking free email addresses.", + "example": true + }, + "supportsCorporateEmailValidation": { + "type": "boolean", + "description": "Does plan support restricting sign-ups to corporate email addresses only.", + "example": true + }, + "supportsProjectSpecificRoles": { + "type": "boolean", + "description": "Does plan support project-specific member roles.", + "example": true + }, + "backupsEnabled": { + "type": "boolean", + "description": "Does plan support backup policies.", + "example": true, + "nullable": true + }, + "usagePerProject": { + "type": "boolean", + "description": "Whether usage addons are calculated per project.", + "example": true + }, + "supportedAddons": { + "type": "object", + "description": "Supported addons for this plan", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" + } + ] + }, + "backupPolicies": { + "type": "integer", + "description": "How many policies does plan support", + "format": "int32", + "example": 1, + "nullable": true + }, + "deploymentSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 30 + }, + "buildSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 2000 + }, + "databasesAllowEncrypt": { + "type": "boolean", + "description": "Does the plan support encrypted string attributes or not.", + "example": false + }, + "limits": { + "type": "object", + "description": "Plan specific limits", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanLimits" + } + ], + "nullable": true + }, + "group": { + "description": "Group of this billing plan for variants", + "example": "pro", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "free" + ], + "title": "free" + }, + { + "type": "string", + "enum": [ + "start" + ], + "title": "start" + }, + { + "type": "string", + "enum": [ + "pro" + ], + "title": "pro" + }, + { + "type": "string", + "enum": [ + "scale" + ], + "title": "scale" + } + ] + }, + "program": { + "type": "object", + "description": "Details of the program this plan is a part of.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/program" + } + ], + "nullable": true + }, + "databaseComputeCredit": { + "type": "number", + "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", + "format": "double", + "example": 10 + }, + "dedicatedDatabases": { + "type": "object", + "description": "Dedicated database limits available to this plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" + } + ], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "desc", + "order", + "price", + "trial", + "bandwidth", + "storage", + "imageTransformations", + "screenshotsGenerated", + "webhooks", + "wafRules", + "projects", + "platforms", + "users", + "teams", + "databases", + "databasesReads", + "databasesWrites", + "databasesBatchSize", + "buckets", + "fileSize", + "functions", + "sites", + "executions", + "executionsRetentionCount", + "GBHours", + "realtime", + "realtimeMessages", + "messages", + "topics", + "authPhone", + "domains", + "usageLogs", + "projectInactivityDays", + "alertLimit", + "addons", + "budgetCapEnabled", + "customSmtp", + "emailBranding", + "requiresPaymentMethod", + "requiresBillingAddress", + "isAvailable", + "selfService", + "premiumSupport", + "budgeting", + "supportsMockNumbers", + "supportsOrganizationRoles", + "supportsCredits", + "supportsDedicatedDatabases", + "supportsDisposableEmailValidation", + "supportsCanonicalEmailValidation", + "supportsFreeEmailValidation", + "supportsCorporateEmailValidation", + "supportsProjectSpecificRoles", + "usagePerProject", + "supportedAddons", + "deploymentSize", + "buildSize", + "databasesAllowEncrypt", + "group", + "databaseComputeCredit" + ], + "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, + "wafRules": 2, + "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, + "activityLogs": 7, + "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], + "usageAggregateOnlyMetrics": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "projectInactivityDays": 7, + "alertLimit": 80, + "usage": null, + "addons": null, + "budgetCapEnabled": true, + "customSmtp": true, + "emailBranding": true, + "requiresPaymentMethod": true, + "requiresBillingAddress": true, + "eligibleCountries": [ + "IN", + "NP" + ], + "isAvailable": true, + "selfService": true, + "premiumSupport": true, + "budgeting": true, + "supportsMockNumbers": true, + "supportsOrganizationRoles": true, + "supportsCredits": true, + "supportsDedicatedDatabases": true, + "supportsDisposableEmailValidation": true, + "supportsCanonicalEmailValidation": true, + "supportsFreeEmailValidation": true, + "supportsCorporateEmailValidation": true, + "supportsProjectSpecificRoles": true, + "backupsEnabled": true, + "usagePerProject": true, + "supportedAddons": null, + "backupPolicies": 1, + "deploymentSize": 30, + "buildSize": 2000, + "databasesAllowEncrypt": false, + "limits": null, + "group": "pro", + "program": null, + "databaseComputeCredit": 10, + "dedicatedDatabases": null + } + }, + "billingPlanAddon": { + "description": "Addon", + "type": "object", + "properties": { + "seats": { + "type": "object", + "description": "Addon seats", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + }, + "projects": { + "type": "object", + "description": "Addon projects", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + } + }, + "example": { + "seats": null, + "projects": null + } + }, + "billingPlanAddonDetails": { + "description": "Details", + "type": "object", + "properties": { + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "example": true + }, + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "format": "int32", + "example": 1 + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "format": "int32", + "example": 5 + }, + "type": { + "type": "string", + "description": "Addon type", + "example": "numeric" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD", + "nullable": true + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "supported", + "planIncluded", + "limit", + "type", + "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", + "format": "int32", + "example": 100, + "nullable": true + }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "format": "int32", + "example": 5, + "nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanDedicatedDatabaseLimits": { + "description": "dedicatedDatabaseLimits", + "type": "object", + "properties": { + "minCpu": { + "type": "integer", + "description": "Minimum CPU allocation in millicores.", + "format": "int32", + "example": 125, + "nullable": true + }, + "maxCpu": { + "type": "integer", + "description": "Maximum CPU allocation in millicores.", + "format": "int32", + "example": 32000, + "nullable": true + }, + "minMemoryMb": { + "type": "integer", + "description": "Minimum memory allocation in megabytes.", + "format": "int32", + "example": 128, + "nullable": true + }, + "maxMemoryMb": { + "type": "integer", + "description": "Maximum memory allocation in megabytes.", + "format": "int32", + "example": 262144, + "nullable": true + }, + "minStorageGb": { + "type": "integer", + "description": "Minimum storage allocation in gigabytes.", + "format": "int32", + "example": 1, + "nullable": true + }, + "maxStorageGb": { + "type": "integer", + "description": "Maximum storage allocation in gigabytes.", + "format": "int32", + "example": 16384, + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "description": "Maximum number of high-availability replicas per dedicated database.", + "format": "int32", + "example": 5, + "nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of client connections.", + "format": "int32", + "example": 10000, + "nullable": true + }, + "maxIpAllowlistSize": { + "type": "integer", + "description": "Maximum number of entries allowed in the IP allowlist.", + "format": "int32", + "example": 100, + "nullable": true + }, + "maxExtensions": { + "type": "integer", + "description": "Maximum number of database extensions that can be enabled.", + "format": "int32", + "example": 50, + "nullable": true + }, + "maxBackupRetentionDays": { + "type": "integer", + "description": "Maximum number of days a backup can be retained.", + "format": "int32", + "example": 365, + "nullable": true + }, + "maxPitrRetentionDays": { + "type": "integer", + "description": "Maximum number of days of point-in-time recovery data that can be retained.", + "format": "int32", + "example": 35, + "nullable": true + }, + "maxSqlApiMaxRows": { + "type": "integer", + "description": "Maximum number of rows a single SQL API query can return.", + "format": "int32", + "example": 1000000, + "nullable": true + }, + "maxSqlApiMaxBytes": { + "type": "integer", + "description": "Maximum response size in bytes for a single SQL API query.", + "format": "int32", + "example": 104857600, + "nullable": true + }, + "maxSqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum execution time in seconds for a single SQL API query.", + "format": "int32", + "example": 300, + "nullable": true + }, + "maxSqlApiAllowedStatements": { + "type": "integer", + "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", + "format": "int32", + "example": 10, + "nullable": true + }, + "allowedSqlStatements": { + "type": "array", + "description": "SQL statement types permitted through the SQL API.", + "items": { + "type": "string" + }, + "example": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "nullable": true + }, + "allowedStorageClasses": { + "type": "array", + "description": "Storage classes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "ssd" + ], + "nullable": true + }, + "allowedSyncModes": { + "type": "array", + "description": "Replica synchronization modes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "async", + "sync", + "quorum" + ], + "nullable": true + } + }, + "example": { + "minCpu": 125, + "maxCpu": 32000, + "minMemoryMb": 128, + "maxMemoryMb": 262144, + "minStorageGb": 1, + "maxStorageGb": 16384, + "maxReplicas": 5, + "maxConnections": 10000, + "maxIpAllowlistSize": 100, + "maxExtensions": 50, + "maxBackupRetentionDays": 365, + "maxPitrRetentionDays": 35, + "maxSqlApiMaxRows": 1000000, + "maxSqlApiMaxBytes": 104857600, + "maxSqlApiTimeoutSeconds": 300, + "maxSqlApiAllowedStatements": 10, + "allowedSqlStatements": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "allowedStorageClasses": [ + "ssd" + ], + "allowedSyncModes": [ + "async", + "sync", + "quorum" + ] + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "example": true + }, + "premiumGeoDB": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (project-level)", + "example": true + }, + "premiumGeoDBOrg": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (organization-level)", + "example": true + } + }, + "required": [ + "baa", + "premiumGeoDB", + "premiumGeoDBOrg" + ], + "example": { + "baa": true, + "premiumGeoDB": true, + "premiumGeoDBOrg": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "example": "a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "example": "db-myproject-mydb-branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "format": "int32", + "example": 1711411200 + }, + "host": { + "type": "string", + "description": "Branch hostname for direct connections.", + "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" + }, + "port": { + "type": "integer", + "description": "Branch port. Null until the backing reports one.", + "format": "int32", + "example": 5432 + }, + "database": { + "type": "string", + "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", + "example": "db-myproject-mydb-a1b2c3d4" + }, + "username": { + "type": "string", + "description": "Database username. Shared with the parent database.", + "example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password. Shared with the parent database.", + "example": "********" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "example": false + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgresql, mysql, mongodb.", + "example": "postgresql" + }, + "connectionString": { + "type": "string", + "description": "Full connection string for the branch.", + "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt", + "host", + "port", + "database", + "username", + "password", + "ssl", + "engine", + "connectionString" + ], + "example": { + "branchId": "a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "db-myproject-mydb-branch-a1b2c3d4", + "expiresAt": 1711411200, + "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", + "port": 5432, + "database": "db-myproject-mydb-a1b2c3d4", + "username": "appwrite", + "password": "********", + "ssl": false, + "engine": "postgresql", + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches.", + "format": "int32", + "example": 2 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 2, + "branches": [] + } + }, + "campaign": { + "description": "Campaign", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Campaign ID", + "example": "" + }, + "template": { + "type": "string", + "description": "Campaign template", + "example": "" + }, + "title": { + "type": "string", + "description": "Campaign title", + "example": "" + }, + "description": { + "type": "string", + "description": "Campaign description", + "example": "" + }, + "plan": { + "type": "string", + "description": "Billing plan campaign is associated with", + "example": "", + "nullable": true + }, + "cta": { + "type": "string", + "description": "Campaign CTA", + "example": "", + "nullable": true + }, + "claimed": { + "type": "string", + "description": "Campaign info when claimed", + "example": "", + "nullable": true + }, + "unclaimed": { + "type": "string", + "description": "Campaign infor when unclaimed", + "example": "", + "nullable": true + }, + "image": { + "type": "object", + "additionalProperties": true, + "description": "Campaign images" + }, + "reviews": { + "type": "array", + "description": "Campaign reviews", + "items": { + "$ref": "#\/components\/schemas\/review" + }, + "example": [], + "nullable": true + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "Campaign valid only for new orgs.", + "nullable": true + }, + "footer": { + "type": "boolean", + "description": "Is footer", + "nullable": true + } + }, + "required": [ + "$id", + "template", + "title", + "description" + ], + "example": { + "$id": "", + "template": "", + "title": "", + "description": "", + "plan": "", + "cta": "", + "claimed": "", + "unclaimed": "", + "image": "", + "reviews": "", + "onlyNewOrgs": "", + "footer": "" + } + }, + "coupon": { + "description": "Coupon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "code": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "credits": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "expiration": { + "type": "string", + "description": "Coupon expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "validity": { + "type": "integer", + "description": "Credit validity in days.", + "format": "int32", + "example": 180 + }, + "campaign": { + "type": "string", + "description": "Campaign the coupon is associated with`.", + "example": "AppwriteHeroes" + }, + "status": { + "type": "string", + "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", + "example": "disabled" + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "If the coupon is only valid for new organizations or not.", + "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 + } + }, + "credit": { + "description": "Credit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Credit ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Credit creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Credit update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "couponId": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "userId": { + "type": "string", + "description": "ID of the User.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the Team.", + "example": "5e5ea5c16897e" + }, + "credits": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "total": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "expiration": { + "type": "string", + "description": "Credit expiration time in ISO 8601 format.", + "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`.", + "example": "disabled" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "couponId", + "userId", + "teamId", + "credits", + "total", + "expiration", + "status" + ], + "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" + } + }, + "creditAvailable": { + "description": "CreditAvailable", + "type": "object", + "properties": { + "available": { + "type": "integer", + "description": "Total available credits for the organization.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "available" + ], + "example": { + "available": 100 + } + }, + "creditList": { + "description": "CreditList", + "type": "object", + "properties": { + "credits": { + "type": "array", + "description": "Credits", + "items": { + "$ref": "#\/components\/schemas\/credit" + }, + "example": [ + 5 + ] + }, + "total": { + "type": "integer", + "description": "Total number of credits", + "format": "int32", + "example": 5 + }, + "available": { + "type": "number", + "description": "Total available credit balance in USD", + "format": "double", + "example": 5 + } + }, + "required": [ + "credits", + "total", + "available" + ], + "example": { + "credits": 5, + "total": 5, + "available": 5 + } + }, + "databaseMigration": { + "description": "Database Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Migration update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns the migrating database.", + "example": "5e5ea5c16897e" + }, + "databaseId": { + "type": "string", + "description": "Logical database ID being migrated.", + "example": "5e5ea5c16897e" + }, + "specification": { + "type": "string", + "description": "Dedicated compute specification provisioned for the migration target.", + "example": "s-2vcpu-4gb" + }, + "phase": { + "type": "string", + "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", + "example": "pending" + }, + "attempt": { + "type": "integer", + "description": "Number of times a migration step has failed and been recorded.", + "format": "int32", + "example": 0 + }, + "lastError": { + "type": "string", + "description": "Reason the most recent migration step failed, empty while none has.", + "example": "" + }, + "lagDocuments": { + "type": "integer", + "description": "Number of documents still pending replication to the target.", + "format": "int32", + "example": 0 + }, + "changelogWatermark": { + "type": "integer", + "description": "Highest source changelog sequence applied to the target so far.", + "format": "int32", + "example": 0 + }, + "verifiedAt": { + "type": "string", + "description": "Time the migrated data was verified against the source in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "cutoverAt": { + "type": "string", + "description": "Time routing was flipped to the target in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "soakUntil": { + "type": "string", + "description": "Time the post-cutover soak window ends in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoCutover": { + "type": "boolean", + "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", + "example": true + }, + "cutoverRequested": { + "type": "boolean", + "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", + "example": false + }, + "paused": { + "type": "boolean", + "description": "Whether the migration is paused.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "databaseId", + "specification", + "phase", + "attempt", + "lastError", + "lagDocuments", + "changelogWatermark", + "verifiedAt", + "cutoverAt", + "soakUntil", + "autoCutover", + "cutoverRequested", + "paused" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "databaseId": "5e5ea5c16897e", + "specification": "s-2vcpu-4gb", + "phase": "pending", + "attempt": 0, + "lastError": "", + "lagDocuments": 0, + "changelogWatermark": 0, + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "cutoverAt": "2020-10-15T06:38:00.000+00:00", + "soakUntil": "2020-10-15T06:38:00.000+00:00", + "autoCutover": true, + "cutoverRequested": false, + "paused": false + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "example": "My Production Database" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "example": "postgresql" + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "example": "s-2vcpu-2gb" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: edge.", + "example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "example": "db-myproject-mydb.fra.appwrite.center" + }, + "connectionPort": { + "type": "integer", + "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", + "format": "int32", + "example": 5432 + }, + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "credentialGeneration": { + "type": "integer", + "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", + "format": "int32", + "example": 1 + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL\/TLS is required for client connections.", + "example": true + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", + "example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "idleUntil": { + "type": "string", + "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", + "example": "active" + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "format": "int32", + "example": 15 + }, + "cpu": { + "type": "integer", + "description": "CPU allocated in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Memory allocated in MB.", + "format": "int32", + "example": 4096 + }, + "storage": { + "type": "integer", + "description": "Storage allocated in GB.", + "format": "int32", + "example": 100 + }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", + "example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage allowed in GB. 0 means use system default.", + "format": "int32", + "example": 100 + }, + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "example": "db-pool-4vcpu-8gb" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas. High availability is enabled when greater than 0.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "example": "async" + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", + "format": "int32", + "example": 500 + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "format": "int32", + "example": 900 + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "example": true + }, + "pitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "example": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "format": "int32", + "example": 14 + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "format": "int32", + "example": 85 + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "format": "int32", + "example": 30 + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "format": "int32", + "example": 3 + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "example": false + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "items": { + "type": "string" + }, + "example": [ + "SELECT" + ] + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "format": "int32", + "example": 10000 + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "format": "int32", + "example": 10485760 + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "format": "int32", + "example": 30 + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "api", + "engine", + "version", + "specification", + "backend", + "hostname", + "connectionPort", + "connectionUser", + "connectionPassword", + "credentialGeneration", + "connectionString", + "ssl", + "status", + "containerStatus", + "lifecycleState", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageStatus", + "storageTargetGb", + "storageClass", + "storageMaxGb", + "nodePool", + "replicas", + "syncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "pitr", + "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", + "api": "postgresql", + "engine": "postgresql", + "version": "16", + "specification": "s-2vcpu-2gb", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.center", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "credentialGeneration": 1, + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", + "ssl": true, + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "lifecycleState": "active", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "replicas": 2, + "syncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "pitr": true, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 30, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": false, + "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": { + "type": "object" + }, + "example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "format": "int32", + "example": 1 + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "format": "int32", + "example": 12 + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "format": "int32", + "example": 1024 + } + }, + "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.", + "example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored into.", + "example": "5e5ea5c16897e" + }, + "sourceDatabaseId": { + "type": "string", + "description": "Source database ID when restoring a backup into another database.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "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).", + "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).", + "example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "sourceDatabaseId", + "projectId", + "backupId", + "type", + "status", + "targetTime", + "startedAt", + "completedAt", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "sourceDatabaseId": "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": "" + } + }, + "databaseStatus": { + "description": "Status", + "type": "object", + "properties": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", + "example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "format": "int32", + "example": 86400 + }, + "connections": { + "type": "object", + "description": "Connection statistics. Null when the database has not been probed.", + "example": { + "current": 12, + "max": 100 + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/databaseStatusConnections" + } + ], + "nullable": true + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "replicas": { + "type": "array", + "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "example": [ + { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + ] + } + }, + "required": [ + "health", + "ready", + "engine", + "version", + "uptime", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "replicas", + "volumes" + ], + "example": { + "health": "healthy", + "ready": true, + "engine": "postgresql", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "dnsRecord": { + "description": "DNSRecord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "DNS Record ID.", + "example": "5f40a6e10c65e" + }, + "$createdAt": { + "type": "string", + "description": "DNS Record creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "DNS Record update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "DNS record type (e.g. A, CNAME, MX).", + "example": "A" + }, + "name": { + "type": "string", + "description": "Record name or subdomain.", + "example": "mail" + }, + "value": { + "type": "string", + "description": "Value of the record (IP address, domain, etc.).", + "example": "192.0.2.1" + }, + "ttl": { + "type": "integer", + "description": "Time to live (in seconds).", + "format": "int32", + "example": 86400 + }, + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "format": "int32", + "example": 10 + }, + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "example": false + }, + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "format": "int32", + "example": 10 + }, + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "format": "int32", + "example": 443 + }, + "comment": { + "type": "string", + "description": "Comment for the DNS record.", + "example": "Mail server record" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "name", + "value", + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" + ], + "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" + } + }, + "domain": { + "description": "Domain", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Domain ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Domain creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Domain update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "registrar": { + "type": "string", + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "example": "appwrite" + }, + "nameservers": { + "type": "string", + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "example": "Appwrite" + }, + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { + "type": "boolean", + "description": "If set to true, the domain will automatically renew.", + "example": true + }, + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "format": "int32", + "example": 2599 + }, + "transferStatus": { + "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ], + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "teamId", + "dnsRecords" + ], + "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": [] + } + }, + "domainPrice": { + "description": "DomainPrice", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "tld": { + "type": "string", + "description": "Top-level domain for the requested domain.", + "example": "com" + }, + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "example": true + }, + "price": { + "type": "number", + "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "periodYears": { + "type": "integer", + "description": "Price period in years.", + "format": "int32", + "example": 1 + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "example": false + }, + "renewalPrice": { + "type": "number", + "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", + "format": "double", + "example": 27.99, + "nullable": true + }, + "renewalPeriodYears": { + "type": "integer", + "description": "Renewal price period in years.", + "format": "int32", + "example": 1 + } + }, + "required": [ + "domain", + "tld", + "available", + "periodYears", + "premium", + "renewalPeriodYears" + ], + "example": { + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false, + "renewalPrice": 27.99, + "renewalPeriodYears": 1 + } + }, + "domainPurchase": { + "description": "DomainPurchase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Purchase\/invoice ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Purchase creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Purchase update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domainId": { + "type": "string", + "description": "Domain document ID.", + "example": "5e5ea5c16897e" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "organizationId": { + "type": "string", + "description": "Team ID that owns the domain.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "Domain purchase status.", + "example": "pending", + "title": "DomainPurchaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "pending" + ], + "title": "pending" + }, + { + "type": "string", + "enum": [ + "succeeded" + ], + "title": "succeeded" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + } + ] + }, + "clientSecret": { + "type": "string", + "description": "Stripe client secret for 3DS; empty when not applicable.", + "example": "" + }, + "amount": { + "type": "number", + "description": "Purchase amount.", + "format": "double", + "example": 25.99 + }, + "currency": { + "type": "string", + "description": "Currency code.", + "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.", + "example": "example.com" + }, + "premium": { + "type": "boolean", + "description": "Is the domain premium?", + "example": true + }, + "price": { + "type": "number", + "description": "Domain price.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "available": { + "type": "boolean", + "description": "Is the domain available?", + "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": "Domain transfer authorization code.", + "example": "mock_1a2b3c4d" + } + }, + "required": [ + "authCode" + ], + "example": { + "authCode": "mock_1a2b3c4d" + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "description": "Transfer status.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, + "downgradeFeedback": { + "description": "Downgrade Feedback", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Feedback ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Feedback creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Feedback update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "title": { + "type": "string", + "description": "Feedback reason", + "example": "I encountered a bug and outage that caused my app to lose its value" + }, + "message": { + "type": "string", + "description": "Feedback message", + "example": "The platform experienced significant downtime which affected my users." + }, + "fromPlanId": { + "type": "string", + "description": "Plan ID downgrading from", + "example": "pro" + }, + "toPlanId": { + "type": "string", + "description": "Plan ID downgrading to", + "example": "free" + }, + "teamId": { + "type": "string", + "description": "Organization ID", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "User ID who submitted feedback", + "example": "5e5ea5c16897e" + }, + "version": { + "type": "string", + "description": "Console version", + "example": "1.8.0" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "title", + "message", + "fromPlanId", + "toPlanId", + "teamId", + "userId", + "version" + ], + "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" + } + }, + "estimation": { + "description": "Estimation", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "format": "double", + "example": 50 + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + }, + "discount": { + "type": "number", + "description": "Discount amount", + "format": "double", + "example": 50 + }, + "credits": { + "type": "number", + "description": "Credits amount", + "format": "double", + "example": 50 + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "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" + } + }, + "estimationDeleteOrganization": { + "description": "DeleteOrganization", + "type": "object", + "properties": { + "unpaidInvoices": { + "type": "array", + "description": "List of unpaid invoices", + "items": { + "$ref": "#\/components\/schemas\/invoice" + }, + "example": [] + } + }, + "required": [ + "unpaidInvoices" + ], + "example": { + "unpaidInvoices": [] + } + }, + "estimation_item": { + "description": "Item", + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Label", + "example": "Plan name" + }, + "value": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + } + }, + "required": [ + "label", + "value" + ], + "example": { + "label": "Plan name", + "value": 50 + } + }, + "estimationPlanChange": { + "description": "EstimationPlanChange", + "type": "object", + "properties": { + "currentBillingPlanId": { + "type": "string", + "description": "Current billing plan ID", + "example": "tier-2" + }, + "targetBillingPlanId": { + "type": "string", + "description": "Target billing plan ID", + "example": "tier-0" + }, + "direction": { + "type": "string", + "description": "Direction of plan change: upgrade, downgrade, or same", + "example": "downgrade" + }, + "estimation": { + "type": "object", + "description": "Cost estimation details", + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeEstimationDetails" + } + ] + }, + "limits": { + "type": "object", + "description": "Plan limits and compliance information", + "allOf": [ + { + "$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", + "format": "double", + "example": 50 + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + }, + "discount": { + "type": "number", + "description": "Discount amount", + "format": "double", + "example": 50 + }, + "credits": { + "type": "number", + "description": "Credits amount", + "format": "double", + "example": 50 + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits", + "format": "double", + "example": 0 + } + }, + "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 + } + }, + "growthConversation": { + "description": "Growth Conversation", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Conversation type.", + "example": "support" + }, + "email": { + "type": "string", + "description": "Email address the conversation was filed under. For a signed in console user this is the account email.", + "example": "john@appwrite.io" + }, + "organizationId": { + "type": "string", + "description": "Organization ID the conversation was filed against. Empty when none was given or the user is not a member.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "type", + "email", + "organizationId" + ], + "example": { + "type": "support", + "email": "john@appwrite.io", + "organizationId": "5e5ea5c16897e" + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "example": [ + "postgis", + "pg_trgm" + ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "installed", + "available", + "metadata" + ], + "example": { + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ], + "metadata": [] + } + }, + "dedicatedDatabaseMember": { + "description": "Member", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Member identifier.", + "example": "1" + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", + "example": "replica" + }, + "status": { + "type": "string", + "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", + "example": "active" + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.5, + "nullable": true + } + }, + "required": [ + "$id", + "role", + "status" + ], + "example": { + "$id": "1", + "role": "replica", + "status": "active", + "replicating": true, + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseOperation": { + "description": "Operation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Operation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Operation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID the operation ran against.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", + "example": "update" + }, + "status": { + "type": "string", + "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", + "example": "completed" + }, + "attempts": { + "type": "integer", + "description": "Number of times this operation has been attempted.", + "format": "int32", + "example": 1 + }, + "requestedAt": { + "type": "string", + "description": "Time the operation was requested, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Time the operation started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Time the operation reached a terminal state, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "errorCode": { + "type": "string", + "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", + "example": "Interrupted" + }, + "errorMessage": { + "type": "string", + "description": "Failure message if the operation failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "type", + "status", + "attempts", + "errorCode", + "errorMessage" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "type": "update", + "status": "completed", + "attempts": 1, + "requestedAt": "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", + "errorCode": "Interrupted", + "errorMessage": "" + } + }, + "dedicatedDatabaseOperationList": { + "description": "OperationList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of operations.", + "format": "int32", + "example": 5 + }, + "operations": { + "type": "array", + "description": "List of operations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + }, + "example": [] + } + }, + "required": [ + "total", + "operations" + ], + "example": { + "total": 5, + "operations": "" + } + }, + "dedicatedDatabaseReplicas": { + "description": "Replicas", + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "description": "Number of configured replicas. Zero means high availability is disabled.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "members": { + "type": "array", + "description": "Per-pod statuses for the primary and every replica.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" + }, + "example": [] + } + }, + "required": [ + "replicas", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "members" + ], + "example": { + "replicas": 2, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "members": [] + } + }, + "proxyInvalidation": { + "description": "Invalidation", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", + "example": "tag" + }, + "reference": { + "type": "string", + "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", + "example": "products" + }, + "status": { + "type": "string", + "description": "Invalidation status.", + "example": "success" + } + }, + "required": [ + "domain", + "type", + "reference", + "status" + ], + "example": { + "domain": "appwrite.company.com", + "type": "tag", + "reference": "products", + "status": "success" + } + }, + "invoice": { + "description": "Invoice", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Invoice ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Invoice creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Invoice update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Invoice permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "teamId": { + "type": "string", + "description": "Project ID", + "example": "5e5ea5c16897e" + }, + "aggregationId": { + "type": "string", + "description": "Aggregation ID", + "example": "5e5ea5c16897e" + }, + "plan": { + "type": "string", + "description": "Billing plan selected. Can be one of `tier-0`, `tier-1` or `tier-2`.", + "example": "tier-1" + }, + "usage": { + "type": "array", + "description": "Usage breakdown per resource", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + }, + "amount": { + "type": "number", + "description": "Invoice Amount", + "format": "double", + "example": 50 + }, + "tax": { + "type": "number", + "description": "Tax percentage", + "format": "double", + "example": 17 + }, + "taxAmount": { + "type": "number", + "description": "Tax amount", + "format": "double", + "example": 12.5 + }, + "vat": { + "type": "number", + "description": "VAT percentage", + "format": "double", + "example": 17 + }, + "vatAmount": { + "type": "number", + "description": "VAT amount", + "format": "double", + "example": 12.5 + }, + "grossAmount": { + "type": "number", + "description": "Gross amount after vat, tax, and discounts applied.", + "format": "double", + "example": 12.5 + }, + "creditsUsed": { + "type": "number", + "description": "Credits used.", + "format": "double", + "example": 30 + }, + "currency": { + "type": "string", + "description": "Currency the invoice is in", + "example": "USD" + }, + "clientSecret": { + "type": "string", + "description": "Client secret for processing failed payments in front-end", + "example": "pi_daslfasdfkla_asdkfl" + }, + "status": { + "type": "string", + "description": "Invoice status", + "example": "succeeded" + }, + "type": { + "type": "string", + "description": "Invoice type. Can be one of `subscription`, `domain_purchase`, `domain_renewal`, `domain_transfer`, or `addon_*`.", + "example": "subscription" + }, + "lastError": { + "type": "string", + "description": "Last payment error associated with the invoice", + "example": "Your card has insufficient balance." + }, + "dueAt": { + "type": "string", + "description": "Invoice due date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "from": { + "type": "string", + "description": "Beginning date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "to": { + "type": "string", + "description": "End date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "teamId", + "aggregationId", + "plan", + "usage", + "amount", + "tax", + "taxAmount", + "vat", + "vatAmount", + "grossAmount", + "creditsUsed", + "currency", + "clientSecret", + "status", + "type", + "lastError", + "dueAt", + "from", + "to" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "teamId": "5e5ea5c16897e", + "aggregationId": "5e5ea5c16897e", + "plan": "tier-1", + "usage": [], + "amount": 50, + "tax": 17, + "taxAmount": 12.5, + "vat": 17, + "vatAmount": 12.5, + "grossAmount": 12.5, + "creditsUsed": 30, + "currency": "USD", + "clientSecret": "pi_daslfasdfkla_asdkfl", + "status": "succeeded", + "type": "subscription", + "lastError": "Your card has insufficient balance.", + "dueAt": "2020-10-15T06:38:00.000+00:00", + "from": "2020-10-15T06:38:00.000+00:00", + "to": "2020-10-15T06:38:00.000+00:00" + } + }, + "managerBlock": { + "description": "ManagerBlock", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "reason": { + "type": "string", + "description": "Reason for the block. Can be null if no reason was provided.", + "example": "Payment overdue", + "nullable": true + }, + "projectName": { + "type": "string", + "description": "Name of the project this block applies to.", + "example": "My Project" + }, + "region": { + "type": "string", + "description": "Region of the project this block applies to.", + "example": "fra" + }, + "organizationName": { + "type": "string", + "description": "Name of the organization that owns the project.", + "example": "Acme Inc." + }, + "organizationId": { + "type": "string", + "description": "ID of the organization that owns the project.", + "example": "5e5ea5c16897e" + }, + "billingPlan": { + "type": "string", + "description": "Billing plan of the organization that owns the project.", + "example": "pro" + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode", + "projectName", + "region", + "organizationName", + "organizationId", + "billingPlan" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00", + "reason": "Payment overdue", + "projectName": "My Project", + "region": "fra", + "organizationName": "Acme Inc.", + "organizationId": "5e5ea5c16897e", + "billingPlan": "pro" + } + }, + "managerBlockDelete": { + "description": "ManagerBlockDelete", + "type": "object", + "properties": { + "deleted": { + "type": "integer", + "description": "Number of blocks deleted", + "format": "int32", + "example": 1 + }, + "blocks": { + "type": "array", + "description": "List of deleted blocks", + "items": { + "$ref": "#\/components\/schemas\/managerBlock" + }, + "example": [] + } + }, + "required": [ + "deleted", + "blocks" + ], + "example": { + "deleted": 1, + "blocks": [] + } + }, + "organization": { + "description": "Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "billingBudget": { + "type": "integer", + "description": "Project budget limit. Null when no budget is set.", + "format": "int32", + "example": 50, + "nullable": true + }, + "budgetAlerts": { + "type": "array", + "description": "Project budget limit", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [ + 50, + 75 + ] + }, + "billingPlan": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanId": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanDetails": { + "type": "object", + "description": "Organization's billing plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlan" + } + ] + }, + "billingEmail": { + "type": "string", + "description": "Billing email set for the organization.", + "example": "billing@org.example" + }, + "billingStartDate": { + "type": "string", + "description": "Billing cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingCurrentInvoiceDate": { + "type": "string", + "description": "Current invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingNextInvoiceDate": { + "type": "string", + "description": "Next invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingTrialStartDate": { + "type": "string", + "description": "Start date of trial.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialDays": { + "type": "integer", + "description": "Number of trial days.", + "format": "int32", + "example": 14 + }, + "billingAggregationId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd" + }, + "billingInvoiceId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd" + }, + "paymentMethodId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd" + }, + "billingAddressId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "backupPaymentMethodId": { + "type": "string", + "description": "Backup payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "status": { + "type": "string", + "description": "Team status.", + "example": "active" + }, + "remarks": { + "type": "string", + "description": "Remarks on team status.", + "example": "Pending initial payment", + "nullable": true + }, + "agreementBAA": { + "type": "string", + "description": "Organization agreements", + "example": "", + "nullable": true + }, + "programManagerName": { + "type": "string", + "description": "Program manager's name.", + "example": "", + "nullable": true + }, + "programManagerCalendar": { + "type": "string", + "description": "Program manager's calendar link.", + "example": "", + "nullable": true + }, + "programDiscordChannelName": { + "type": "string", + "description": "Program's discord channel name.", + "example": "", + "nullable": true + }, + "programDiscordChannelUrl": { + "type": "string", + "description": "Program's discord channel URL.", + "example": "", + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "billingPlanDowngrade": { + "type": "string", + "description": "Billing plan selected for downgrade.", + "example": "tier-1", + "nullable": true + }, + "billingTaxId": { + "type": "string", + "description": "Tax Id", + "example": "", + "nullable": true + }, + "markedForDeletion": { + "type": "boolean", + "description": "Marked for deletion" + }, + "platform": { + "type": "string", + "description": "Product with which the organization is associated (appwrite or imagine)", + "example": "imagine" + }, + "projects": { + "type": "array", + "description": "Selected projects", + "items": { + "type": "string" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs", + "budgetAlerts", + "billingPlan", + "billingPlanId", + "billingPlanDetails", + "billingEmail", + "billingStartDate", + "billingCurrentInvoiceDate", + "billingNextInvoiceDate", + "billingTrialDays", + "billingAggregationId", + "billingInvoiceId", + "paymentMethodId", + "status", + "markedForDeletion", + "platform", + "projects" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "billingBudget": 50, + "budgetAlerts": [ + 50, + 75 + ], + "billingPlan": "tier-1", + "billingPlanId": "tier-1", + "billingPlanDetails": null, + "billingEmail": "billing@org.example", + "billingStartDate": "2020-10-15T06:38:00.000+00:00", + "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialDays": 14, + "billingAggregationId": "adbc3de4rddfsd", + "billingInvoiceId": "adbc3de4rddfsd", + "paymentMethodId": "adbc3de4rddfsd", + "billingAddressId": "adbc3de4rddfsd", + "backupPaymentMethodId": "adbc3de4rddfsd", + "status": "active", + "remarks": "Pending initial payment", + "agreementBAA": "", + "programManagerName": "", + "programManagerCalendar": "", + "programDiscordChannelName": "", + "programDiscordChannelUrl": "", + "billingLimits": "", + "billingPlanDowngrade": "tier-1", + "billingTaxId": "", + "markedForDeletion": "", + "platform": "imagine", + "projects": "" + } + }, + "paymentAuthentication": { + "description": "PaymentAuthentication", + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Message for the end user to show on Console.", + "example": "" + }, + "clientSecret": { + "type": "string", + "description": "Stripe client secret to use for validation.", + "example": "" + }, + "organizationId": { + "type": "string", + "description": "Organization ID for which the payment authentication is needed.", + "example": "" + }, + "invoiceId": { + "type": "string", + "description": "Invoice ID against which the payment needs to be validated.", + "example": "" + }, + "addonId": { + "type": "string", + "description": "Addon ID to use when calling the addon validate endpoint. Empty when authentication is not for an addon.", + "example": "" + }, + "projectId": { + "type": "string", + "description": "Project ID for project-level addon payments. Empty for organization-level addons.", + "example": "" + } + }, + "required": [ + "message", + "clientSecret", + "organizationId", + "invoiceId", + "addonId", + "projectId" + ], + "example": { + "message": "", + "clientSecret": "", + "organizationId": "", + "invoiceId": "", + "addonId": "", + "projectId": "" + } + }, + "paymentMethod": { + "description": "paymentMethod", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Payment Method ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Payment method creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Payment method update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Payment method permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "providerMethodId": { + "type": "string", + "description": "Payment method ID from the payment provider", + "example": "abdk3ed3sdkfj" + }, + "clientSecret": { + "type": "string", + "description": "Client secret hash for payment setup", + "example": "seti_ddfe" + }, + "providerUserId": { + "type": "string", + "description": "User ID from the payment provider.", + "example": "abdk3ed3sdkfj" + }, + "userId": { + "type": "string", + "description": "ID of the Team.", + "example": "5e5ea5c16897e" + }, + "expiryMonth": { + "type": "integer", + "description": "Expiry month of the payment method.", + "format": "int32", + "example": 2 + }, + "expiryYear": { + "type": "integer", + "description": "Expiry year of the payment method.", + "format": "int32", + "example": 2024 + }, + "last4": { + "type": "string", + "description": "Last 4 digit of the payment method", + "example": "4242" + }, + "brand": { + "type": "string", + "description": "Payment method brand", + "example": "visa" + }, + "name": { + "type": "string", + "description": "Name of the owner", + "example": "John Doe" + }, + "mandateId": { + "type": "string", + "description": "Mandate ID of the payment method", + "example": "yxc" + }, + "country": { + "type": "string", + "description": "Country of the payment method", + "example": "de" + }, + "state": { + "type": "string", + "description": "State of the payment method", + "example": "" + }, + "lastError": { + "type": "string", + "description": "Last payment error associated with the payment method.", + "example": "Your card has insufficient funds." + }, + "default": { + "type": "boolean", + "description": "True when it's the default payment method.", + "example": false + }, + "expired": { + "type": "boolean", + "description": "True when payment method has expired.", + "example": false + }, + "failed": { + "type": "boolean", + "description": "True when payment method has failed to process multiple times.", + "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 + } + }, + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", + "type": "object", + "properties": { + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "earliest", + "latest" + ], + "example": { + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" + } + }, + "planChangeEstimationDetails": { + "description": "PlanChangeEstimationDetails", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Currency code", + "example": "USD" + }, + "grossAmount": { + "type": "number", + "description": "Gross amount after all discounts and credits", + "format": "double", + "example": 15 + }, + "credits": { + "type": "number", + "description": "Credits applied from coupon", + "format": "double", + "example": 0 + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits applied", + "format": "double", + "example": 5 + }, + "discount": { + "type": "number", + "description": "Discount amount from prorated invoices", + "format": "double", + "example": 0 + }, + "amount": { + "type": "number", + "description": "Total amount before discounts and credits", + "format": "double", + "example": 20 + }, + "nextInvoiceDate": { + "type": "string", + "description": "Next invoice date", + "example": "2025-12-01T00:00:00.000Z" + }, + "items": { + "type": "array", + "description": "Line items breakdown", + "items": { + "type": "object" + }, + "example": [ + { + "label": "Free plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ] + }, + "discounts": { + "type": "array", + "description": "Applied discounts breakdown", + "items": { + "type": "object" + }, + "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": "Free plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ], + "discounts": [ + { + "label": "Organization credits", + "value": 5 + } + ] + } + }, + "planChangeLimits": { + "description": "PlanChangeLimits", + "type": "object", + "properties": { + "canChangePlan": { + "type": "boolean", + "description": "Whether the plan change is allowed", + "example": false + }, + "unsupportedAddons": { + "type": "array", + "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", + "items": { + "type": "string" + }, + "example": [ + "baa" + ] + }, + "projects": { + "type": "object", + "description": "Project count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "members": { + "type": "object", + "description": "Organization member count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "domains": { + "type": "object", + "description": "Custom domain count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "nonCompliantProjects": { + "type": "integer", + "description": "Number of projects exceeding target plan limits", + "format": "int32", + "example": 2 + }, + "projectCompliance": { + "type": "array", + "description": "Per-project compliance details. Populated for downgrades only.", + "items": { + "$ref": "#\/components\/schemas\/planChangeProjectCompliance" + }, + "example": [] + } + }, + "required": [ + "canChangePlan", + "unsupportedAddons", + "projects", + "members", + "domains", + "nonCompliantProjects", + "projectCompliance" + ], + "example": { + "canChangePlan": false, + "unsupportedAddons": [ + "baa" + ], + "projects": {}, + "members": {}, + "domains": {}, + "nonCompliantProjects": 2, + "projectCompliance": [] + } + }, + "planChangeProjectCompliance": { + "description": "PlanChangeProjectCompliance", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID", + "example": "proj_a" + }, + "name": { + "type": "string", + "description": "Project name", + "example": "Marketing Site" + }, + "isCompliant": { + "type": "boolean", + "description": "Whether the project complies with target plan limits", + "example": false + }, + "resources": { + "type": "array", + "description": "Resource compliance details", + "items": { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + }, + "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.", + "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", + "example": "databases" + }, + "currentUsage": { + "type": "integer", + "description": "Current usage count", + "format": "int32", + "example": 3 + }, + "limit": { + "type": "integer", + "description": "Allowed limit in target plan", + "format": "int32", + "example": 1 + }, + "status": { + "type": "string", + "description": "Compliance status. Either `over_limit` or `within_limit`.", + "example": "over_limit" + }, + "excess": { + "type": "integer", + "description": "Number of resources exceeding the limit", + "format": "int32", + "example": 2 + }, + "resolutionHint": { + "type": "string", + "description": "Suggestion for resolving the compliance issue. Empty when the resource is within limits.", + "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.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Backup policy name.", + "example": "Hourly backups" + }, + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "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" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "example": "database", + "nullable": true + }, + "retention": { + "type": "integer", + "description": "How many days to keep the backup before it will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "example": "0 * * * *" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", + "example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "type", + "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 * * * *", + "type": "full", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "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).", + "example": "transaction" + }, + "maxConnections": { + "type": "integer", + "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", + "format": "int32", + "example": 200 + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "format": "int32", + "example": 25 + }, + "port": { + "type": "integer", + "description": "Pooler listening port.", + "format": "int32", + "example": 6432 + }, + "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.", + "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.", + "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.", + "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.", + "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.", + "example": "128Mi" + } + }, + "required": [ + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" + ], + "example": { + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" + } + }, + "postgresExtension": { + "description": "Postgres extension", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Extension key used with CREATE EXTENSION.", + "example": "vector" + }, + "name": { + "type": "string", + "description": "Human-readable extension name.", + "example": "pgvector" + }, + "description": { + "type": "string", + "description": "Short description of what the extension provides.", + "example": "Vector data type and similarity search for embeddings." + }, + "category": { + "type": "string", + "description": "Category the extension belongs to.", + "example": "search" + } + }, + "required": [ + "key", + "name", + "description", + "category" + ], + "example": { + "key": "vector", + "name": "pgvector", + "description": "Vector data type and similarity search for embeddings.", + "category": "search" + } + }, + "program": { + "description": "Program", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Program ID", + "example": "" + }, + "title": { + "type": "string", + "description": "Program title", + "example": "" + }, + "description": { + "type": "string", + "description": "Program description", + "example": "" + }, + "tag": { + "type": "string", + "description": "Program tag for highlighting on console" + }, + "icon": { + "type": "string", + "description": "Program icon for highlighting on console" + }, + "url": { + "type": "string", + "description": "URL for more information on this program", + "example": "" + }, + "active": { + "type": "boolean", + "description": "Whether this program is active", + "example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "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": "" + } + }, + "consoleRegion": { + "description": "Region", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Region ID", + "example": "eu-fr" + }, + "name": { + "type": "string", + "description": "Region name", + "example": "EU (Frankfurt)" + }, + "available": { + "type": "boolean", + "description": "Does the organization have access to this region. Null when access has not been resolved.", + "example": false, + "nullable": true + }, + "disabled": { + "type": "boolean", + "description": "Does the backend support this region.", + "example": false + }, + "default": { + "type": "boolean", + "description": "Is this the region default.", + "example": true + }, + "flag": { + "type": "string", + "description": "Region flag code.", + "example": "fr" + } + }, + "required": [ + "$id", + "name", + "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.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Restoration update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "archiveId": { + "type": "string", + "description": "Backup archive ID.", + "example": "did8jx6ws45jana098ab7" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "status": { + "type": "string", + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The restoration start time. Null until the restoration starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Restoration options as a key-value object.", + "example": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "archiveId", + "policyId", + "status", + "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": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "review": { + "description": "Review", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of user", + "example": "" + }, + "image": { + "type": "string", + "description": "Reviewer image", + "example": "" + }, + "description": { + "type": "string", + "description": "Reviewer description", + "example": "" + }, + "review": { + "type": "string", + "description": "Review", + "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" + }, + "example": [ + "users.read" + ] + }, + "roles": { + "type": "array", + "description": "Array of roles assigned to current user.", + "items": { + "type": "string" + }, + "example": [ + "developer" + ] + } + }, + "required": [ + "scopes", + "roles" + ], + "example": { + "scopes": "users.read", + "roles": "developer" + } + }, + "dedicatedDatabaseSpecification": { + "description": "Specification", + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Specification slug. Use this value when creating a dedicated database.", + "example": "s-2vcpu-2gb" + }, + "name": { + "type": "string", + "description": "Human readable specification name.", + "example": "Standard" + }, + "price": { + "type": "number", + "description": "Monthly price of the specification in USD.", + "format": "double", + "example": 20 + }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, + "cpu": { + "type": "integer", + "description": "Allocated CPU in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Allocated memory in MB.", + "format": "int32", + "example": 2048 + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of concurrent connections.", + "format": "int32", + "example": 200 + }, + "includedStorage": { + "type": "integer", + "description": "Included storage in GB before overage charges apply.", + "format": "int32", + "example": 25 + }, + "includedBandwidth": { + "type": "integer", + "description": "Included bandwidth in GB before overage charges apply.", + "format": "int32", + "example": 200 + }, + "enabled": { + "type": "boolean", + "description": "Whether the specification is available on the current plan.", + "example": true + } + }, + "required": [ + "slug", + "name", + "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", + "cpu", + "memory", + "maxConnections", + "includedStorage", + "includedBandwidth", + "enabled" + ], + "example": { + "slug": "s-2vcpu-2gb", + "name": "Standard", + "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, + "cpu": 2000, + "memory": 2048, + "maxConnections": 200, + "includedStorage": 25, + "includedBandwidth": 200, + "enabled": true + } + }, + "dedicatedDatabaseSpecificationList": { + "description": "SpecificationList", + "type": "object", + "properties": { + "specifications": { + "type": "array", + "description": "List of dedicated database specifications.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" + }, + "example": [] + }, + "total": { + "type": "integer", + "description": "Total number of specifications.", + "format": "int32", + "example": 9 + } + }, + "required": [ + "specifications", + "total" + ], + "example": { + "specifications": [], + "total": 9 + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { + "type": "integer", + "description": "Current number of active connections.", + "format": "int32", + "example": 12 + }, + "max": { + "type": "integer", + "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "current", + "max" + ], + "example": { + "current": 12, + "max": 100 + } + }, + "databaseStatusReplica": { + "description": "Replica", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", + "format": "int32", + "example": 0 + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", + "example": "primary" + }, + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "example": true + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.2, + "nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "example": "\/var\/lib\/postgresql\/data" + }, + "usedPercent": { + "type": "string", + "description": "Percentage of storage used.", + "example": "45%" + }, + "available": { + "type": "string", + "description": "Available storage space.", + "example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "example": true + } + }, + "required": [ + "path", + "usedPercent", + "available", + "mounted" + ], + "example": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + }, + "usageBillingPlan": { + "description": "usageBillingPlan", + "type": "object", + "properties": { + "bandwidth": { + "type": "object", + "description": "Bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "executions": { + "type": "object", + "description": "Executions additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "member": { + "type": "object", + "description": "Member additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtime": { + "type": "object", + "description": "Realtime additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeMessages": { + "type": "object", + "description": "Realtime messages additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeBandwidth": { + "type": "object", + "description": "Realtime bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "storage": { + "type": "object", + "description": "Storage additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "users": { + "type": "object", + "description": "User additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "GBHours": { + "type": "object", + "description": "GBHour additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "imageTransformations": { + "type": "object", + "description": "Image transformation additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "credits": { + "type": "object", + "description": "Credits additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + } + }, + "required": [ + "bandwidth", + "executions", + "realtime", + "realtimeMessages", + "storage", + "users", + "GBHours", + "imageTransformations" + ], + "example": { + "bandwidth": null, + "executions": null, + "member": null, + "realtime": null, + "realtimeMessages": null, + "realtimeBandwidth": null, + "storage": null, + "users": null, + "GBHours": null, + "imageTransformations": null, + "credits": null + } + }, + "usageOrganization": { + "description": "Organization", + "type": "object", + "properties": { + "bandwidth": { + "type": "array", + "description": "Aggregated stats for number of requests.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated stats for function executions.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "imageTransformations": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "usersTotal": { + "type": "integer", + "description": "Aggregated stats for total users.", + "format": "int32", + "example": 0 + }, + "executionsTotal": { + "type": "integer", + "description": "Aggregated stats for total executions.", + "format": "int32", + "example": 0 + }, + "executionsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "format": "int32", + "example": 0 + }, + "buildsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "format": "int32", + "example": 0 + }, + "filesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total file storage.", + "format": "int32", + "example": 0 + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total builds storage.", + "format": "int32", + "example": 0 + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total deployments storage.", + "format": "int32", + "example": 0 + }, + "databasesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total databases storage.", + "format": "int32", + "example": 0 + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "format": "int32", + "example": 0 + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "format": "int32", + "example": 0 + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "format": "int32", + "example": 0 + }, + "avatarsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total custom user photos storage.", + "format": "int32", + "example": 0 + }, + "storageTotal": { + "type": "integer", + "description": "Aggregated stats for total storage.", + "format": "int32", + "example": 0 + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for total auth phone.", + "format": "int32", + "example": 0 + }, + "authPhoneEstimate": { + "type": "integer", + "description": "Aggregated stats for total auth phone estimation.", + "format": "int32", + "example": 0 + }, + "projects": { + "type": "array", + "description": "Aggregated stats for each projects.", + "items": { + "$ref": "#\/components\/schemas\/usageOrganizationProject" + }, + "example": [] + }, + "realtimeConnections": { + "type": "array", + "description": "Aggregated stats for realtime connections.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime connections.", + "format": "int32", + "example": 0 + }, + "realtimeMessages": { + "type": "array", + "description": "Aggregated stats for realtime messages.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeMessagesTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime messages.", + "format": "int32", + "example": 0 + }, + "realtimeBandwidth": { + "type": "array", + "description": "Aggregated stats for realtime bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeBandwidthTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime bandwidth.", + "format": "int32", + "example": 0 + } + }, + "required": [ + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "usersTotal", + "executionsTotal", + "executionsMBSecondsTotal", + "buildsMBSecondsTotal", + "filesStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "databasesStorageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "backupsStorageTotal", + "avatarsStorageTotal", + "storageTotal", + "authPhoneTotal", + "authPhoneEstimate", + "projects", + "realtimeConnections", + "realtimeConnectionsTotal", + "realtimeMessages", + "realtimeMessagesTotal", + "realtimeBandwidth", + "realtimeBandwidthTotal" + ], + "example": { + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "usersTotal": 0, + "executionsTotal": 0, + "executionsMBSecondsTotal": 0, + "buildsMBSecondsTotal": 0, + "filesStorageTotal": 0, + "buildsStorageTotal": 0, + "deploymentsStorageTotal": 0, + "databasesStorageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "backupsStorageTotal": 0, + "avatarsStorageTotal": 0, + "storageTotal": 0, + "authPhoneTotal": 0, + "authPhoneEstimate": 0, + "projects": [], + "realtimeConnections": [], + "realtimeConnectionsTotal": 0, + "realtimeMessages": [], + "realtimeMessagesTotal": 0, + "realtimeBandwidth": [], + "realtimeBandwidthTotal": 0 + } + }, + "usageOrganizationProject": { + "description": "OrganizationProject", + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "projectId", + "example": "5e5ea5c16897e" + }, + "bandwidth": { + "type": "integer", + "description": "Aggregated stats for number of requests.", + "format": "int32", + "example": 0 + }, + "users": { + "type": "integer", + "description": "Aggregated stats for consumed bandwidth.", + "format": "int32", + "example": 0 + }, + "executions": { + "type": "integer", + "description": "Aggregated stats for function executions.", + "format": "int32", + "example": 0 + }, + "databasesReads": { + "type": "integer", + "description": "Aggregated stats for database reads.", + "format": "int32", + "example": 0 + }, + "databasesWrites": { + "type": "integer", + "description": "Aggregated stats for database writes.", + "format": "int32", + "example": 0 + }, + "executionsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "format": "int32", + "example": 0 + }, + "buildsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "format": "int32", + "example": 0 + }, + "storage": { + "type": "integer", + "description": "Aggregated stats for number of documents.", + "format": "int32", + "example": 0 + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for phone authentication.", + "format": "int32", + "example": 0 + }, + "authPhoneEstimate": { + "type": "number", + "description": "Aggregated stats for phone authentication estimated cost.", + "format": "double", + "example": 0 + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "format": "int32", + "example": 0 + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "format": "int32", + "example": 0 + }, + "imageTransformations": { + "type": "integer", + "description": "Aggregated stats for file transformations.", + "format": "int32", + "example": 0 + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Aggregated stats for file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "realtimeConnections": { + "type": "integer", + "description": "Aggregated stats for realtime connections.", + "format": "int32", + "example": 0 + }, + "realtimeMessages": { + "type": "integer", + "description": "Aggregated stats for realtime messages.", + "format": "int32", + "example": 0 + }, + "realtimeBandwidth": { + "type": "integer", + "description": "Aggregated stats for realtime bandwidth.", + "format": "int32", + "example": 0 + } + }, + "required": [ + "projectId", + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "executionsMBSeconds", + "buildsMBSeconds", + "storage", + "authPhoneTotal", + "authPhoneEstimate", + "databasesReadsTotal", + "databasesWritesTotal", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "realtimeConnections", + "realtimeMessages", + "realtimeBandwidth" + ], + "example": { + "projectId": "5e5ea5c16897e", + "bandwidth": 0, + "users": 0, + "executions": [], + "databasesReads": 0, + "databasesWrites": 0, + "executionsMBSeconds": 0, + "buildsMBSeconds": 0, + "storage": [], + "authPhoneTotal": [], + "authPhoneEstimate": [], + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "imageTransformations": 0, + "imageTransformationsTotal": 0, + "screenshotsGenerated": 0, + "screenshotsGeneratedTotal": 0, + "realtimeConnections": 0, + "realtimeMessages": 0, + "realtimeBandwidth": 0 + } + }, + "usageResources": { + "description": "Resource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Invoice name", + "example": "" + }, + "value": { + "type": "integer", + "description": "Invoice value", + "format": "int32", + "example": 0 + }, + "amount": { + "type": "number", + "description": "Invoice amount", + "format": "double", + "example": 500 + }, + "rate": { + "type": "number", + "description": "Invoice rate", + "format": "double", + "example": 12.5 + }, + "desc": { + "type": "string", + "description": "Invoice description", + "example": "Your monthly recurring Pro plan." + }, + "resourceId": { + "type": "string", + "description": "Resource ID", + "example": "" + }, + "type": { + "type": "string", + "description": "Dedicated database engine type for per-database line items (e.g. postgresql). Empty for other resources.", + "example": "postgresql" + }, + "specification": { + "type": "string", + "description": "Dedicated database specification slug for per-database line items (e.g. s-2vcpu-2gb). Empty for other resources.", + "example": "s-2vcpu-2gb" + } + }, + "required": [ + "name", + "value", + "amount", + "rate", + "desc", + "resourceId", + "type", + "specification" + ], + "example": { + "name": "", + "value": 0, + "amount": 500, + "rate": 12.5, + "desc": "Your monthly recurring Pro plan.", + "resourceId": "", + "type": "postgresql", + "specification": "s-2vcpu-2gb" + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "wafRule": { + "description": "WafRule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleBypass": { + "description": "WafRuleBypass", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleDeny": { + "description": "WafRuleDeny", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleChallenge": { + "description": "WafRuleChallenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "challengeType": { + "type": "string", + "description": "Challenge type enforced when the rule matches.", + "example": "compute" + }, + "difficulty": { + "type": "integer", + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", + "format": "int32", + "example": 3 + }, + "ttl": { + "type": "integer", + "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", + "format": "int32", + "example": 1800 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "challengeType", + "difficulty", + "ttl" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "challengeType": "compute", + "difficulty": 3, + "ttl": 1800 + } + }, + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "format": "int32", + "example": 1000 + }, + "interval": { + "type": "integer", + "description": "Interval in seconds for the rate limit window.", + "format": "int32", + "example": 60 + }, + "key": { + "type": "string", + "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", + "example": "userId" + }, + "strategy": { + "type": "string", + "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", + "example": "slidingWindow" + }, + "maxBucketSize": { + "type": "integer", + "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", + "format": "int32", + "example": 200 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", + "interval", + "key", + "strategy", + "maxBucketSize" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "limit": 1000, + "interval": 60, + "key": "userId", + "strategy": "slidingWindow", + "maxBucketSize": 200 + } + }, + "wafRuleRedirect": { + "description": "WafRuleRedirect", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "location": { + "type": "string", + "description": "Target location for the redirect.", + "example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "format": "int32", + "example": 301 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "location": "\/maintenance", + "statusCode": 301 + } + }, + "wafRuleList": { + "description": "WAF rule list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/wafRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "activityEventList": { + "description": "Activity event list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "format": "int32", + "example": 5 + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/activityEvent" + }, + "example": [] + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "addonList": { + "description": "Addons list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of addons that matched your query.", + "format": "int32", + "example": 5 + }, + "addons": { + "type": "array", + "description": "List of addons.", + "items": { + "$ref": "#\/components\/schemas\/addon" + }, + "example": [] + } + }, + "required": [ + "total", + "addons" + ], + "example": { + "total": 5, + "addons": "" + } + }, + "analyticsPropertyList": { + "description": "Analytics properties list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of properties that matched your query.", + "format": "int32", + "example": 5 + }, + "properties": { + "type": "array", + "description": "List of properties.", + "items": { + "$ref": "#\/components\/schemas\/analyticsProperty" + }, + "example": [] + } + }, + "required": [ + "total", + "properties" + ], + "example": { + "total": 5, + "properties": "" + } + }, + "aggregationTeamList": { + "description": "Aggregation team list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of aggregations that matched your query.", + "format": "int32", + "example": 5 + }, + "aggregations": { + "type": "array", + "description": "List of aggregations.", + "items": { + "$ref": "#\/components\/schemas\/aggregationTeam" + }, + "example": [] + } + }, + "required": [ + "total", + "aggregations" + ], + "example": { + "total": 5, + "aggregations": "" + } + }, + "backupArchiveList": { + "description": "Backup archive list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of archives that matched your query.", + "format": "int32", + "example": 5 + }, + "archives": { + "type": "array", + "description": "List of archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [] + } + }, + "required": [ + "total", + "archives" + ], + "example": { + "total": 5, + "archives": "" + } + }, + "backupPolicyList": { + "description": "Backup policy list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies that matched your query.", + "format": "int32", + "example": 5 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 5, + "policies": "" + } + }, + "backupRestorationList": { + "description": "Backup restoration list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/backupRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "billingAddressList": { + "description": "Billing address list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of billingAddresses that matched your query.", + "format": "int32", + "example": 5 + }, + "billingAddresses": { + "type": "array", + "description": "List of billingAddresses.", + "items": { + "$ref": "#\/components\/schemas\/billingAddress" + }, + "example": [] + } + }, + "required": [ + "total", + "billingAddresses" + ], + "example": { + "total": 5, + "billingAddresses": "" + } + }, + "invoiceList": { + "description": "Billing invoices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of invoices that matched your query.", + "format": "int32", + "example": 5 + }, + "invoices": { + "type": "array", + "description": "List of invoices.", + "items": { + "$ref": "#\/components\/schemas\/invoice" + }, + "example": [] + } + }, + "required": [ + "total", + "invoices" + ], + "example": { + "total": 5, + "invoices": "" + } + }, + "billingPlanList": { + "description": "Billing plan list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of plans that matched your query.", + "format": "int32", + "example": 5 + }, + "plans": { + "type": "array", + "description": "List of plans.", + "items": { + "$ref": "#\/components\/schemas\/billingPlan" + }, + "example": [] + } + }, + "required": [ + "total", + "plans" + ], + "example": { + "total": 5, + "plans": "" + } + }, + "managerBlockList": { + "description": "Manager blocks list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of blocks that matched your query.", + "format": "int32", + "example": 5 + }, + "blocks": { + "type": "array", + "description": "List of blocks.", + "items": { + "$ref": "#\/components\/schemas\/managerBlock" + }, + "example": [] + } + }, + "required": [ + "total", + "blocks" + ], + "example": { + "total": 5, + "blocks": "" + } + }, + "databaseMigrationList": { + "description": "Database Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/databaseMigration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "dedicatedDatabaseList": { + "description": "Dedicated databases list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "dnsRecordsList": { + "description": "DNS records list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of dnsRecords that matched your query.", + "format": "int32", + "example": 5 + }, + "dnsRecords": { + "type": "array", + "description": "List of dnsRecords.", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "total", + "dnsRecords" + ], + "example": { + "total": 5, + "dnsRecords": "" + } + }, + "domainSuggestionsList": { + "description": "Domain suggestions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of suggestions that matched your query.", + "format": "int32", + "example": 5 + }, + "suggestions": { + "type": "array", + "description": "List of suggestions.", + "items": { + "$ref": "#\/components\/schemas\/domainSuggestion" + }, + "example": [] + } + }, + "required": [ + "total", + "suggestions" + ], + "example": { + "total": 5, + "suggestions": "" + } + }, + "domainPricesList": { + "description": "Domain prices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of prices that matched your query.", + "format": "int32", + "example": 5 + }, + "prices": { + "type": "array", + "description": "List of prices.", + "items": { + "$ref": "#\/components\/schemas\/domainPrice" + }, + "example": [] + } + }, + "required": [ + "total", + "prices" + ], + "example": { + "total": 5, + "prices": "" + } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "format": "int32", + "example": 5 + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "$ref": "#\/components\/schemas\/domain" + }, + "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.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/organization" + }, + "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.", + "format": "int32", + "example": 5 + }, + "paymentMethods": { + "type": "array", + "description": "List of paymentMethods.", + "items": { + "$ref": "#\/components\/schemas\/paymentMethod" + }, + "example": [] + } + }, + "required": [ + "total", + "paymentMethods" + ], + "example": { + "total": 5, + "paymentMethods": "" + } + }, + "postgresExtensionList": { + "description": "Postgres extensions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of extensions that matched your query.", + "format": "int32", + "example": 5 + }, + "extensions": { + "type": "array", + "description": "List of extensions.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "total", + "extensions" + ], + "example": { + "total": 5, + "extensions": "" + } + }, + "consoleRegionList": { + "description": "Regions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of regions that matched your query.", + "format": "int32", + "example": 5 + }, + "regions": { + "type": "array", + "description": "List of regions.", + "items": { + "$ref": "#\/components\/schemas\/consoleRegion" + }, + "example": [] + } + }, + "required": [ + "total", + "regions" + ], + "example": { + "total": 5, + "regions": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "Key": { + "type": "apiKey", + "name": "X-Appwrite-Key", + "description": "Your secret API key", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_API_KEY>" + } + }, + "Organization": { + "type": "apiKey", + "name": "X-Appwrite-Organization", + "description": "Your organization ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_ORGANIZATION_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "en" + } + }, + "Mode": { + "type": "apiKey", + "name": "X-Appwrite-Mode", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "" + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Platform": { + "type": "apiKey", + "name": "X-Appwrite-Platform", + "description": "The platform type (Appwrite or Imagine)", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.3.x/open-api3-2.3.x-server.json b/specs/2.3.x/open-api3-2.3.x-server.json new file mode 100644 index 000000000..0baeb6bd3 --- /dev/null +++ b/specs/2.3.x/open-api3-2.3.x-server.json @@ -0,0 +1,123325 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.3.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/activities\/events": { + "get": { + "summary": "List events", + "operationId": "activitiesListEvents", + "tags": [ + "activities" + ], + "description": "List all events for selected filters.", + "responses": { + "200": { + "description": "Activity event list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "activities\/list-events.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/activities\/events\/{eventId}": { + "get": { + "summary": "Get event", + "operationId": "activitiesGetEvent", + "tags": [ + "activities" + ], + "description": "Get event by ID.\n", + "responses": { + "200": { + "description": "ActivityEvent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEvent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "activities\/get-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "eventId", + "description": "Event ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EVENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties": { + "get": { + "summary": "List analytics properties", + "operationId": "analyticsListProperties", + "tags": [ + "analytics" + ], + "description": "List analytics properties for the current project.", + "responses": { + "200": { + "description": "Analytics properties list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsPropertyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/list-properties.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.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, domain, timezone, enabled, public, snippetId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create analytics property", + "operationId": "analyticsCreateProperty", + "tags": [ + "analytics" + ], + "description": "Create a new analytics property to track a website or application.", + "responses": { + "201": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/create-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "propertyId": { + "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", + "type": "string", + "example": "<PROPERTY_ID>" + }, + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>" + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Optional for native apps.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "default": "UTC", + "example": "<TIMEZONE>" + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "default": true, + "example": false + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "default": false, + "example": false + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "default": [ + "*" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "propertyId", + "name" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}": { + "get": { + "summary": "Get analytics property", + "operationId": "analyticsGetProperty", + "tags": [ + "analytics" + ], + "description": "Get an analytics property by ID.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/get-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update analytics property", + "operationId": "analyticsUpdateProperty", + "tags": [ + "analytics" + ], + "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/update-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", + "type": "string", + "example": "<DOMAIN>", + "nullable": true + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "example": "<TIMEZONE>", + "nullable": true + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "example": false, + "nullable": true + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete analytics property", + "operationId": "analyticsDeleteProperty", + "tags": [ + "analytics" + ], + "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/delete-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID or snippet ID identifying the property.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/metrics": { + "get": { + "summary": "List analytics metrics for a property", + "operationId": "analyticsListMetrics", + "tags": [ + "analytics" + ], + "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", + "responses": { + "200": { + "description": "AnalyticsMetricList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsMetricList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "metrics", + "demo": "analytics\/list-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", + "required": false, + "schema": { + "type": "string", + "example": "1h", + "title": "AnalyticsInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + }, + { + "type": "string", + "enum": [ + "1w" + ], + "title": "One Week" + }, + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Month" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "AnalyticsDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "browser" + ], + "title": "browser" + }, + { + "type": "string", + "enum": [ + "operatingSystem" + ], + "title": "operatingSystem" + }, + { + "type": "string", + "enum": [ + "device" + ], + "title": "device" + }, + { + "type": "string", + "enum": [ + "screenSize" + ], + "title": "screenSize" + }, + { + "type": "string", + "enum": [ + "referrerSource" + ], + "title": "referrerSource" + }, + { + "type": "string", + "enum": [ + "channel" + ], + "title": "channel" + }, + { + "type": "string", + "enum": [ + "utmSource" + ], + "title": "utmSource" + }, + { + "type": "string", + "enum": [ + "utmMedium" + ], + "title": "utmMedium" + }, + { + "type": "string", + "enum": [ + "utmCampaign" + ], + "title": "utmCampaign" + }, + { + "type": "string", + "enum": [ + "utmContent" + ], + "title": "utmContent" + }, + { + "type": "string", + "enum": [ + "utmTerm" + ], + "title": "utmTerm" + }, + { + "type": "string", + "enum": [ + "page" + ], + "title": "page" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "entryPage" + ], + "title": "entryPage" + }, + { + "type": "string", + "enum": [ + "exitPage" + ], + "title": "exitPage" + }, + { + "type": "string", + "enum": [ + "trafficType" + ], + "title": "trafficType" + }, + { + "type": "string", + "enum": [ + "botName" + ], + "title": "botName" + }, + { + "type": "string", + "enum": [ + "botCategory" + ], + "title": "botCategory" + }, + { + "type": "string", + "enum": [ + "eventName" + ], + "title": "eventName" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "dateRange", + "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", + "required": false, + "schema": { + "type": "string", + "example": "<DATE_RANGE>", + "default": "30d" + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Explicit window end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of ranked values to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-labels.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/backups\/archives": { + "get": { + "summary": "List archives", + "operationId": "backupsListArchives", + "tags": [ + "backups" + ], + "description": "List all archives for a project.", + "responses": { + "200": { + "description": "Backup archive list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchiveList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-archives.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create archive", + "operationId": "backupsCreateArchive", + "tags": [ + "backups" + ], + "description": "Create a new archive asynchronously for a project.", + "responses": { + "201": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + } + }, + "required": [ + "services" + ] + } + } + } + } + } + }, + "\/backups\/archives\/{archiveId}": { + "get": { + "summary": "Get backup archive", + "operationId": "backupsGetArchive", + "tags": [ + "backups" + ], + "description": "Get a backup archive using it's ID.", + "responses": { + "200": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete archive", + "operationId": "backupsDeleteArchive", + "tags": [ + "backups" + ], + "description": "Delete an existing archive for a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "backupsListPolicies", + "tags": [ + "backups" + ], + "description": "List all policies for a project.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "backupsCreatePolicy", + "tags": [ + "backups" + ], + "description": "Create a new backup policy.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "type": "boolean", + "default": true, + "example": false + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + } + }, + "required": [ + "policyId", + "services", + "retention", + "schedule" + ] + } + } + } + } + } + }, + "\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "backupsGetPolicy", + "tags": [ + "backups" + ], + "description": "Get a backup policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "backupsUpdatePolicy", + "tags": [ + "backups" + ], + "description": "Update an existing policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/update-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "schedule": { + "description": "Cron expression", + "type": "string" + }, + "enabled": { + "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "backupsDeletePolicy", + "tags": [ + "backups" + ], + "description": "Delete a policy using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/restoration": { + "post": { + "summary": "Create restoration", + "operationId": "backupsCreateRestoration", + "tags": [ + "backups" + ], + "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", + "responses": { + "201": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "archiveId": { + "description": "Backup archive ID to restore", + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "services": { + "description": "Array of services to restore", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "newResourceId": { + "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_ID>" + }, + "newResourceName": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_NAME>" + } + }, + "required": [ + "archiveId", + "services" + ] + } + } + } + } + } + }, + "\/backups\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "backupsListRestorations", + "tags": [ + "backups" + ], + "description": "List all backup restorations for a project.", + "responses": { + "200": { + "description": "Backup restoration list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/backups\/restorations\/{restorationId}": { + "get": { + "summary": "Get backup restoration", + "operationId": "backupsGetRestoration", + "tags": [ + "backups" + ], + "description": "Get the current status of a backup restoration.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "restorationId", + "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "tags": [ + "databases" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "databasesCreate", + "tags": [ + "databases" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "tags": [ + "databases" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", + "tags": [ + "databases" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", + "tags": [ + "databases" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "tags": [ + "databases" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTables" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collections", + "operationId": "databasesCreateCollection", + "tags": [ + "databases" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "tags": [ + "databases" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", + "tags": [ + "databases" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "tags": [ + "databases" + ], + "description": "List attributes in the collection.", + "responses": { + "200": { + "description": "Attributes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/list-attributes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "post": { + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { + "patch": { + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Create a boolean attribute.\n", + "responses": { + "202": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Create a date time attribute according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createDatetimeColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateDatetimeColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Create an email attribute.\n", + "responses": { + "202": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEmailColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEmailColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "responses": { + "202": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEnumColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEnumColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createFloatColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateFloatColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIntegerColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", + "tags": [ + "databases" + ], + "description": "Create IP address attribute.\n", + "responses": { + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIpColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", + "tags": [ + "databases" + ], + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIpColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric line attribute.", + "responses": { + "202": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLineColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "tags": [ + "databases" + ], + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLineColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a longtext attribute.\n", + "responses": { + "202": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a mediumtext attribute.\n", + "responses": { + "202": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric point attribute.", + "responses": { + "202": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPointColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "tags": [ + "databases" + ], + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePointColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric polygon attribute.", + "responses": { + "202": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "202": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "description": "Related Collection ID.", + "type": "string", + "example": "<RELATED_COLLECTION_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Attribute Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "200": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "tags": [ + "databases" + ], + "description": "Create a string attribute.\n", + "responses": { + "202": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for text attributes, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "tags": [ + "databases" + ], + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Create a URL attribute.\n", + "responses": { + "202": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Create a varchar attribute.\n", + "responses": { + "202": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "tags": [ + "databases" + ], + "description": "Get attribute by ID.", + "responses": { + "200": { + "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/get-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/delete-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } + }, + { + "name": "createDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#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": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "databasesListIndexes", + "tags": [ + "databases" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "databasesCreateIndex", + "tags": [ + "databases" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DatabasesIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "databasesGetIndex", + "tags": [ + "databases" + ], + "description": "Get an index by its unique ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "databasesDeleteIndex", + "tags": [ + "databases" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb": { + "get": { + "summary": "List databases", + "operationId": "documentsDBList", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "documentsDBCreate", + "tags": [ + "documentsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "tags": [ + "documentsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "tags": [ + "documentsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "tags": [ + "documentsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "tags": [ + "documentsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", + "tags": [ + "documentsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "tags": [ + "documentsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "tags": [ + "documentsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "tags": [ + "documentsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "documentsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "tags": [ + "documentsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", + "tags": [ + "documentsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "tags": [ + "documentsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "tags": [ + "documentsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DocumentsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "tags": [ + "documentsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "documentsDBCreateFailover", + "tags": [ + "documentsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "documentsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "documentsDBListOperations", + "tags": [ + "documentsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "documentsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "documentsDBGetReplicas", + "tags": [ + "documentsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "documentsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "documentsDBGetStatus", + "tags": [ + "documentsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "tags": [ + "domains" + ], + "description": "List all domains registered for this project. This endpoint supports pagination.", + "responses": { + "200": { + "description": "Domains list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create a new domain.", + "operationId": "domainsCreate", + "tags": [ + "domains" + ], + "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "domain": { + "description": "Domain name (e.g. \"example.com\").", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "teamId", + "domain" + ] + } + } + } + } + } + }, + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "tags": [ + "domains" + ], + "description": "Get the registration price for a domain name.", + "responses": { + "200": { + "description": "DomainPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPrice" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": null, + "demo": "domains\/get-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "2.0.0", + "replaceWith": "domains.listPrices" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "Domain name to get price for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/prices": { + "get": { + "summary": "List domain prices", + "operationId": "domainsListPrices", + "tags": [ + "domains" + ], + "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", + "responses": { + "200": { + "description": "Domain prices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPricesList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-prices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domains", + "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "tags": [ + "domains" + ], + "description": "Get a domain by its unique ID.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" + ], + "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Update the registrar nameservers for the given domain.", + "operationId": "domainsUpdateNameservers", + "tags": [ + "domains" + ], + "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "nameservers": { + "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers\/verification": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsVerifyNameservers", + "tags": [ + "domains" + ], + "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/verify-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "tags": [ + "domains" + ], + "description": "List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" + ], + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", + "tags": [ + "domains" + ], + "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "tags": [ + "domains" + ], + "description": "List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "tags": [ + "domains" + ], + "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", + "tags": [ + "domains" + ], + "description": "List ProtonMail DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "tags": [ + "domains" + ], + "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/zoho": { + "get": { + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", + "tags": [ + "domains" + ], + "description": "List Zoho DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "tags": [ + "domains" + ], + "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "tags": [ + "domains" + ], + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "tags": [ + "domains" + ], + "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", + "tags": [ + "domains" + ], + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "tags": [ + "domains" + ], + "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname": { + "post": { + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Update an existing CNAME record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "tags": [ + "domains" + ], + "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "tags": [ + "domains" + ], + "description": "Update an existing MX record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "tags": [ + "domains" + ], + "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "tags": [ + "domains" + ], + "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "tags": [ + "domains" + ], + "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "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", + "tags": [ + "domains" + ], + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "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", + "tags": [ + "domains" + ], + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "default": "", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "tags": [ + "domains" + ], + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/{recordId}": { + "get": { + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", + "tags": [ + "domains" + ], + "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "tags": [ + "domains" + ], + "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "New team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "tags": [ + "domains" + ], + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "responses": { + "200": { + "description": "domainTransferStatus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", + "operationId": "domainsUpdateZone", + "tags": [ + "domains" + ], + "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "DNS zone file content as a string.", + "type": "string", + "example": "<CONTENT>" + } + }, + "required": [ + "content" + ] + } + } + } + } + } + }, + "\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "embeddingsCreateTextEmbeddings", + "tags": [ + "embeddings" + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "responses": { + "200": { + "description": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "embeddings", + "demo": "embeddings\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "embeddings.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "embeddings", + "platforms": [ + "console", + "server" + ], + "summary": "Create Text Embedding", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "demo": "embeddings\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "description": "Array of text to generate embeddings.", + "type": "array", + "example": [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], + "items": { + "type": "string" + } + }, + "model": { + "description": "The embedding model to use for generating vector embeddings.", + "type": "string", + "default": "nomic-embed-text", + "example": "nomic-embed-text", + "title": "EmbeddingModel", + "oneOf": [ + { + "type": "string", + "enum": [ + "nomic-embed-text" + ], + "title": "nomic-embed-text" + }, + { + "type": "string", + "enum": [ + "all-minilm" + ], + "title": "all-minilm" + } + ] + } + }, + "required": [ + "texts" + ] + } + } + } + } + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "tags": [ + "functions" + ], + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Functions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/functionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "tags": [ + "functions" + ], + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", + "responses": { + "201": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Function maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } + } + }, + "\/functions\/runtimes": { + "get": { + "summary": "List runtimes", + "operationId": "functionsListRuntimes", + "tags": [ + "functions" + ], + "description": "Get a list of all runtimes that are currently active on your instance.", + "responses": { + "200": { + "description": "Runtimes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/runtimeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-runtimes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "functionsListSpecifications", + "tags": [ + "functions" + ], + "description": "List allowed function specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}": { + "get": { + "summary": "Get function", + "operationId": "functionsGet", + "tags": [ + "functions" + ], + "description": "Get a function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "tags": [ + "functions" + ], + "description": "Update function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "tags": [ + "functions" + ], + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update-function-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "functionsListDeployments", + "tags": [ + "functions" + ], + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "description": "Entrypoint File.", + "type": "string", + "example": "<ENTRYPOINT>", + "nullable": true + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "example": "<COMMANDS>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "description": "Build unique ID.", + "type": "string", + "default": "", + "example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to function code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "commit", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "functionsGetDeployment", + "tags": [ + "functions" + ], + "description": "Get a function deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "tags": [ + "functions" + ], + "description": "Delete a code deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", + "tags": [ + "functions" + ], + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "functions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "tags": [ + "functions" + ], + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "tags": [ + "functions" + ], + "description": "Delete a function execution by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/delete-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "functionsListVariables", + "tags": [ + "functions" + ], + "description": "Get a list of all variables of a specific function.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "tags": [ + "functions" + ], + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", + "tags": [ + "functions" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "tags": [ + "functions" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/messageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>" + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "attachments": { + "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>.", + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. If not set, defaults to the sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name of the reply to recipient. If not set, defaults to the sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an email draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "subject": "Welcome", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "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>.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "title": { + "description": "Title for push notification.", + "type": "string", + "default": "", + "example": "<TITLE>" + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "data": { + "description": "Additional key-value pair data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "default": "", + "example": "<ACTION>" + }, + "image": { + "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>.", + "type": "string", + "default": "", + "example": "<ID1:ID2>" + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web Platform.", + "type": "string", + "default": "", + "example": "<ICON>" + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "type": "string", + "default": "", + "example": "<SOUND>" + }, + "color": { + "description": "Color for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<COLOR>" + }, + "tag": { + "description": "Tag for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<TAG>" + }, + "badge": { + "description": "Badge for push notification. Available only for iOS Platform.", + "type": "integer", + "default": -1, + "example": 1, + "format": "int32" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "critical": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "priority": { + "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.", + "type": "string", + "default": "high", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ] + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<CHANNEL_ID>" + } + }, + "required": [ + "messageId" + ] + }, + "examples": { + "draft": { + "summary": "Create a push notification draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "title": "Welcome", + "body": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "description": "Title for push notification.", + "type": "string", + "example": "<TITLE>", + "nullable": true + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "example": "<BODY>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "data": { + "description": "Additional Data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "example": "<ACTION>", + "nullable": true + }, + "image": { + "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>.", + "type": "string", + "example": "<ID1:ID2>", + "nullable": true + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web platforms.", + "type": "string", + "example": "<ICON>", + "nullable": true + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "type": "string", + "example": "<SOUND>", + "nullable": true + }, + "color": { + "description": "Color for push notification. Available only for Android platforms.", + "type": "string", + "example": "<COLOR>", + "nullable": true + }, + "tag": { + "description": "Tag for push notification. Available only for Android platforms.", + "type": "string", + "example": "<TAG>", + "nullable": true + }, + "badge": { + "description": "Badge for push notification. Available only for iOS platforms.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "critical": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + }, + "priority": { + "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.", + "type": "string", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ], + "nullable": true + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", + "type": "string", + "example": "<CHANNEL_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "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.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "content": { + "description": "SMS Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an SMS draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "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", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite": { + "post": { + "summary": "Create Appwrite provider", + "operationId": "messagingCreateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Appwrite push provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite\/{providerId}": { + "patch": { + "summary": "Update Appwrite provider", + "operationId": "messagingUpdateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Update an Appwrite push provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "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.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "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.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Update a Mailgun provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Create a new MSG91 provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "templateId": { + "description": "Msg91 template ID", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Update a MSG91 provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "templateId": { + "description": "Msg91 template ID.", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "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": { + "group": "providers", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "tags": [ + "messaging" + ], + "description": "Update a Resend provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Sendgrid provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Update a Sendgrid provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Amazon SES provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", + "tags": [ + "messaging" + ], + "description": "Update an Amazon SES provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Create a new SMTP provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "host": { + "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.", + "type": "string", + "example": "<HOST>" + }, + "port": { + "description": "The default SMTP server port.", + "type": "integer", + "default": 587, + "example": 587, + "format": "int32" + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "default": true, + "example": false + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Update a SMTP provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "host": { + "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.", + "type": "string", + "default": "", + "example": "<HOST>" + }, + "port": { + "description": "SMTP port.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be 'ssl' or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "example": false, + "nullable": true + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Telesign provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/telesign\/{providerId}": { + "patch": { + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Update a Telesign provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Textmagic provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Update a Textmagic provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "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": { + "group": "providers", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Update a Twilio provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Vonage provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "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.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Update a Vonage provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", + "tags": [ + "messaging" + ], + "description": "Get a provider by its unique ID.\n", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/get-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "tags": [ + "messaging" + ], + "description": "Get a list of all topics from the current Appwrite project.", + "responses": { + "200": { + "description": "Topic list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topicList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "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, + "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, 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", + "tags": [ + "messaging" + ], + "description": "Create a new topic.", + "responses": { + "201": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/create-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topicId": { + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "type": "string", + "example": "<TOPIC_ID>" + }, + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>" + }, + "subscribe": { + "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.", + "type": "array", + "default": [ + "users" + ], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "topicId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", + "tags": [ + "messaging" + ], + "description": "Update a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/update-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "subscribe": { + "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.", + "type": "array", + "example": [ + "any" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", + "tags": [ + "messaging" + ], + "description": "Delete a topic by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/delete-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "tags": [ + "messaging" + ], + "description": "Get a list of all subscribers from the current Appwrite project.", + "responses": { + "200": { + "description": "Subscriber list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "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": { + "group": "subscribers", + "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, + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", + "tags": [ + "messaging" + ], + "description": "Get a subscriber by its unique ID.\n", + "responses": { + "200": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "subscribers", + "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, + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo": { + "get": { + "summary": "List databases", + "operationId": "mongoList", + "tags": [ + "mongo" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mongoCreate", + "tags": [ + "mongo" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mongo\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mongoListSpecifications", + "tags": [ + "mongo" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mongoGet", + "tags": [ + "mongo" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mongoUpdate", + "tags": [ + "mongo" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mongoDelete", + "tags": [ + "mongo" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mongoListBackups", + "tags": [ + "mongo" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mongoCreateBackup", + "tags": [ + "mongo" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mongoListBackupPolicies", + "tags": [ + "mongo" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mongoCreateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mongoGetBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mongoUpdateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mongoDeleteBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mongoUpdateBackupStorage", + "tags": [ + "mongo" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mongoGetBackup", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mongoDeleteBackup", + "tags": [ + "mongo" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mongoListBranches", + "tags": [ + "mongo" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mongoCreateBranch", + "tags": [ + "mongo" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mongoDeleteBranch", + "tags": [ + "mongo" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mongoUpdateCredentials", + "tags": [ + "mongo" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mongoCreateFailover", + "tags": [ + "mongo" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mongo\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mongoUpdateMaintenance", + "tags": [ + "mongo" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mongoCreateMigration", + "tags": [ + "mongo" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mongo\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mongoListOperations", + "tags": [ + "mongo" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mongo\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mongo\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mongoGetPitr", + "tags": [ + "mongo" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mongo\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mongoGetReplicas", + "tags": [ + "mongo" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mongo\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mongoListRestorations", + "tags": [ + "mongo" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mongoCreateRestoration", + "tags": [ + "mongo" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mongoGetRestoration", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mongoGetStatus", + "tags": [ + "mongo" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mongoCreateUpgrade", + "tags": [ + "mongo" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/mysql": { + "get": { + "summary": "List databases", + "operationId": "mysqlList", + "tags": [ + "mysql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mysqlCreate", + "tags": [ + "mysql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mysql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mysqlListSpecifications", + "tags": [ + "mysql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mysql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mysqlGet", + "tags": [ + "mysql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mysqlUpdate", + "tags": [ + "mysql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mysqlDelete", + "tags": [ + "mysql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mysqlListBackups", + "tags": [ + "mysql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mysqlCreateBackup", + "tags": [ + "mysql" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mysqlListBackupPolicies", + "tags": [ + "mysql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mysqlCreateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mysqlGetBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mysqlUpdateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mysqlDeleteBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mysqlUpdateBackupStorage", + "tags": [ + "mysql" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mysqlGetBackup", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mysqlDeleteBackup", + "tags": [ + "mysql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mysqlListBranches", + "tags": [ + "mysql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mysqlCreateBranch", + "tags": [ + "mysql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mysqlDeleteBranch", + "tags": [ + "mysql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mysqlUpdateCredentials", + "tags": [ + "mysql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "mysqlCreateExecution", + "tags": [ + "mysql" + ], + "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.center\/v1\/sql\/executions` 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": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "mysql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mysqlCreateFailover", + "tags": [ + "mysql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mysql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mysqlUpdateMaintenance", + "tags": [ + "mysql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mysqlCreateMigration", + "tags": [ + "mysql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mysql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mysqlListOperations", + "tags": [ + "mysql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mysql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mysql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mysqlGetPitr", + "tags": [ + "mysql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mysql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "mysqlGetPooler", + "tags": [ + "mysql" + ], + "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": { + "group": "pooler", + "demo": "mysql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "mysqlUpdatePooler", + "tags": [ + "mysql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "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.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "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).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "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.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "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).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "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.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mysqlGetReplicas", + "tags": [ + "mysql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mysql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mysqlListRestorations", + "tags": [ + "mysql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mysqlCreateRestoration", + "tags": [ + "mysql" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mysqlGetRestoration", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mysqlGetStatus", + "tags": [ + "mysql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mysqlCreateUpgrade", + "tags": [ + "mysql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "string", + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/introspect": { + "post": { + "summary": "OAuth2 Introspect", + "operationId": "oauth2Introspect", + "tags": [ + "oauth2" + ], + "description": "Introspect an OAuth2 access token or refresh token. Authenticate with an API key holding the `oauth2.introspect` scope to introspect any token in the project, or with the client credentials of the app the token was issued to.", + "responses": { + "200": { + "description": "OAuth2 Introspection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Introspection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/introspect.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access token or refresh token to introspect.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to introspect. Can be one of: `access_token` or `refresh_token`.", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "string", + "default": [] + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", + "tags": [ + "organization" + ], + "description": "Get the current organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", + "tags": [ + "organization" + ], + "description": "Update the current organization's name.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization", + "operationId": "organizationDelete", + "tags": [ + "organization" + ], + "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/memberships": { + "get": { + "summary": "List organization memberships", + "operationId": "organizationListMemberships", + "tags": [ + "organization" + ], + "description": "Get a list of all memberships from the current organization.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "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, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", + "tags": [ + "organization" + ], + "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new organization member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to the organization.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the organization. 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.", + "type": "array", + "items": { + "type": "string" + } + }, + "url": { + "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.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new organization member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/organization\/memberships\/{membershipId}": { + "get": { + "summary": "Get organization membership", + "operationId": "organizationGetMembership", + "tags": [ + "organization" + ], + "description": "Get a membership from the current organization by its unique ID.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", + "tags": [ + "organization" + ], + "description": "Modify the roles of a member in the current organization.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the organization. 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.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization membership", + "operationId": "organizationDeleteMembership", + "tags": [ + "organization" + ], + "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "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, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "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.", + "type": "string", + "example": "<PROJECT_ID>" + }, + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "region": { + "description": "Project Region.", + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + } + }, + "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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "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": { + "group": "projects", + "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": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys": { + "get": { + "summary": "List project keys", + "operationId": "organizationListProjectKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys of a project in your organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/list-project-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "organizationCreateEphemeralProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new ephemeral API key for a project in your organization. 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": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-ephemeral-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "organizationGetProjectKey", + "tags": [ + "organization" + ], + "description": "Get a project key by its unique ID.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/get-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "organizationUpdateProjectKey", + "tags": [ + "organization" + ], + "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/update-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "organizationDeleteProjectKey", + "tags": [ + "organization" + ], + "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/delete-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/postgresql": { + "get": { + "summary": "List databases", + "operationId": "postgresqlList", + "tags": [ + "postgresql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "postgresqlCreate", + "tags": [ + "postgresql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "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.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "postgresqlListSpecifications", + "tags": [ + "postgresql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/postgresql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "postgresqlGet", + "tags": [ + "postgresql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "postgresqlUpdate", + "tags": [ + "postgresql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "postgresqlDelete", + "tags": [ + "postgresql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "postgresqlListBackups", + "tags": [ + "postgresql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "postgresqlCreateBackup", + "tags": [ + "postgresql" + ], + "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": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "postgresqlListBackupPolicies", + "tags": [ + "postgresql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "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" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "postgresqlCreateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "postgresqlGetBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "postgresqlUpdateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "postgresqlDeleteBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "postgresqlUpdateBackupStorage", + "tags": [ + "postgresql" + ], + "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": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "postgresqlGetBackup", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "postgresqlDeleteBackup", + "tags": [ + "postgresql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "postgresqlListBranches", + "tags": [ + "postgresql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "postgresqlCreateBranch", + "tags": [ + "postgresql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "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.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "postgresqlDeleteBranch", + "tags": [ + "postgresql" + ], + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "postgresqlUpdateCredentials", + "tags": [ + "postgresql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "postgresqlCreateExecution", + "tags": [ + "postgresql" + ], + "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.center\/v1\/sql\/executions` 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": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "postgresql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions": { + "get": { + "summary": "List extensions", + "operationId": "postgresqlListExtensions", + "tags": [ + "postgresql" + ], + "description": "List installed and available extensions for a PostgreSQL database.", + "responses": { + "200": { + "description": "Extensions", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/list-extensions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create extension", + "operationId": "postgresqlCreateExtension", + "tags": [ + "postgresql" + ], + "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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/create-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Delete extension", + "operationId": "postgresqlDeleteExtension", + "tags": [ + "postgresql" + ], + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/delete-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "example": "<EXTENSION_NAME>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "postgresqlCreateFailover", + "tags": [ + "postgresql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "postgresql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "postgresqlUpdateMaintenance", + "tags": [ + "postgresql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "postgresqlCreateMigration", + "tags": [ + "postgresql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "postgresql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "postgresqlListOperations", + "tags": [ + "postgresql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "postgresql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "postgresqlGetPitr", + "tags": [ + "postgresql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "postgresql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "postgresqlGetPooler", + "tags": [ + "postgresql" + ], + "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": { + "group": "pooler", + "demo": "postgresql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "postgresqlUpdatePooler", + "tags": [ + "postgresql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "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.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "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).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "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.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "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).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "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.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "postgresqlGetReplicas", + "tags": [ + "postgresql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "postgresql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "postgresqlListRestorations", + "tags": [ + "postgresql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "postgresqlCreateRestoration", + "tags": [ + "postgresql" + ], + "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "postgresqlGetRestoration", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "postgresqlGetStatus", + "tags": [ + "postgresql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "postgresqlCreateUpgrade", + "tags": [ + "postgresql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "server" + ], + "summary": "Upsert presence", + "auth": { + "Project": [], + "Key": [] + }, + "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": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "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": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "server" + ], + "summary": "Update presence", + "auth": { + "Project": [], + "Key": [] + }, + "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.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", + "tags": [ + "project" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/get.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", + "tags": [ + "project" + ], + "description": "Delete a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/project\/auth-methods\/{methodId}": { + "patch": { + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", + "tags": [ + "project" + ], + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-auth-method.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "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", + "example": "email-password", + "title": "ProjectAuthMethodId", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Auth method status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", + "tags": [ + "project" + ], + "description": "Get a list of all API keys from the current project.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/list-keys.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": [], + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", + "tags": [ + "project" + ], + "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": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-ephemeral-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "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": { + "group": "keys", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", + "tags": [ + "project" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/update-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", + "tags": [ + "project" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "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": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-labels.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "production" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", + "tags": [ + "project" + ], + "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": "Mock Numbers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/list-mock-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "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": { + "group": "mocks", + "demo": "project\/create-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "number", + "otp" + ] + } + } + } + } + } + }, + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", + "tags": [ + "project" + ], + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/get-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "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", + "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": { + "group": "mocks", + "demo": "project\/update-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": [], + "Key": [] + } + }, + "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", + "example": "+12065550100" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "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": { + "group": "mocks", + "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": [], + "Key": [] + } + }, + "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", + "example": "+12065550100" + }, + "in": "path" + } + ] + } + }, + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/oauth2-server": { + "put": { + "summary": "Update OAuth2 server", + "operationId": "projectUpdateOAuth2Server", + "tags": [ + "project" + ], + "description": "Update the OAuth2 server (OIDC provider) configuration.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-o-auth-2-server.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable or disable the OAuth2 server.", + "type": "boolean", + "example": false + }, + "authorizationUrl": { + "description": "URL to your application with consent screen.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "scopes": { + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "authorizationDetailsTypes": { + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "refreshTokenDuration": { + "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicAccessTokenDuration": { + "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicRefreshTokenDuration": { + "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "installationAccessTokenDuration": { + "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "confidentialPkce": { + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "type": "boolean", + "example": false, + "nullable": true + }, + "verificationUrl": { + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "userCodeLength": { + "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", + "type": "integer", + "example": 6, + "format": "int32", + "nullable": true + }, + "userCodeFormat": { + "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", + "type": "string", + "default": "alphanumeric", + "example": "numeric" + }, + "deviceCodeDuration": { + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "defaultScopes": { + "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationScopes": { + "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "authorizationUrl" + ] + } + } + } + } + } + }, + "\/project\/oauth2\/amazon": { + "patch": { + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Amazon configuration.", + "responses": { + "200": { + "description": "OAuth2Amazon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-amazon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Apple configuration.", + "responses": { + "200": { + "description": "OAuth2Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Apple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-apple.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "type": "string", + "example": "<SERVICE_ID>", + "nullable": true + }, + "keyId": { + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "type": "string", + "example": "<KEY_ID>", + "nullable": true + }, + "teamId": { + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "type": "string", + "example": "<TEAM_ID>", + "nullable": true + }, + "p8File": { + "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-----", + "type": "string", + "example": "<P8_FILE>", + "nullable": true + }, + "nativeClientIds": { + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/appwrite": { + "patch": { + "summary": "Update project OAuth2 Appwrite", + "operationId": "projectUpdateOAuth2Appwrite", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Appwrite configuration.", + "responses": { + "200": { + "description": "OAuth2Appwrite", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-appwrite.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Auth0 configuration.", + "responses": { + "200": { + "description": "OAuth2Auth0", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-auth-0.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "prompt": { + "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", + "type": "array", + "items": { + "title": "ProjectOAuth2Auth0Prompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Authentik configuration.", + "responses": { + "200": { + "description": "OAuth2Authentik", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-authentik.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Authentik instance. For example: example.authentik.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Autodesk configuration.", + "responses": { + "200": { + "description": "OAuth2Autodesk", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-autodesk.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitbucket configuration.", + "responses": { + "200": { + "description": "OAuth2Bitbucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitbucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitly configuration.", + "responses": { + "200": { + "description": "OAuth2Bitly", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitly.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Box configuration.", + "responses": { + "200": { + "description": "OAuth2Box", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Box" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-box.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/cloudflare": { + "patch": { + "summary": "Update project OAuth2 Cloudflare", + "operationId": "projectUpdateOAuth2Cloudflare", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Cloudflare configuration.", + "responses": { + "200": { + "description": "OAuth2Cloudflare", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-cloudflare.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dailymotion configuration.", + "responses": { + "200": { + "description": "OAuth2Dailymotion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dailymotion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "apiKey": { + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "type": "string", + "example": "<API_KEY>", + "nullable": true + }, + "apiSecret": { + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "type": "string", + "example": "<API_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-discord.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", + "type": "array", + "items": { + "title": "ProjectOAuth2DiscordPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Disqus configuration.", + "responses": { + "200": { + "description": "OAuth2Disqus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-disqus.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "publicKey": { + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "type": "string", + "example": "<PUBLIC_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dropbox configuration.", + "responses": { + "200": { + "description": "OAuth2Dropbox", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dropbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appKey": { + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "type": "string", + "example": "<APP_KEY>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Etsy configuration.", + "responses": { + "200": { + "description": "OAuth2Etsy", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-etsy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyString": { + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "type": "string", + "example": "<KEY_STRING>", + "nullable": true + }, + "sharedSecret": { + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "type": "string", + "example": "<SHARED_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Facebook configuration.", + "responses": { + "200": { + "description": "OAuth2Facebook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-facebook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "type": "string", + "example": "<APP_ID>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Figma configuration.", + "responses": { + "200": { + "description": "OAuth2Figma", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Figma" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-figma.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 FusionAuth configuration.", + "responses": { + "200": { + "description": "OAuth2FusionAuth", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-fusion-auth.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/github": { + "patch": { + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 GitHub configuration.", + "responses": { + "200": { + "description": "OAuth2GitHub", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Github" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-git-hub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", + "type": "array", + "items": { + "title": "ProjectOAuth2GitHubPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/gitlab": { + "patch": { + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Gitlab configuration.", + "responses": { + "200": { + "description": "OAuth2Gitlab", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-gitlab.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/google": { + "patch": { + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Google configuration.", + "responses": { + "200": { + "description": "OAuth2Google", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Google" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-google.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "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.", + "type": "array", + "items": { + "title": "ProjectOAuth2GooglePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "nativeClientIds": { + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/huggingface": { + "patch": { + "summary": "Update project OAuth2 Hugging Face", + "operationId": "projectUpdateOAuth2HuggingFace", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Hugging Face configuration.", + "responses": { + "200": { + "description": "OAuth2HuggingFace", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-hugging-face.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kakao": { + "patch": { + "summary": "Update project OAuth2 Kakao", + "operationId": "projectUpdateOAuth2Kakao", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kakao configuration.", + "responses": { + "200": { + "description": "OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kakao.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", + "type": "array", + "items": { + "title": "ProjectOAuth2KakaoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/keycloak": { + "patch": { + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Keycloak configuration.", + "responses": { + "200": { + "description": "OAuth2Keycloak", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-keycloak.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "realmName": { + "description": "Keycloak realm name. For example: appwrite-realm", + "type": "string", + "example": "<REALM_NAME>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kick": { + "patch": { + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kick configuration.", + "responses": { + "200": { + "description": "OAuth2Kick", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kick" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kick.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/linkedin": { + "patch": { + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Linkedin configuration.", + "responses": { + "200": { + "description": "OAuth2Linkedin", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-linkedin.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "primaryClientSecret": { + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "type": "string", + "example": "<PRIMARY_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/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": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-microsoft.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "applicationSecret": { + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "type": "string", + "example": "<APPLICATION_SECRET>", + "nullable": true + }, + "tenant": { + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "type": "string", + "example": "<TENANT>", + "nullable": true + }, + "prompt": { + "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", + "type": "array", + "items": { + "title": "ProjectOAuth2MicrosoftPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/notion": { + "patch": { + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Notion configuration.", + "responses": { + "200": { + "description": "OAuth2Notion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Notion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-notion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauthClientId": { + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "type": "string", + "example": "<OAUTH_CLIENT_ID>", + "nullable": true + }, + "oauthClientSecret": { + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "type": "string", + "example": "<OAUTH_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/oidc": { + "patch": { + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Oidc configuration.", + "responses": { + "200": { + "description": "OAuth2Oidc", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-oidc.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "wellKnownURL": { + "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", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "authorizationURL": { + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "tokenURL": { + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "userInfoURL": { + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "prompt": { + "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2OidcPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "maxAge": { + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/okta": { + "patch": { + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Okta configuration.", + "responses": { + "200": { + "description": "OAuth2Okta", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Okta" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-okta.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "domain": { + "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\/", + "type": "string", + "example": "example.com", + "nullable": true + }, + "authorizationServerId": { + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "type": "string", + "example": "<AUTHORIZATION_SERVER_ID>", + "nullable": true + }, + "prompt": { + "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", + "type": "array", + "items": { + "title": "ProjectOAuth2OktaPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypal": { + "patch": { + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Paypal configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypalSandbox": { + "patch": { + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 PaypalSandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/podio": { + "patch": { + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Podio configuration.", + "responses": { + "200": { + "description": "OAuth2Podio", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Podio" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-podio.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/resend": { + "patch": { + "summary": "Update project OAuth2 Resend", + "operationId": "projectUpdateOAuth2Resend", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Resend configuration.", + "responses": { + "200": { + "description": "OAuth2Resend", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Resend" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-resend.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/salesforce": { + "patch": { + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Salesforce configuration.", + "responses": { + "200": { + "description": "OAuth2Salesforce", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-salesforce.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "customerSecret": { + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "type": "string", + "example": "<CUSTOMER_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", + "type": "array", + "items": { + "title": "ProjectOAuth2SalesforcePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/slack": { + "patch": { + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Slack configuration.", + "responses": { + "200": { + "description": "OAuth2Slack", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Slack" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-slack.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Spotify configuration.", + "responses": { + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-spotify.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Stripe configuration.", + "responses": { + "200": { + "description": "OAuth2Stripe", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "apiSecretKey": { + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "type": "string", + "example": "<API_SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tiktok": { + "patch": { + "summary": "Update project OAuth2 TikTok", + "operationId": "projectUpdateOAuth2TikTok", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 TikTok configuration.", + "responses": { + "200": { + "description": "OAuth2TikTok", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tik-tok.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Twitch configuration.", + "responses": { + "200": { + "description": "OAuth2Twitch", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-twitch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/webflow": { + "patch": { + "summary": "Update project OAuth2 Webflow", + "operationId": "projectUpdateOAuth2Webflow", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Webflow configuration.", + "responses": { + "200": { + "description": "OAuth2Webflow", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-webflow.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 WordPress configuration.", + "responses": { + "200": { + "description": "OAuth2WordPress", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-word-press.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 X configuration.", + "responses": { + "200": { + "description": "OAuth2X", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2X" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2x.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yahoo configuration.", + "responses": { + "200": { + "description": "OAuth2Yahoo", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yahoo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yandex configuration.", + "responses": { + "200": { + "description": "OAuth2Yandex", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yandex.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoho configuration.", + "responses": { + "200": { + "description": "OAuth2Zoho", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", + "type": "array", + "items": { + "title": "ProjectOAuth2ZohoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "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": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "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 OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", + "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\/oAuth2Webflow" + }, + { + "$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\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$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" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "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", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "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", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "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", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "ProjectOAuthProviderId", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/platforms": { + "get": { + "summary": "List project platforms", + "operationId": "projectListPlatforms", + "tags": [ + "project" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "responses": { + "200": { + "description": "Platforms List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.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: 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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/platforms\/android": { + "post": { + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-android-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "platformId", + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "responses": { + "200": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-android-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", + "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.", + "responses": { + "201": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-apple-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", + "tags": [ + "project" + ], + "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "responses": { + "200": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-apple-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux": { + "post": { + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-linux-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "responses": { + "200": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-linux-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-web-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "platformId", + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", + "tags": [ + "project" + ], + "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "responses": { + "200": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-web-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", + "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.", + "responses": { + "201": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-windows-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "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.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "responses": { + "200": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-windows-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/{platformId}": { + "get": { + "summary": "Get project platform", + "operationId": "projectGetPlatform", + "tags": [ + "project" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "responses": { + "200": { + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "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" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", + "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": { + "group": "platforms", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "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.", + "responses": { + "200": { + "description": "Policies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block aliased emails during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-corporate-email": { + "patch": { + "summary": "Update deny non-corporate email policy", + "operationId": "projectUpdateDenyCorporateEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-corporate-email-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block free email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", + "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..", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userEmail": { + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userPhone": { + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userName": { + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userMFA": { + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userAccessedAt": { + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/mfa-factors": { + "patch": { + "summary": "Update MFA factors policy", + "operationId": "projectUpdateMFAFactorsPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-mfa-factors-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "totp": { + "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "email": { + "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "phone": { + "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "custom": { + "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-dictionary-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-history-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-personal-data": { + "patch": { + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-personal-data-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-pwned": { + "patch": { + "summary": "Update password pwned policy", + "operationId": "projectUpdatePasswordPwnedPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-pwned-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + }, + "sessions": { + "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", + "type": "boolean", + "example": false + }, + "users": { + "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-strength": { + "patch": { + "summary": "Update password strength policy", + "operationId": "projectUpdatePasswordStrengthPolicy", + "tags": [ + "project" + ], + "description": "Update the password strength requirements for users in the project.", + "responses": { + "200": { + "description": "Policy Password Strength", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-strength-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "min": { + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "uppercase": { + "description": "Whether passwords must include at least one uppercase letter.", + "type": "boolean", + "example": false + }, + "lowercase": { + "description": "Whether passwords must include at least one lowercase letter.", + "type": "boolean", + "example": false + }, + "number": { + "description": "Whether passwords must include at least one number.", + "type": "boolean", + "example": false + }, + "symbols": { + "description": "Whether passwords must include at least one symbol.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-alert-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", + "tags": [ + "project" + ], + "description": "Update maximum duration how long sessions created within a project should stay active for.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-duration-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", + "type": "integer", + "example": 60, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "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.", + "type": "boolean", + "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": { + "group": "policies", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", + "type": "integer", + "example": 1, + "format": "int32" + } + }, + "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": { + "group": "policies", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/{policyId}": { + "get": { + "summary": "Get project policy", + "operationId": "projectGetPolicy", + "tags": [ + "project" + ], + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "responses": { + "200": { + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "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", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", + "required": true, + "schema": { + "type": "string", + "example": "password-dictionary", + "title": "ProjectPolicyId", + "oneOf": [ + { + "type": "string", + "enum": [ + "password-dictionary" + ], + "title": "password-dictionary" + }, + { + "type": "string", + "enum": [ + "password-history" + ], + "title": "password-history" + }, + { + "type": "string", + "enum": [ + "password-strength" + ], + "title": "password-strength" + }, + { + "type": "string", + "enum": [ + "password-personal-data" + ], + "title": "password-personal-data" + }, + { + "type": "string", + "enum": [ + "password-pwned" + ], + "title": "password-pwned" + }, + { + "type": "string", + "enum": [ + "session-alert" + ], + "title": "session-alert" + }, + { + "type": "string", + "enum": [ + "session-duration" + ], + "title": "session-duration" + }, + { + "type": "string", + "enum": [ + "session-invalidation" + ], + "title": "session-invalidation" + }, + { + "type": "string", + "enum": [ + "session-limit" + ], + "title": "session-limit" + }, + { + "type": "string", + "enum": [ + "user-limit" + ], + "title": "user-limit" + }, + { + "type": "string", + "enum": [ + "membership-privacy" + ], + "title": "membership-privacy" + }, + { + "type": "string", + "enum": [ + "mfa-factors" + ], + "title": "mfa-factors" + }, + { + "type": "string", + "enum": [ + "deny-aliased-email" + ], + "title": "deny-aliased-email" + }, + { + "type": "string", + "enum": [ + "deny-disposable-email" + ], + "title": "deny-disposable-email" + }, + { + "type": "string", + "enum": [ + "deny-free-email" + ], + "title": "deny-free-email" + }, + { + "type": "string", + "enum": [ + "deny-corporate-email" + ], + "title": "deny-corporate-email" + } + ] + }, + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "schema": { + "type": "string", + "example": "rest", + "title": "ProjectProtocolId", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Protocol status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", + "tags": [ + "project" + ], + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-service.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "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, oauth2", + "required": true, + "schema": { + "type": "string", + "example": "account", + "title": "ProjectServiceId", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + }, + { + "type": "string", + "enum": [ + "oauth2" + ], + "title": "oauth2" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Service status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", + "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.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/update-smtp.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "description": "SMTP server hostname (domain)", + "type": "string", + "example": "example.com", + "nullable": true + }, + "port": { + "description": "SMTP server port", + "type": "integer", + "example": 587, + "format": "int32", + "nullable": true + }, + "username": { + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<USERNAME>", + "nullable": true + }, + "password": { + "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).", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + }, + "senderEmail": { + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "senderName": { + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "replyToEmail": { + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "secure": { + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "type": "string", + "example": "tls", + "title": "ProjectSMTPSecure", + "oneOf": [ + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + } + ], + "nullable": true + }, + "enabled": { + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", + "tags": [ + "project" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/create-smtp-test.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "type": "array", + "example": [ + "recipient@example.com" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } + } + } + } + } + }, + "\/project\/templates\/email": { + "get": { + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", + "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.", + "responses": { + "200": { + "description": "Email Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplateList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/list-email-templates.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": [], + "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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", + "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.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "templateId": { + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "locale": { + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "subject": { + "description": "Subject of the email template. Can be up to 255 characters.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "message": { + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "type": "string", + "example": "<MESSAGE>", + "nullable": true + }, + "senderName": { + "description": "Name of the email sender.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "senderEmail": { + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToEmail": { + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Reply to name.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "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": { + "group": "templates", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", + "tags": [ + "project" + ], + "description": "Get a list of all project environment variables.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/list-variables.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": [], + "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: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create 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": { + "group": "variables", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "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.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", + "tags": [ + "project" + ], + "description": "Get a variable by its unique ID. ", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", + "tags": [ + "project" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/update-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", + "tags": [ + "project" + ], + "description": "Delete a variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/delete-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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/invalidations": { + "post": { + "summary": "Create invalidation", + "operationId": "proxyCreateInvalidation", + "tags": [ + "proxy" + ], + "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", + "responses": { + "201": { + "description": "Invalidation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyInvalidation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "proxy\/create-invalidation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "proxy.invalidations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "type": { + "description": "Type of reference passed. Allowed values are: tag, path, all", + "type": "string", + "example": "tag", + "title": "InvalidationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + }, + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ] + }, + "reference": { + "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", + "type": "string", + "default": "", + "example": "<REFERENCE>" + } + }, + "required": [ + "domain", + "type" + ] + }, + "examples": { + "tag": { + "summary": "Purge a cache tag", + "value": { + "domain": "example.com", + "type": "tag", + "reference": "<TAG>" + } + }, + "path": { + "summary": "Purge a URL path", + "value": { + "domain": "example.com", + "type": "path", + "reference": "\/blog\/hello-world" + } + } + } + } + } + } + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + } + }, + "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": { + "group": "rules", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "functionId": { + "description": "ID of function to be executed.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create redirect rule", + "operationId": "proxyCreateRedirectRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "url": { + "description": "Target URL of redirection", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "description": "Status code of redirection", + "type": "string", + "example": "301", + "title": "StatusCode", + "oneOf": [ + { + "type": "string", + "enum": [ + "301" + ], + "title": "MovedPermanently" + }, + { + "type": "string", + "enum": [ + "302" + ], + "title": "Found" + }, + { + "type": "string", + "enum": [ + "307" + ], + "title": "TemporaryRedirect" + }, + { + "type": "string", + "enum": [ + "308" + ], + "title": "PermanentRedirect" + } + ] + }, + "resourceId": { + "description": "ID of parent resource.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "resourceType": { + "description": "Type of parent resource.", + "type": "string", + "example": "site", + "title": "ProxyResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "site" + ], + "title": "Site" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "Function" + } + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\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": { + "group": "rules", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "siteId": { + "description": "ID of site to be executed.", + "type": "string", + "example": "<SITE_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", + "tags": [ + "proxy" + ], + "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": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/update-rule-status.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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/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": { + "group": "reports", + "demo": "advisor\/list-reports.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.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: 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", + "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": { + "group": "reports", + "demo": "advisor\/get-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "reports", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "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": { + "group": "insights", + "demo": "advisor\/list-insights.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "insights", + "demo": "advisor\/get-insight.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "insightId", + "description": "Insight ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSIGHT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/siteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "siteId": { + "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.", + "type": "string", + "example": "<SITE_ID>" + }, + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + } + } + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "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.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + }, + "nullable": true + } + }, + "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": { + "group": "sites", + "demo": "sites\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "tags": [ + "sites" + ], + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "description": "Install Commands.", + "type": "string", + "example": "<INSTALL_COMMAND>", + "nullable": true + }, + "buildCommand": { + "description": "Build Commands.", + "type": "string", + "example": "<BUILD_COMMAND>", + "nullable": true + }, + "outputDirectory": { + "description": "Output Directory.", + "type": "string", + "example": "<OUTPUT_DIRECTORY>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "code" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to site code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "branch", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", + "tags": [ + "sites" + ], + "description": "Get a site deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "tags": [ + "sites" + ], + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "sites.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", + "tags": [ + "sites" + ], + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "tags": [ + "sites" + ], + "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": { + "group": "logs", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "tags": [ + "sites" + ], + "description": "Delete a site log by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/delete-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "tags": [ + "sites" + ], + "description": "Get a list of all variables of a specific site.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "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, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", + "tags": [ + "sites" + ], + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", + "tags": [ + "sites" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "variables", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", + "tags": [ + "storage" + ], + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Buckets List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucketList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/list-buckets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", + "tags": [ + "storage" + ], + "description": "Create a new storage bucket.", + "responses": { + "201": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/create-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<BUCKET_ID>" + }, + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "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", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ] + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "tags": [ + "storage" + ], + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/get-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", + "tags": [ + "storage" + ], + "description": "Update a storage bucket by its unique ID.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "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.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32", + "nullable": true + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "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", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ], + "nullable": true + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "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": { + "group": "buckets", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "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.", + "type": "string", + "example": "<FILE_ID>" + }, + "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).", + "type": "string", + "format": "binary" + }, + "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).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "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": { + "group": "files", + "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, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "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", + "example": "FFFFFF", + "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", + "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", + "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", + "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", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "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", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "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", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.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 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, + "schema": { + "type": "string", + "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", + "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": { + "group": "tablesdb", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "tablesDBListSpecifications", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/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": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create 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": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", + "tags": [ + "tablesDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", + "tags": [ + "tablesDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "tags": [ + "tablesDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "tablesDBCreateFailover", + "tags": [ + "tablesDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "tablesdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "tablesDBListMigrations", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", + "responses": { + "200": { + "description": "Database Migrations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigrationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/list-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create migration", + "operationId": "tablesDBCreateMigration", + "tags": [ + "tablesDB" + ], + "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", + "responses": { + "201": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "specification": { + "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", + "type": "string", + "example": "s-1vcpu-1gb" + }, + "autoCutover": { + "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "specification" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "tablesDBGetMigration", + "tags": [ + "tablesDB" + ], + "description": "Get a single dedicated migration for a TablesDB database by its ID.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/get-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "tablesDBDeleteMigration", + "tags": [ + "tablesDB" + ], + "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/delete-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { + "post": { + "summary": "Cutover migration", + "operationId": "tablesDBCreateCutover", + "tags": [ + "tablesDB" + ], + "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-cutover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "tablesDBListOperations", + "tags": [ + "tablesDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "tablesdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "tablesDBGetReplicas", + "tags": [ + "tablesDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "tablesdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "tablesDBGetStatus", + "tags": [ + "tablesDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "tables", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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, 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, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", + "tags": [ + "tablesDB" + ], + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/create-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "tableId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TABLE_ID>" + }, + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "columns": { + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { + "get": { + "summary": "Get table", + "operationId": "tablesDBGetTable", + "tags": [ + "tablesDB" + ], + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/get-table.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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", + "tags": [ + "tablesDB" + ], + "description": "Update a table by its unique ID.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/update-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "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).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "tags": [ + "tablesDB" + ], + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/delete-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", + "tags": [ + "tablesDB" + ], + "description": "List columns in the table.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/list-columns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a boolean column.\n", + "responses": { + "202": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-boolean-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-boolean-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a date time column according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-datetime-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update datetime column", + "operationId": "tablesDBUpdateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-datetime-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "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": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-email-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-email-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "responses": { + "202": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-enum-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-integer-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-integer-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "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": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric line column.", + "responses": { + "202": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-line-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-line-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a longtext column.\n", + "responses": { + "202": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-longtext-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a mediumtext column.\n", + "responses": { + "202": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-mediumtext-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric point column.", + "responses": { + "202": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-point-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-point-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric polygon column.", + "responses": { + "202": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-polygon-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-polygon-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "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.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "202": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-relationship-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedTableId": { + "description": "Related Table ID.", + "type": "string", + "example": "<RELATED_TABLE_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Column Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { + "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": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-relationship-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ], + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a string column.\n", + "responses": { + "202": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for text columns, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "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, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a text column.\n", + "responses": { + "202": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "patch": { + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a URL column.\n", + "responses": { + "202": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a varchar column.\n", + "responses": { + "202": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-varchar-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "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.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-varchar-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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", + "tags": [ + "tablesDB" + ], + "description": "Get column by ID.", + "responses": { + "200": { + "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/get-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "tags": [ + "tablesDB" + ], + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "tags": [ + "tablesDB" + ], + "description": "List indexes on the table.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "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`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "TablesDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "columns": { + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "columns" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "tags": [ + "tablesDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", + "tags": [ + "tablesDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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", + "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", + "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": { + "group": "rows", + "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, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create row", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create rows", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "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.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", + "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", + "responses": { + "201": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rows": { + "description": "Array of row data as JSON objects. May contain partial rows.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rows" + ] + } + } + } + } + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", + "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.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected rows", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", + "tags": [ + "tablesDB" + ], + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "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.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "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": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "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": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement 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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "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": { + "group": "rows", + "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" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. 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", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "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.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "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 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "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.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "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.", + "type": "array", + "example": [ + "editor" + ], + "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": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "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": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "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": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "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, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "Token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", + "tags": [ + "tokens" + ], + "description": "Get a token by its unique ID.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_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": { + "group": "tokens", + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "File token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + }, + "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": { + "group": "tokens", + "demo": "tokens\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "tags": [ + "users" + ], + "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Users List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/userList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone", + "nullable": true + }, + "password": { + "description": "Plain text user password. Must be at least 8 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password", + "nullable": true + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Argon2.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Bcrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", + "tags": [ + "users" + ], + "description": "Get identities for all users.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.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: 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, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", + "tags": [ + "users" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using MD5.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "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.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using PHPass.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Optional salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "description": "Optional CPU cost used to hash password.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "passwordMemory": { + "description": "Optional memory cost used to hash password.", + "type": "integer", + "example": 65536, + "format": "int32" + }, + "passwordParallel": { + "description": "Optional parallelization cost used to hash password.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "passwordLength": { + "description": "Optional hash length used to hash password.", + "type": "integer", + "example": 64, + "format": "int32" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } + } + } + } + } + }, + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt Modified.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "description": "Salt separator used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "description": "Signer key used to hash password.", + "type": "string", + "example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "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": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using SHA.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordVersion": { + "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'", + "type": "string", + "example": "sha1", + "title": "PasswordHash", + "oneOf": [ + { + "type": "string", + "enum": [ + "sha1" + ], + "title": "sha1" + }, + { + "type": "string", + "enum": [ + "sha224" + ], + "title": "sha224" + }, + { + "type": "string", + "enum": [ + "sha256" + ], + "title": "sha256" + }, + { + "type": "string", + "enum": [ + "sha384" + ], + "title": "sha384" + }, + { + "type": "string", + "enum": [ + "sha512\/224" + ], + "title": "sha512\/224" + }, + { + "type": "string", + "enum": [ + "sha512\/256" + ], + "title": "sha512\/256" + }, + { + "type": "string", + "enum": [ + "sha512" + ], + "title": "sha512" + }, + { + "type": "string", + "enum": [ + "sha3-224" + ], + "title": "sha3-224" + }, + { + "type": "string", + "enum": [ + "sha3-256" + ], + "title": "sha3-256" + }, + { + "type": "string", + "enum": [ + "sha3-384" + ], + "title": "sha3-384" + }, + { + "type": "string", + "enum": [ + "sha3-512" + ], + "title": "sha3-512" + } + ] + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", + "tags": [ + "users" + ], + "description": "Get a user by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "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": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", + "tags": [ + "users" + ], + "description": "Update the user email by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", + "tags": [ + "users" + ], + "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. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-impersonator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "impersonator": { + "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.", + "type": "boolean", + "example": false + } + }, + "required": [ + "impersonator" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", + "tags": [ + "users" + ], + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", + "type": "string", + "default": "recent()", + "example": "recent()" + }, + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "tags": [ + "users" + ], + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "subscriber" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/memberships": { + "get": { + "summary": "List user memberships", + "operationId": "usersListMemberships", + "tags": [ + "users" + ], + "description": "Get the user membership list by its unique ID.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "users\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", + "tags": [ + "users" + ], + "description": "Enable or disable MFA on a user account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "users", + "demo": "users\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", + "tags": [ + "users" + ], + "description": "Delete an authenticator app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { + "get": { + "summary": "Get MFA challenge", + "operationId": "usersGetMFAChallenge", + "tags": [ + "users" + ], + "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", + "responses": { + "200": { + "description": "MFA Challenge Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallengeSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-challenge.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "getMFAChallenge", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "challengeId" + ], + "required": [ + "userId", + "challengeId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaChallengeSecret" + } + ], + "description": "", + "demo": "users\/get-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "challengeId", + "description": "ID of the challenge.", + "required": true, + "schema": { + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", + "tags": [ + "users" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_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" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", + "tags": [ + "users" + ], + "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": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "tags": [ + "users" + ], + "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": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "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": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", + "tags": [ + "users" + ], + "description": "Update the user name by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", + "tags": [ + "users" + ], + "description": "Update the user password by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", + "tags": [ + "users" + ], + "description": "Update the user phone by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "User phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", + "tags": [ + "users" + ], + "description": "Get the user preferences by its unique ID.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", + "tags": [ + "users" + ], + "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", + "tags": [ + "users" + ], + "description": "Get the user sessions list by its unique ID.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.read", + "sessions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", + "tags": [ + "users" + ], + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", + "tags": [ + "users" + ], + "description": "Delete a user sessions by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", + "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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "type": "boolean", + "example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/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": { + "group": "targets", + "demo": "users\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", + "tags": [ + "users" + ], + "description": "Create a messaging target.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "providerType": { + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "type": "string", + "example": "email", + "title": "MessagingProviderType", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "sms" + ], + "title": "sms" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + } + ] + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", + "tags": [ + "users" + ], + "description": "Get a user's push notification target by ID.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "targets", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "default": "", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "tags": [ + "users" + ], + "description": "Delete a messaging target.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", + "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", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "length": { + "description": "Token length in characters. The default length is 6 characters", + "type": "integer", + "default": 6, + "example": 4, + "format": "int32" + }, + "expire": { + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", + "tags": [ + "users" + ], + "description": "Update the user email verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "description": "User email verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", + "tags": [ + "users" + ], + "description": "Update the user phone verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phoneVerification": { + "description": "User phone verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "phoneVerification" + ] + } + } + } + } + } + }, + "\/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": { + "group": "vectorsdb", + "demo": "vectorsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.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 columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "vectorsDBCreate", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/vectorsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "vectorsDBListSpecifications", + "tags": [ + "vectorsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "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": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/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": { + "group": "vectorsdb", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "vectorsdb", + "demo": "vectorsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "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": { + "group": "vectorsdb", + "demo": "vectorsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "collections", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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": { + "group": "collections", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimension.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "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": { + "group": "collections", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "collections", + "demo": "vectorsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimensions.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + } + }, + "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": { + "group": "collections", + "demo": "vectorsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "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": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "vectorsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "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": { + "group": "documents", + "demo": "vectorsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update metadata on explicitly selected documents", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_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": { + "group": "documents", + "demo": "vectorsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/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": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "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": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/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": { + "group": "indexes", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "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", + "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": { + "group": "indexes", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "hnsw_euclidean", + "title": "VectorsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "hnsw_euclidean" + ], + "title": "hnsw_euclidean" + }, + { + "type": "string", + "enum": [ + "hnsw_dot" + ], + "title": "hnsw_dot" + }, + { + "type": "string", + "enum": [ + "hnsw_cosine" + ], + "title": "hnsw_cosine" + }, + { + "type": "string", + "enum": [ + "object" + ], + "title": "object" + }, + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "embeddings" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/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": { + "group": "indexes", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "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", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "vectorsDBCreateFailover", + "tags": [ + "vectorsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "vectorsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "vectorsDBListOperations", + "tags": [ + "vectorsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "vectorsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "vectorsDBGetReplicas", + "tags": [ + "vectorsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "vectorsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "vectorsDBGetStatus", + "tags": [ + "vectorsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/waf\/rules": { + "get": { + "summary": "List WAF rules.", + "operationId": "wafListRules", + "tags": [ + "waf" + ], + "description": "List WAF rules for the current project.\n", + "responses": { + "200": { + "description": "WAF rule list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.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.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<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", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/waf\/rules\/bypass": { + "post": { + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", + "tags": [ + "waf" + ], + "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Leave empty for the API resource type.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Bypass other rules for an IP", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Office network", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", + "tags": [ + "waf" + ], + "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge": { + "post": { + "summary": "Create a challenge WAF rule.", + "operationId": "wafCreateChallengeRule", + "tags": [ + "waf" + ], + "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "default": "compute", + "example": "compute" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "default": 3, + "example": 1, + "format": "int32" + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "default": 1800, + "example": 900, + "format": "int32" + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Challenge requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Challenge sign-ins", + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge\/{ruleId}": { + "patch": { + "summary": "Update a challenge WAF rule.", + "operationId": "wafUpdateChallengeRule", + "tags": [ + "waf" + ], + "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "example": "compute", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "example": 900, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", + "tags": [ + "waf" + ], + "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Deny requests from an IP range", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Block abusive range", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny\/{ruleId}": { + "patch": { + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", + "tags": [ + "waf" + ], + "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "default": "ip", + "example": "ip" + }, + "strategy": { + "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", + "type": "string", + "default": "fixedWindow", + "example": "fixedWindow" + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + }, + "examples": { + "scoped": { + "summary": "Rate limit requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Limit sign-ins", + "limit": 10, + "interval": 60, + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit\/{ruleId}": { + "patch": { + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "example": "ip", + "nullable": true + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>" + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "default": [] + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + }, + "examples": { + "scoped": { + "summary": "Redirect requests for a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Moved page", + "location": "\/new-page", + "statusCode": 301, + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", + "tags": [ + "waf" + ], + "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>", + "nullable": true + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "string", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/{ruleId}": { + "get": { + "summary": "Get a WAF rule.", + "operationId": "wafGetRule", + "tags": [ + "waf" + ], + "description": "Get a WAF rule by its ID.\n", + "responses": { + "200": { + "description": "WafRule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", + "tags": [ + "waf" + ], + "description": "Delete a WAF rule.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/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": { + "group": null, + "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": [], + "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, 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", + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "webhookId": { + "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.", + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "secret": { + "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.", + "type": "string", + "example": "<SECRET>", + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + } + }, + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "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": { + "group": null, + "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": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "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.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "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": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "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": "tokens", + "description": "The Tokens service allows you to create and manage resource tokens for secure file access." + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "webhooks", + "description": "The Webhooks service allows you to manage your project webhooks." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + }, + { + "name": "mysql", + "description": "" + }, + { + "name": "postgresql", + "description": "" + }, + { + "name": "mongo", + "description": "" + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "domains", + "description": "" + }, + { + "name": "backups", + "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." + }, + { + "name": "activities", + "description": "The Activities service allows you to list and inspect project activity events." + }, + { + "name": "analytics", + "description": "" + }, + { + "name": "waf", + "description": "" + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "embeddings", + "description": "" + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "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." + } + ], + "components": { + "schemas": { + "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.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "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.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "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.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "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.", + "format": "int32", + "example": 5 + }, + "tables": { + "type": "array", + "description": "List of tables.", + "items": { + "$ref": "#\/components\/schemas\/table" + }, + "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.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/collection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "databaseList": { + "description": "Databases List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/database" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "indexList": { + "description": "Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "columnIndexList": { + "description": "Column Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "userList": { + "description": "Users List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of users that matched your query.", + "format": "int32", + "example": 5 + }, + "users": { + "type": "array", + "description": "List of users.", + "items": { + "$ref": "#\/components\/schemas\/user" + }, + "example": [] + } + }, + "required": [ + "total", + "users" + ], + "example": { + "total": 5, + "users": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "bucketList": { + "description": "Buckets List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of buckets that matched your query.", + "format": "int32", + "example": 5 + }, + "buckets": { + "type": "array", + "description": "List of buckets.", + "items": { + "$ref": "#\/components\/schemas\/bucket" + }, + "example": [] + } + }, + "required": [ + "total", + "buckets" + ], + "example": { + "total": 5, + "buckets": "" + } + }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "siteList": { + "description": "Sites List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sites that matched your query.", + "format": "int32", + "example": 5 + }, + "sites": { + "type": "array", + "description": "List of sites.", + "items": { + "$ref": "#\/components\/schemas\/site" + }, + "example": [] + } + }, + "required": [ + "total", + "sites" + ], + "example": { + "total": 5, + "sites": "" + } + }, + "functionList": { + "description": "Functions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of functions that matched your query.", + "format": "int32", + "example": 5 + }, + "functions": { + "type": "array", + "description": "List of functions.", + "items": { + "$ref": "#\/components\/schemas\/function" + }, + "example": [] + } + }, + "required": [ + "total", + "functions" + ], + "example": { + "total": 5, + "functions": "" + } + }, + "frameworkList": { + "description": "Frameworks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworks that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworks": { + "type": "array", + "description": "List of frameworks.", + "items": { + "$ref": "#\/components\/schemas\/framework" + }, + "example": [] + } + }, + "required": [ + "total", + "frameworks" + ], + "example": { + "total": 5, + "frameworks": "" + } + }, + "runtimeList": { + "description": "Runtimes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimes that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimes": { + "type": "array", + "description": "List of runtimes.", + "items": { + "$ref": "#\/components\/schemas\/runtime" + }, + "example": [] + } + }, + "required": [ + "total", + "runtimes" + ], + "example": { + "total": 5, + "runtimes": "" + } + }, + "deploymentList": { + "description": "Deployments List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of deployments that matched your query.", + "format": "int32", + "example": 5 + }, + "deployments": { + "type": "array", + "description": "List of deployments.", + "items": { + "$ref": "#\/components\/schemas\/deployment" + }, + "example": [] + } + }, + "required": [ + "total", + "deployments" + ], + "example": { + "total": 5, + "deployments": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "webhookList": { + "description": "Webhooks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of webhooks that matched your query.", + "format": "int32", + "example": 5 + }, + "webhooks": { + "type": "array", + "description": "List of webhooks.", + "items": { + "$ref": "#\/components\/schemas\/webhook" + }, + "example": [] + } + }, + "required": [ + "total", + "webhooks" + ], + "example": { + "total": 5, + "webhooks": "" + } + }, + "keyList": { + "description": "API Keys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/key" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "variableList": { + "description": "Variables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of variables that matched your query.", + "format": "int32", + "example": 5 + }, + "variables": { + "type": "array", + "description": "List of variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + } + }, + "required": [ + "total", + "variables" + ], + "example": { + "total": 5, + "variables": "" + } + }, + "mockNumberList": { + "description": "Mock Numbers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of mockNumbers that matched your query.", + "format": "int32", + "example": 5 + }, + "mockNumbers": { + "type": "array", + "description": "List of mockNumbers.", + "items": { + "$ref": "#\/components\/schemas\/mockNumber" + }, + "example": [] + } + }, + "required": [ + "total", + "mockNumbers" + ], + "example": { + "total": 5, + "mockNumbers": "" + } + }, + "policyList": { + "description": "Policies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies in the given project.", + "format": "int32", + "example": 10 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "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", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 10, + "policies": "" + } + }, + "emailTemplateList": { + "description": "Email Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/emailTemplate" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "proxyRuleList": { + "description": "Rule List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/proxyRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "providerList": { + "description": "Provider list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of providers that matched your query.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of providers.", + "items": { + "$ref": "#\/components\/schemas\/provider" + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "messageList": { + "description": "Message list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of messages that matched your query.", + "format": "int32", + "example": 5 + }, + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "#\/components\/schemas\/message" + }, + "example": [] + } + }, + "required": [ + "total", + "messages" + ], + "example": { + "total": 5, + "messages": "" + } + }, + "topicList": { + "description": "Topic list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of topics that matched your query.", + "format": "int32", + "example": 5 + }, + "topics": { + "type": "array", + "description": "List of topics.", + "items": { + "$ref": "#\/components\/schemas\/topic" + }, + "example": [] + } + }, + "required": [ + "total", + "topics" + ], + "example": { + "total": 5, + "topics": "" + } + }, + "subscriberList": { + "description": "Subscriber list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of subscribers that matched your query.", + "format": "int32", + "example": 5 + }, + "subscribers": { + "type": "array", + "description": "List of subscribers.", + "items": { + "$ref": "#\/components\/schemas\/subscriber" + }, + "example": [] + } + }, + "required": [ + "total", + "subscribers" + ], + "example": { + "total": 5, + "subscribers": "" + } + }, + "targetList": { + "description": "Target list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of targets that matched your query.", + "format": "int32", + "example": 5 + }, + "targets": { + "type": "array", + "description": "List of targets.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + } + }, + "required": [ + "total", + "targets" + ], + "example": { + "total": 5, + "targets": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "specificationList": { + "description": "Specifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of specifications that matched your query.", + "format": "int32", + "example": 5 + }, + "specifications": { + "type": "array", + "description": "List of specifications.", + "items": { + "$ref": "#\/components\/schemas\/specification" + }, + "example": [] + } + }, + "required": [ + "total", + "specifications" + ], + "example": { + "total": 5, + "specifications": "" + } + }, + "vectorsdbCollectionList": { + "description": "VectorsDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "format": "int32", + "example": 5 + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "example": [] + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, + "insightList": { + "description": "Insights List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of insights that matched your query.", + "format": "int32", + "example": 5 + }, + "insights": { + "type": "array", + "description": "List of insights.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "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.", + "format": "int32", + "example": 5 + }, + "reports": { + "type": "array", + "description": "List of reports.", + "items": { + "$ref": "#\/components\/schemas\/report" + }, + "example": [] + } + }, + "required": [ + "total", + "reports" + ], + "example": { + "total": 5, + "reports": "" + } + }, + "database": { + "description": "Database", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database name.", + "example": "My Database" + }, + "$createdAt": { + "type": "string", + "description": "Database creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "enabled": { + "type": "boolean", + "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "type": { + "description": "Database type.", + "example": "legacy", + "title": "DatabaseType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "legacy" + ], + "title": "legacy" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "mysql" + ], + "title": "mysql" + }, + { + "type": "string", + "enum": [ + "postgresql" + ], + "title": "postgresql" + }, + { + "type": "string", + "enum": [ + "mongodb" + ], + "title": "mongodb" + } + ] + }, + "status": { + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", + "readOnly": true, + "example": "ready", + "title": "DatabaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "provisioning" + ], + "title": "provisioning" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "inactive" + ], + "title": "inactive" + }, + { + "type": "string", + "enum": [ + "paused" + ], + "title": "paused" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "deleted" + ], + "title": "deleted" + }, + { + "type": "string", + "enum": [ + "restoring" + ], + "title": "restoring" + }, + { + "type": "string", + "enum": [ + "scaling" + ], + "title": "scaling" + }, + { + "type": "string", + "enum": [ + "upgrading" + ], + "title": "upgrading" + }, + { + "type": "string", + "enum": [ + "migrating" + ], + "title": "migrating" + }, + { + "type": "string", + "enum": [ + "pausing" + ], + "title": "pausing" + }, + { + "type": "string", + "enum": [ + "resuming" + ], + "title": "resuming" + }, + { + "type": "string", + "enum": [ + "failing-over" + ], + "title": "failing-over" + } + ], + "nullable": true + }, + "engine": { + "type": "string", + "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "postgresql", + "nullable": true + }, + "specification": { + "type": "string", + "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "s-2vcpu-2gb", + "nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "format": "int32", + "readOnly": true, + "example": 0, + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", + "readOnly": true, + "example": "", + "nullable": true + }, + "containerStatus": { + "type": "string", + "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "policies": { + "type": "array", + "description": "Database backup policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [], + "nullable": true + }, + "archives": { + "type": "array", + "description": "Database backup archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "enabled", + "type" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "My Database", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "enabled": false, + "type": "legacy", + "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, + "error": "", + "containerStatus": "active", + "lifecycleState": "active", + "policies": {}, + "archives": {} + } + }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "example": "nomic-embed-text" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "format": "int32", + "example": 768 + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "nomic-embed-text", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, + "collection": { + "description": "Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "attributeList": { + "description": "Attributes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of attributes in the given collection.", + "format": "int32", + "example": 5 + }, + "attributes": { + "type": "array", + "description": "List of attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "attributes" + ], + "example": { + "total": 5, + "attributes": "" + } + }, + "attributeString": { + "description": "AttributeString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeInteger": { + "description": "AttributeInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "integer" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeBigint": { + "description": "AttributeBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "bigint" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeFloat": { + "description": "AttributeFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "double" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "attributeBoolean": { + "description": "AttributeBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "boolean" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "attributeEmail": { + "description": "AttributeEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "attributeEnum": { + "description": "AttributeEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "attributeIp": { + "description": "AttributeIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "attributeUrl": { + "description": "AttributeURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "http:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "http:\/\/example.com" + } + }, + "attributeDatetime": { + "description": "AttributeDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "datetime" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeRelationship": { + "description": "AttributeRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedCollection": { + "type": "string", + "description": "The ID of the related collection.", + "example": "collection" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedCollection", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedCollection": "collection", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "attributePoint": { + "description": "AttributePoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "attributeLine": { + "description": "AttributeLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "attributePolygon": { + "description": "AttributePolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "attributeVarchar": { + "description": "AttributeVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeMediumtext": { + "description": "AttributeMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeLongtext": { + "description": "AttributeLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "vectorsdbCollection": { + "description": "VectorsDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "object": "#\/components\/schemas\/attributeObject", + "vector": "#\/components\/schemas\/attributeVector" + } + } + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 1536 + } + }, + "table": { + "description": "Table", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Table ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Table creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Table update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Table name.", + "example": "My Table" + }, + "enabled": { + "type": "boolean", + "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "rowSecurity": { + "type": "boolean", + "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "columns": { + "type": "array", + "description": "Table columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Table indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum row size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used row size in bytes based on defined columns.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "rowSecurity", + "columns", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Table", + "enabled": false, + "rowSecurity": true, + "columns": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "columnList": { + "description": "Columns List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of columns in the given table.", + "format": "int32", + "example": 5 + }, + "columns": { + "type": "array", + "description": "List of columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "columns" + ], + "example": { + "total": 5, + "columns": "" + } + }, + "columnString": { + "description": "ColumnString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnInteger": { + "description": "ColumnInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "integer" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnBigint": { + "description": "ColumnBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "bigint" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnFloat": { + "description": "ColumnFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "double" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "columnBoolean": { + "description": "ColumnBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "boolean" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "columnEmail": { + "description": "ColumnEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "columnEnum": { + "description": "ColumnEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "columnIp": { + "description": "ColumnIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "columnUrl": { + "description": "ColumnURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "https:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "https:\/\/example.com" + } + }, + "columnDatetime": { + "description": "ColumnDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "datetime" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "columnRelationship": { + "description": "ColumnRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedTable": { + "type": "string", + "description": "The ID of the related table.", + "example": "table" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedTable", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedTable": "table", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "columnPoint": { + "description": "ColumnPoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "columnLine": { + "description": "ColumnLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "columnPolygon": { + "description": "ColumnPolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "columnVarchar": { + "description": "ColumnVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnText": { + "description": "ColumnText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnMediumtext": { + "description": "ColumnMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnLongtext": { + "description": "ColumnLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "index": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "attributes": { + "type": "array", + "description": "Index attributes.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index attributes length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "attributes", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "attributes": [], + "lengths": [], + "orders": [] + } + }, + "columnIndex": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index Key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "type": "string", + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "columns": { + "type": "array", + "description": "Index columns.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index columns length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "columns", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "columns": [], + "lengths": [], + "orders": [] + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "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).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "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", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "bucket": { + "description": "Bucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Bucket creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Bucket update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "fileSecurity": { + "type": "boolean", + "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "name": { + "type": "string", + "description": "Bucket name.", + "example": "Documents" + }, + "enabled": { + "type": "boolean", + "description": "Bucket enabled.", + "example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size supported.", + "format": "int32", + "example": 100 + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions.", + "items": { + "type": "string" + }, + "example": [ + "jpg", + "png" + ] + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + }, + "encryption": { + "type": "boolean", + "description": "Bucket is encrypted.", + "example": false + }, + "antivirus": { + "type": "boolean", + "description": "Virus scanning is enabled.", + "example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "example": false + }, + "totalSize": { + "type": "integer", + "description": "Total size of this bucket in bytes.", + "format": "int32", + "example": 128 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "fileSecurity", + "name", + "enabled", + "maximumFileSize", + "allowedFileExtensions", + "compression", + "encryption", + "antivirus", + "transformations", + "totalSize" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "fileSecurity": true, + "name": "Documents", + "enabled": false, + "maximumFileSize": 100, + "allowedFileExtensions": [ + "jpg", + "png" + ], + "compression": "gzip", + "encryption": false, + "antivirus": false, + "transformations": false, + "totalSize": 128 + } + }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "files" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceType", + "expire", + "secret", + "accessedAt" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", + "resourceType": "files", + "expire": "2020-10-15T06:38:00.000+00:00", + "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "site": { + "description": "Site", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Site ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Site creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Site update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Site name.", + "example": "My Site" + }, + "enabled": { + "type": "boolean", + "description": "Site enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "example": false + }, + "framework": { + "type": "string", + "description": "Site framework.", + "example": "react" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Site's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "deploymentScreenshotLight": { + "type": "string", + "description": "Screenshot of active deployment with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "deploymentScreenshotDark": { + "type": "string", + "description": "Screenshot of active deployment with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentId": { + "type": "string", + "description": "Site's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "timeout": { + "type": "integer", + "description": "Site request timeout in seconds.", + "format": "int32", + "example": 300 + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the site dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the site.", + "example": "npm run build" + }, + "startCommand": { + "type": "string", + "description": "Custom command to use when starting site runtime.", + "example": "node custom-server.mjs" + }, + "outputDirectory": { + "type": "string", + "description": "The directory where the site build output is located.", + "example": "build" + }, + "installationId": { + "type": "string", + "description": "Site VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": "sites\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "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", + "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" + }, + "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" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for SSR executions.", + "example": "s-1vcpu-512mb" + }, + "buildRuntime": { + "type": "string", + "description": "Site build runtime.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework adapter.", + "example": "static" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "enabled", + "live", + "logging", + "framework", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "deploymentScreenshotLight", + "deploymentScreenshotDark", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "timeout", + "installCommand", + "buildCommand", + "startCommand", + "outputDirectory", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification", + "buildRuntime", + "adapter", + "fallbackFile" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Site", + "enabled": false, + "live": false, + "logging": false, + "framework": "react", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "deploymentScreenshotLight": "5e5ea5c16897e", + "deploymentScreenshotDark": "5e5ea5c16897e", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "timeout": 300, + "installCommand": "npm install", + "buildCommand": "npm run build", + "startCommand": "node custom-server.mjs", + "outputDirectory": "build", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "sites\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb", + "buildRuntime": "node-22", + "adapter": "static", + "fallbackFile": "index.html" + } + }, + "function": { + "description": "Function", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "execute": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "name": { + "type": "string", + "description": "Function name.", + "example": "My Function" + }, + "enabled": { + "type": "boolean", + "description": "Function enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "example": false + }, + "runtime": { + "type": "string", + "description": "Function execution and build runtime.", + "example": "python-3.8" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Function's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentId": { + "type": "string", + "description": "Function's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "schedule": { + "type": "string", + "description": "Function execution schedule in CRON format.", + "example": "5 4 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "version": { + "type": "string", + "description": "Version of Open Runtimes used for the function.", + "example": "v2" + }, + "installationId": { + "type": "string", + "description": "Function VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "functions\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "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", + "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" + }, + "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" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for executions.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "execute", + "name", + "enabled", + "live", + "logging", + "runtime", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "events", + "schedule", + "timeout", + "entrypoint", + "commands", + "version", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "execute": "users", + "name": "My Function", + "enabled": false, + "live": false, + "logging": false, + "runtime": "python-3.8", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "events": "account.create", + "schedule": "5 4 * * *", + "timeout": 300, + "entrypoint": "index.js", + "commands": "npm install", + "version": "v2", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "functions\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb" + } + }, + "runtime": { + "description": "Runtime", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Runtime ID.", + "example": "python-3.8" + }, + "key": { + "type": "string", + "description": "Parent runtime key.", + "example": "python" + }, + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "Python" + }, + "version": { + "type": "string", + "description": "Runtime version.", + "example": "3.8" + }, + "base": { + "type": "string", + "description": "Base Docker image used to build the runtime.", + "example": "python:3.8-alpine" + }, + "image": { + "type": "string", + "description": "Image name of Docker Hub.", + "example": "appwrite\\\/runtime-for-python:3.8" + }, + "logo": { + "type": "string", + "description": "Name of the logo image.", + "example": "python.png" + }, + "supports": { + "type": "array", + "description": "List of supported architectures.", + "items": { + "type": "string" + }, + "example": [ + "amd64" + ] + } + }, + "required": [ + "$id", + "key", + "name", + "version", + "base", + "image", + "logo", + "supports" + ], + "example": { + "$id": "python-3.8", + "key": "python", + "name": "Python", + "version": "3.8", + "base": "python:3.8-alpine", + "image": "appwrite\\\/runtime-for-python:3.8", + "logo": "python.png", + "supports": "amd64" + } + }, + "framework": { + "description": "Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "buildRuntime": { + "type": "string", + "description": "Default runtime version.", + "example": "node-22" + }, + "runtimes": { + "type": "array", + "description": "List of supported runtime versions.", + "items": { + "type": "string" + }, + "example": [ + "static-1", + "node-22" + ] + }, + "adapters": { + "type": "array", + "description": "List of supported adapters.", + "items": { + "$ref": "#\/components\/schemas\/frameworkAdapter" + }, + "example": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "required": [ + "key", + "name", + "buildRuntime", + "runtimes", + "adapters" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "buildRuntime": "node-22", + "runtimes": [ + "static-1", + "node-22" + ], + "adapters": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "frameworkAdapter": { + "description": "Framework Adapter", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Adapter key.", + "example": "static" + }, + "installCommand": { + "type": "string", + "description": "Default command to download dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Default command to build site into output directory.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Default output directory of build.", + "example": ".\/dist" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "key": "static", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/dist", + "fallbackFile": "index.html" + } + }, + "deployment": { + "description": "Deployment", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Deployment ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Deployment update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "Type of deployment.", + "example": "vcs" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "functions" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file to use to execute the deployment code.", + "example": "index.js" + }, + "sourceSize": { + "type": "integer", + "description": "The code size in bytes.", + "format": "int32", + "example": 128 + }, + "buildSize": { + "type": "integer", + "description": "The build output size in bytes.", + "format": "int32", + "example": 128 + }, + "totalSize": { + "type": "integer", + "description": "The total size in bytes (source and build output).", + "format": "int32", + "example": 128 + }, + "buildId": { + "type": "string", + "description": "The current build ID.", + "example": "5e5ea5c16897e" + }, + "activate": { + "type": "boolean", + "description": "Whether the deployment should be automatically activated.", + "example": true + }, + "screenshotLight": { + "type": "string", + "description": "Screenshot with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "screenshotDark": { + "type": "string", + "description": "Screenshot with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", + "example": "ready", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "building" + ], + "title": "building" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "canceled" + ], + "title": "canceled" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "buildLogs": { + "type": "string", + "description": "The build logs.", + "example": "Compiling source files..." + }, + "buildDuration": { + "type": "integer", + "description": "The current build time in seconds.", + "format": "int32", + "example": 128 + }, + "providerRepositoryName": { + "type": "string", + "description": "The name of the vcs provider repository", + "example": "database" + }, + "providerRepositoryOwner": { + "type": "string", + "description": "The name of the vcs provider repository owner", + "example": "utopia" + }, + "providerRepositoryUrl": { + "type": "string", + "description": "The url of the vcs provider repository", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" + }, + "providerCommitHash": { + "type": "string", + "description": "The commit hash of the vcs commit", + "example": "7c3f25d" + }, + "providerCommitAuthorUrl": { + "type": "string", + "description": "The url of vcs commit author", + "example": "https:\/\/github.com\/vermakhushboo" + }, + "providerCommitAuthor": { + "type": "string", + "description": "The name of vcs commit author", + "example": "Khushboo Verma" + }, + "providerCommitMessage": { + "type": "string", + "description": "The commit message", + "example": "Update index.js" + }, + "providerCommitUrl": { + "type": "string", + "description": "The url of the vcs commit", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" + }, + "providerBranch": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "0.7.x" + }, + "providerBranchUrl": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "resourceId", + "resourceType", + "entrypoint", + "sourceSize", + "buildSize", + "totalSize", + "buildId", + "activate", + "screenshotLight", + "screenshotDark", + "status", + "buildLogs", + "buildDuration", + "providerRepositoryName", + "providerRepositoryOwner", + "providerRepositoryUrl", + "providerCommitHash", + "providerCommitAuthorUrl", + "providerCommitAuthor", + "providerCommitMessage", + "providerCommitUrl", + "providerBranch", + "providerBranchUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "vcs", + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "entrypoint": "index.js", + "sourceSize": 128, + "buildSize": 128, + "totalSize": 128, + "buildId": "5e5ea5c16897e", + "activate": true, + "screenshotLight": "5e5ea5c16897e", + "screenshotDark": "5e5ea5c16897e", + "status": "ready", + "buildLogs": "Compiling source files...", + "buildDuration": 128, + "providerRepositoryName": "database", + "providerRepositoryOwner": "utopia", + "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", + "providerCommitHash": "7c3f25d", + "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", + "providerCommitAuthor": "Khushboo Verma", + "providerCommitMessage": "Update index.js", + "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", + "providerBranch": "0.7.x", + "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "project": { + "description": "Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Project creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Project update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Project name.", + "example": "New Project" + }, + "teamId": { + "type": "string", + "description": "Project team ID.", + "example": "1592981250" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "smtpEnabled": { + "type": "boolean", + "description": "Status for custom SMTP", + "example": false + }, + "smtpSenderName": { + "type": "string", + "description": "SMTP sender name", + "example": "John Appwrite" + }, + "smtpSenderEmail": { + "type": "string", + "description": "SMTP sender email", + "example": "john@appwrite.io" + }, + "smtpReplyToName": { + "type": "string", + "description": "SMTP reply to name", + "example": "Support Team" + }, + "smtpReplyToEmail": { + "type": "string", + "description": "SMTP reply to email", + "example": "support@appwrite.io" + }, + "smtpHost": { + "type": "string", + "description": "SMTP server host name", + "example": "mail.appwrite.io" + }, + "smtpPort": { + "type": "integer", + "description": "SMTP server port", + "format": "int32", + "example": 25 + }, + "smtpUsername": { + "type": "string", + "description": "SMTP server username", + "example": "emailuser" + }, + "smtpPassword": { + "type": "string", + "description": "SMTP server password. This property is write-only and always returned empty.", + "format": "password", + "example": "smtp-password" + }, + "smtpSecure": { + "type": "string", + "description": "SMTP server secure protocol", + "example": "tls" + }, + "pingCount": { + "type": "integer", + "description": "Number of times the ping was received for this project.", + "format": "int32", + "example": 1 + }, + "pingedAt": { + "type": "string", + "description": "Last ping datetime in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "labels": { + "type": "array", + "description": "Labels for the project.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "status": { + "type": "string", + "description": "Project status", + "example": "active" + }, + "onboarding": { + "type": "object", + "additionalProperties": true, + "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", + "example": {} + }, + "authMethods": { + "type": "array", + "description": "List of auth methods.", + "items": { + "$ref": "#\/components\/schemas\/projectAuthMethod" + }, + "example": [] + }, + "services": { + "type": "array", + "description": "List of services.", + "items": { + "$ref": "#\/components\/schemas\/projectService" + }, + "example": [] + }, + "protocols": { + "type": "array", + "description": "List of protocols.", + "items": { + "$ref": "#\/components\/schemas\/projectProtocol" + }, + "example": [] + }, + "blocks": { + "type": "array", + "description": "Project blocks information", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "example": [] + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "wafEnabled": { + "type": "boolean", + "description": "Whether WAF enforcement is enabled for the project.", + "example": true, + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "firstAccessedAt": { + "type": "string", + "description": "First time the project received a non-console API request. Empty until the project is used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "mcpAccessedAt": { + "type": "string", + "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "oAuth2ServerEnabled": { + "type": "boolean", + "description": "OAuth2 server status", + "example": false, + "nullable": true + }, + "oAuth2ServerAuthorizationUrl": { + "type": "string", + "description": "OAuth2 server authorization URL", + "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true + }, + "oAuth2ServerScopes": { + "type": "array", + "description": "OAuth2 server allowed scopes", + "items": { + "type": "string" + }, + "example": [ + "read", + "write" + ], + "nullable": true + }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "example": [ + "read" + ], + "nullable": true + }, + "oAuth2ServerInstallationScopes": { + "type": "array", + "description": "Scopes an application may request when installed on a team", + "items": { + "type": "string" + }, + "example": [ + "project:all" + ], + "nullable": true + }, + "oAuth2ServerAuthorizationDetailsTypes": { + "type": "array", + "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "items": { + "type": "string" + }, + "example": [ + "calendar" + ], + "nullable": true + }, + "oAuth2ServerAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for confidential clients", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for confidential clients", + "format": "int32", + "example": 86400, + "nullable": true + }, + "oAuth2ServerPublicAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerPublicRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 2592000, + "nullable": true + }, + "oAuth2ServerInstallationAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for app installation access tokens", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerConfidentialPkce": { + "type": "boolean", + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "example": false, + "nullable": true + }, + "oAuth2ServerVerificationUrl": { + "type": "string", + "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", + "example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true + }, + "oAuth2ServerUserCodeLength": { + "type": "integer", + "description": "Number of characters in the device flow user code, excluding the formatting separator.", + "format": "int32", + "example": 8, + "nullable": true + }, + "oAuth2ServerUserCodeFormat": { + "type": "string", + "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", + "example": "alphanumeric", + "nullable": true + }, + "oAuth2ServerDeviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes.", + "format": "int32", + "example": 600, + "nullable": true + }, + "oAuth2ServerDiscoveryUrl": { + "type": "string", + "description": "OAuth2 server discovery URL", + "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "teamId", + "region", + "smtpEnabled", + "smtpSenderName", + "smtpSenderEmail", + "smtpReplyToName", + "smtpReplyToEmail", + "smtpHost", + "smtpPort", + "smtpUsername", + "smtpPassword", + "smtpSecure", + "pingCount", + "pingedAt", + "labels", + "status", + "onboarding", + "authMethods", + "services", + "protocols", + "blocks", + "consoleAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "New Project", + "teamId": "1592981250", + "region": "fra", + "smtpEnabled": false, + "smtpSenderName": "John Appwrite", + "smtpSenderEmail": "john@appwrite.io", + "smtpReplyToName": "Support Team", + "smtpReplyToEmail": "support@appwrite.io", + "smtpHost": "mail.appwrite.io", + "smtpPort": 25, + "smtpUsername": "emailuser", + "smtpPassword": "smtp-password", + "smtpSecure": "tls", + "pingCount": 1, + "pingedAt": "2020-10-15T06:38:00.000+00:00", + "labels": [ + "vip" + ], + "status": "active", + "onboarding": {}, + "authMethods": {}, + "services": {}, + "protocols": {}, + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", + "wafEnabled": true, + "billingLimits": "", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", + "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", + "oAuth2ServerEnabled": false, + "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "oAuth2ServerScopes": [ + "read", + "write" + ], + "oAuth2ServerDefaultScopes": [ + "read" + ], + "oAuth2ServerInstallationScopes": [ + "project:all" + ], + "oAuth2ServerAuthorizationDetailsTypes": [ + "calendar" + ], + "oAuth2ServerAccessTokenDuration": 3600, + "oAuth2ServerRefreshTokenDuration": 86400, + "oAuth2ServerPublicAccessTokenDuration": 3600, + "oAuth2ServerPublicRefreshTokenDuration": 2592000, + "oAuth2ServerInstallationAccessTokenDuration": 3600, + "oAuth2ServerConfidentialPkce": false, + "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", + "oAuth2ServerUserCodeLength": 8, + "oAuth2ServerUserCodeFormat": "alphanumeric", + "oAuth2ServerDeviceCodeDuration": 600, + "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + } + }, + "projectAuthMethod": { + "description": "ProjectAuthMethod", + "type": "object", + "properties": { + "$id": { + "description": "Auth method ID.", + "example": "email-password", + "title": "ProjectAuthMethodId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Auth method status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "email-password", + "enabled": false + } + }, + "projectService": { + "description": "ProjectService", + "type": "object", + "properties": { + "$id": { + "description": "Service ID.", + "example": "sites", + "title": "ProjectServiceId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Service status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "sites", + "enabled": false + } + }, + "projectProtocol": { + "description": "ProjectProtocol", + "type": "object", + "properties": { + "$id": { + "description": "Protocol ID.", + "example": "graphql", + "title": "ProjectProtocolId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "graphql", + "enabled": false + } + }, + "webhook": { + "description": "Webhook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Webhook ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Webhook creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Webhook update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Webhook name.", + "example": "My Webhook" + }, + "url": { + "type": "string", + "description": "Webhook URL endpoint.", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "type": "array", + "description": "Webhook trigger events.", + "items": { + "type": "string" + }, + "example": [ + "databases.tables.update", + "databases.collections.update" + ] + }, + "tls": { + "type": "boolean", + "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "example": true + }, + "authUsername": { + "type": "string", + "description": "HTTP basic authentication username.", + "example": "username" + }, + "authPassword": { + "type": "string", + "description": "HTTP basic authentication password. Write-only: always returned empty.", + "format": "password", + "example": "webhook-password" + }, + "secret": { + "type": "string", + "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", + "example": "ad3d581ca230e2b7059c545e5a" + }, + "enabled": { + "type": "boolean", + "description": "Indicates if this webhook is enabled.", + "example": true + }, + "logs": { + "type": "string", + "description": "Webhook error logs from the most recent failure.", + "example": "Failed to connect to remote server." + }, + "attempts": { + "type": "integer", + "description": "Number of consecutive failed webhook attempts.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "url", + "events", + "tls", + "authUsername", + "authPassword", + "secret", + "enabled", + "logs", + "attempts" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Webhook", + "url": "https:\/\/example.com\/webhook", + "events": [ + "databases.tables.update", + "databases.collections.update" + ], + "tls": true, + "authUsername": "username", + "authPassword": "webhook-password", + "secret": "ad3d581ca230e2b7059c545e5a", + "enabled": true, + "logs": "Failed to connect to remote server.", + "attempts": 10 + } + }, + "key": { + "description": "Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "ephemeralKey": { + "description": "Ephemeral Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "mockNumber": { + "description": "Mock Number", + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", + "example": "+1612842323" + }, + "otp": { + "type": "string", + "description": "Mock OTP for the number. ", + "example": "123456" + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "number", + "otp", + "$createdAt", + "$updatedAt" + ], + "example": { + "number": "+1612842323", + "otp": "123456", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oAuth2Github": { + "description": "OAuth2GitHub", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", + "example": "e4d87900000000540733" + }, + "clientSecret": { + "type": "string", + "description": "GitHub OAuth2 client secret.", + "example": "5e07c00000000000000000000000000000198bcc" + }, + "prompt": { + "type": "array", + "description": "GitHub OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "select_account" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "e4d87900000000540733", + "clientSecret": "5e07c00000000000000000000000000000198bcc", + "prompt": [ + "select_account" + ] + } + }, + "oAuth2Discord": { + "description": "OAuth2Discord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Discord OAuth2 client ID.", + "example": "950722000000343754" + }, + "clientSecret": { + "type": "string", + "description": "Discord OAuth2 client secret.", + "example": "YmPXnM000000000000000000002zFg5D" + }, + "prompt": { + "type": "array", + "description": "Discord OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "950722000000343754", + "clientSecret": "YmPXnM000000000000000000002zFg5D", + "prompt": [ + "none" + ] + } + }, + "oAuth2Figma": { + "description": "OAuth2Figma", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Figma OAuth2 client ID.", + "example": "byay5H0000000000VtiI40" + }, + "clientSecret": { + "type": "string", + "description": "Figma OAuth2 client secret.", + "example": "yEpOYn0000000000000000004iIsU5" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "byay5H0000000000VtiI40", + "clientSecret": "yEpOYn0000000000000000004iIsU5" + } + }, + "oAuth2Dropbox": { + "description": "OAuth2Dropbox", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appKey": { + "type": "string", + "description": "Dropbox OAuth2 app key.", + "example": "jl000000000009t" + }, + "appSecret": { + "type": "string", + "description": "Dropbox OAuth2 app secret.", + "example": "g200000000000vw" + } + }, + "required": [ + "$id", + "enabled", + "appKey", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appKey": "jl000000000009t", + "appSecret": "g200000000000vw" + } + }, + "oAuth2Dailymotion": { + "description": "OAuth2Dailymotion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "apiKey": { + "type": "string", + "description": "Dailymotion OAuth2 API key.", + "example": "07a9000000000000067f" + }, + "apiSecret": { + "type": "string", + "description": "Dailymotion OAuth2 API secret.", + "example": "a399a90000000000000000000000000000d90639" + } + }, + "required": [ + "$id", + "enabled", + "apiKey", + "apiSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "apiKey": "07a9000000000000067f", + "apiSecret": "a399a90000000000000000000000000000d90639" + } + }, + "oAuth2Bitbucket": { + "description": "OAuth2Bitbucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "key": { + "type": "string", + "description": "Bitbucket OAuth2 key.", + "example": "Knt70000000000ByRc" + }, + "secret": { + "type": "string", + "description": "Bitbucket OAuth2 secret.", + "example": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "required": [ + "$id", + "enabled", + "key", + "secret" + ], + "example": { + "$id": "github", + "enabled": false, + "key": "Knt70000000000ByRc", + "secret": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "oAuth2Bitly": { + "description": "OAuth2Bitly", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Bitly OAuth2 client ID.", + "example": "d95151000000000000000000000000000067af9b" + }, + "clientSecret": { + "type": "string", + "description": "Bitly OAuth2 client secret.", + "example": "a13e250000000000000000000000000000d73095" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "d95151000000000000000000000000000067af9b", + "clientSecret": "a13e250000000000000000000000000000d73095" + } + }, + "oAuth2Box": { + "description": "OAuth2Box", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Box OAuth2 client ID.", + "example": "deglcs00000000000000000000x2og6y" + }, + "clientSecret": { + "type": "string", + "description": "Box OAuth2 client secret.", + "example": "OKM1f100000000000000000000eshEif" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "deglcs00000000000000000000x2og6y", + "clientSecret": "OKM1f100000000000000000000eshEif" + } + }, + "oAuth2Autodesk": { + "description": "OAuth2Autodesk", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Autodesk OAuth2 client ID.", + "example": "5zw90v00000000000000000000kVYXN7" + }, + "clientSecret": { + "type": "string", + "description": "Autodesk OAuth2 client secret.", + "example": "7I000000000000MW" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "5zw90v00000000000000000000kVYXN7", + "clientSecret": "7I000000000000MW" + } + }, + "oAuth2Google": { + "description": "OAuth2Google", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Google OAuth2 client ID.", + "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" + }, + "clientSecret": { + "type": "string", + "description": "Google OAuth2 client secret.", + "example": "GOCSPX-2k8gsR0000000000000000VNahJj" + }, + "prompt": { + "type": "array", + "description": "Google OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "consent" + ] + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", + "items": { + "type": "string" + }, + "example": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", + "prompt": [ + "consent" + ], + "nativeEnabled": false, + "nativeClientIds": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "oAuth2Zoom": { + "description": "OAuth2Zoom", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoom OAuth2 client ID.", + "example": "QMAC00000000000000w0AQ" + }, + "clientSecret": { + "type": "string", + "description": "Zoom OAuth2 client secret.", + "example": "GAWsG4000000000000000000007U01ON" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "QMAC00000000000000w0AQ", + "clientSecret": "GAWsG4000000000000000000007U01ON" + } + }, + "oAuth2Zoho": { + "description": "OAuth2Zoho", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoho OAuth2 client ID.", + "example": "1000.83C178000000000000000000RPNX0B" + }, + "clientSecret": { + "type": "string", + "description": "Zoho OAuth2 client secret.", + "example": "fb5cac000000000000000000000000000000a68f6e" + }, + "prompt": { + "type": "array", + "description": "Zoho OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "consent" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "1000.83C178000000000000000000RPNX0B", + "clientSecret": "fb5cac000000000000000000000000000000a68f6e", + "prompt": [ + "consent" + ] + } + }, + "oAuth2Yandex": { + "description": "OAuth2Yandex", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yandex OAuth2 client ID.", + "example": "6a8a6a0000000000000000000091483c" + }, + "clientSecret": { + "type": "string", + "description": "Yandex OAuth2 client secret.", + "example": "bbf98500000000000000000000c75a63" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a8a6a0000000000000000000091483c", + "clientSecret": "bbf98500000000000000000000c75a63" + } + }, + "oAuth2X": { + "description": "OAuth2X", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "X OAuth2 customer key.", + "example": "slzZV0000000000000NFLaWT" + }, + "secretKey": { + "type": "string", + "description": "X OAuth2 secret key.", + "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "slzZV0000000000000NFLaWT", + "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "oAuth2WordPress": { + "description": "OAuth2WordPress", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "WordPress OAuth2 client ID.", + "example": "130005" + }, + "clientSecret": { + "type": "string", + "description": "WordPress OAuth2 client secret.", + "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "130005", + "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "oAuth2Webflow": { + "description": "OAuth2Webflow", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Webflow OAuth2 client ID.", + "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" + }, + "clientSecret": { + "type": "string", + "description": "Webflow OAuth2 client secret.", + "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", + "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "oAuth2Twitch": { + "description": "OAuth2Twitch", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Twitch OAuth2 client ID.", + "example": "vvi0in000000000000000000ikmt9p" + }, + "clientSecret": { + "type": "string", + "description": "Twitch OAuth2 client secret.", + "example": "pmapue000000000000000000zylw3v" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "vvi0in000000000000000000ikmt9p", + "clientSecret": "pmapue000000000000000000zylw3v" + } + }, + "oAuth2Stripe": { + "description": "OAuth2Stripe", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Stripe OAuth2 client ID.", + "example": "ca_UKibXX0000000000000000000006byvR" + }, + "apiSecretKey": { + "type": "string", + "description": "Stripe OAuth2 API secret key.", + "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "apiSecretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "ca_UKibXX0000000000000000000006byvR", + "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "oAuth2Spotify": { + "description": "OAuth2Spotify", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Spotify OAuth2 client ID.", + "example": "6ec271000000000000000000009beace" + }, + "clientSecret": { + "type": "string", + "description": "Spotify OAuth2 client secret.", + "example": "db068a000000000000000000008b5b9f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6ec271000000000000000000009beace", + "clientSecret": "db068a000000000000000000008b5b9f" + } + }, + "oAuth2Slack": { + "description": "OAuth2Slack", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Slack OAuth2 client ID.", + "example": "23000000089.15000000000023" + }, + "clientSecret": { + "type": "string", + "description": "Slack OAuth2 client secret.", + "example": "81656000000000000000000000f3d2fd" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "23000000089.15000000000023", + "clientSecret": "81656000000000000000000000f3d2fd" + } + }, + "oAuth2Podio": { + "description": "OAuth2Podio", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Podio OAuth2 client ID.", + "example": "appwrite-oauth-test-app" + }, + "clientSecret": { + "type": "string", + "description": "Podio OAuth2 client secret.", + "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-oauth-test-app", + "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "oAuth2Notion": { + "description": "OAuth2Notion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauthClientId": { + "type": "string", + "description": "Notion OAuth2 client ID.", + "example": "341d8700-0000-0000-0000-000000446ee3" + }, + "oauthClientSecret": { + "type": "string", + "description": "Notion OAuth2 client secret.", + "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "required": [ + "$id", + "enabled", + "oauthClientId", + "oauthClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", + "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "oAuth2Salesforce": { + "description": "OAuth2Salesforce", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "Salesforce OAuth2 consumer key.", + "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" + }, + "customerSecret": { + "type": "string", + "description": "Salesforce OAuth2 consumer secret.", + "example": "3w000000000000e2" + }, + "prompt": { + "type": "array", + "description": "Salesforce OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "login" + ] + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "customerSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "customerSecret": "3w000000000000e2", + "prompt": [ + "login" + ] + } + }, + "oAuth2Yahoo": { + "description": "OAuth2Yahoo", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yahoo OAuth2 client ID.", + "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" + }, + "clientSecret": { + "type": "string", + "description": "Yahoo OAuth2 client secret.", + "example": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "clientSecret": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "oAuth2Cloudflare": { + "description": "OAuth2Cloudflare", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Cloudflare OAuth2 client ID.", + "example": "4b866000000000000000000000c9e4e2" + }, + "clientSecret": { + "type": "string", + "description": "Cloudflare OAuth2 client secret.", + "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "4b866000000000000000000000c9e4e2", + "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "oAuth2HuggingFace": { + "description": "OAuth2HuggingFace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Hugging Face OAuth2 client ID.", + "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" + }, + "clientSecret": { + "type": "string", + "description": "Hugging Face OAuth2 client secret.", + "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "oAuth2Linkedin": { + "description": "OAuth2Linkedin", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "LinkedIn OAuth2 client ID.", + "example": "770000000000dv" + }, + "primaryClientSecret": { + "type": "string", + "description": "LinkedIn OAuth2 primary client secret.", + "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "primaryClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "770000000000dv", + "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "oAuth2Disqus": { + "description": "OAuth2Disqus", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "publicKey": { + "type": "string", + "description": "Disqus OAuth2 public key.", + "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + }, + "secretKey": { + "type": "string", + "description": "Disqus OAuth2 secret key.", + "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "required": [ + "$id", + "enabled", + "publicKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "oAuth2Amazon": { + "description": "OAuth2Amazon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Amazon OAuth2 client ID.", + "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + }, + "clientSecret": { + "type": "string", + "description": "Amazon OAuth2 client secret.", + "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "oAuth2Etsy": { + "description": "OAuth2Etsy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "keyString": { + "type": "string", + "description": "Etsy OAuth2 keystring.", + "example": "nsgzxh0000000000008j85a2" + }, + "sharedSecret": { + "type": "string", + "description": "Etsy OAuth2 shared secret.", + "example": "tp000000ru" + } + }, + "required": [ + "$id", + "enabled", + "keyString", + "sharedSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "keyString": "nsgzxh0000000000008j85a2", + "sharedSecret": "tp000000ru" + } + }, + "oAuth2Facebook": { + "description": "OAuth2Facebook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appId": { + "type": "string", + "description": "Facebook OAuth2 app ID.", + "example": "260600000007694" + }, + "appSecret": { + "type": "string", + "description": "Facebook OAuth2 app secret.", + "example": "2d0b2800000000000000000000d38af4" + } + }, + "required": [ + "$id", + "enabled", + "appId", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appId": "260600000007694", + "appSecret": "2d0b2800000000000000000000d38af4" + } + }, + "oAuth2Tradeshift": { + "description": "OAuth2Tradeshift", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauth2ClientId": { + "type": "string", + "description": "Tradeshift OAuth2 client ID.", + "example": "appwrite-test-org.appwrite-test-app" + }, + "oauth2ClientSecret": { + "type": "string", + "description": "Tradeshift OAuth2 client secret.", + "example": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "required": [ + "$id", + "enabled", + "oauth2ClientId", + "oauth2ClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauth2ClientId": "appwrite-test-org.appwrite-test-app", + "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "oAuth2Paypal": { + "description": "OAuth2Paypal", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "PayPal OAuth2 client ID.", + "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + }, + "secretKey": { + "type": "string", + "description": "PayPal OAuth2 secret key.", + "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "oAuth2Gitlab": { + "description": "OAuth2Gitlab", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "GitLab OAuth2 application ID.", + "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" + }, + "secret": { + "type": "string", + "description": "GitLab OAuth2 secret.", + "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" + }, + "endpoint": { + "type": "string", + "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", + "example": "https:\/\/gitlab.com" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "secret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "endpoint": "https:\/\/gitlab.com" + } + }, + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Appwrite OAuth2 client ID.", + "example": "6a42000000000000b5a0" + }, + "clientSecret": { + "type": "string", + "description": "Appwrite OAuth2 client secret.", + "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "oAuth2Authentik": { + "description": "OAuth2Authentik", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Authentik OAuth2 client ID.", + "example": "dTKOPa0000000000000000000000000000e7G8hv" + }, + "clientSecret": { + "type": "string", + "description": "Authentik OAuth2 client secret.", + "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" + }, + "endpoint": { + "type": "string", + "description": "Authentik OAuth2 endpoint domain.", + "example": "example.authentik.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dTKOPa0000000000000000000000000000e7G8hv", + "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "endpoint": "example.authentik.com" + } + }, + "oAuth2Auth0": { + "description": "OAuth2Auth0", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Auth0 OAuth2 client ID.", + "example": "OaOkIA000000000000000000005KLSYq" + }, + "clientSecret": { + "type": "string", + "description": "Auth0 OAuth2 client secret.", + "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" + }, + "prompt": { + "type": "array", + "description": "Auth0 OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "endpoint": { + "type": "string", + "description": "Auth0 OAuth2 endpoint domain.", + "example": "example.us.auth0.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "OaOkIA000000000000000000005KLSYq", + "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "prompt": [ + "none" + ], + "endpoint": "example.us.auth0.com" + } + }, + "oAuth2FusionAuth": { + "description": "OAuth2FusionAuth", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "FusionAuth OAuth2 client ID.", + "example": "b2222c00-0000-0000-0000-000000862097" + }, + "clientSecret": { + "type": "string", + "description": "FusionAuth OAuth2 client secret.", + "example": "Jx4s0C0000000000000000000000000000000wGqLsc" + }, + "endpoint": { + "type": "string", + "description": "FusionAuth OAuth2 endpoint domain.", + "example": "example.fusionauth.io" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "b2222c00-0000-0000-0000-000000862097", + "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", + "endpoint": "example.fusionauth.io" + } + }, + "oAuth2Keycloak": { + "description": "OAuth2Keycloak", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Keycloak OAuth2 client ID.", + "example": "appwrite-o0000000st-app" + }, + "clientSecret": { + "type": "string", + "description": "Keycloak OAuth2 client secret.", + "example": "jdjrJd00000000000000000000HUsaZO" + }, + "endpoint": { + "type": "string", + "description": "Keycloak OAuth2 endpoint domain.", + "example": "keycloak.example.com" + }, + "realmName": { + "type": "string", + "description": "Keycloak OAuth2 realm name.", + "example": "appwrite-realm" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint", + "realmName" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-o0000000st-app", + "clientSecret": "jdjrJd00000000000000000000HUsaZO", + "endpoint": "keycloak.example.com", + "realmName": "appwrite-realm" + } + }, + "oAuth2Oidc": { + "description": "OAuth2Oidc", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "OpenID Connect OAuth2 client ID.", + "example": "qibI2x0000000000000000000000000006L2YFoG" + }, + "clientSecret": { + "type": "string", + "description": "OpenID Connect OAuth2 client secret.", + "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" + }, + "prompt": { + "type": "array", + "description": "OpenID Connect prompt values controlling the authentication and consent screens.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/authorize" + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/token" + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", + "format": "int32", + "example": 3600, + "nullable": true + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "wellKnownURL", + "authorizationURL", + "tokenURL", + "userInfoURL" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "qibI2x0000000000000000000000000006L2YFoG", + "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "prompt": [ + "none" + ], + "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", + "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", + "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", + "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", + "maxAge": 3600 + } + }, + "oAuth2Okta": { + "description": "OAuth2Okta", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Okta OAuth2 client ID.", + "example": "0oa00000000000000698" + }, + "clientSecret": { + "type": "string", + "description": "Okta OAuth2 client secret.", + "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" + }, + "prompt": { + "type": "array", + "description": "Okta OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "domain": { + "type": "string", + "description": "Okta OAuth2 domain.", + "example": "trial-6400025.okta.com" + }, + "authorizationServerId": { + "type": "string", + "description": "Okta OAuth2 authorization server ID.", + "example": "aus000000000000000h7z" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "domain", + "authorizationServerId" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "0oa00000000000000698", + "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "prompt": [ + "none" + ], + "domain": "trial-6400025.okta.com", + "authorizationServerId": "aus000000000000000h7z" + } + }, + "oAuth2Kick": { + "description": "OAuth2Kick", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kick OAuth2 client ID.", + "example": "01KQ7C00000000000001MFHS32" + }, + "clientSecret": { + "type": "string", + "description": "Kick OAuth2 client secret.", + "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "01KQ7C00000000000001MFHS32", + "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "oAuth2Apple": { + "description": "OAuth2Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "apple" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "serviceId": { + "type": "string", + "description": "Apple OAuth2 service ID.", + "example": "ip.appwrite.app.web" + }, + "keyId": { + "type": "string", + "description": "Apple OAuth2 key ID.", + "example": "P4000000N8" + }, + "teamId": { + "type": "string", + "description": "Apple OAuth2 team ID.", + "example": "D4000000R6" + }, + "p8File": { + "type": "string", + "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", + "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", + "items": { + "type": "string" + }, + "example": [ + "com.example.app" + ] + } + }, + "required": [ + "$id", + "enabled", + "serviceId", + "keyId", + "teamId", + "p8File", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "apple", + "enabled": false, + "serviceId": "ip.appwrite.app.web", + "keyId": "P4000000N8", + "teamId": "D4000000R6", + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "nativeEnabled": false, + "nativeClientIds": [ + "com.example.app" + ] + } + }, + "oAuth2Microsoft": { + "description": "OAuth2Microsoft", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "Microsoft OAuth2 application ID.", + "example": "00001111-aaaa-2222-bbbb-3333cccc4444" + }, + "applicationSecret": { + "type": "string", + "description": "Microsoft OAuth2 application secret.", + "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" + }, + "prompt": { + "type": "array", + "description": "Microsoft OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", + "example": "common" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "applicationSecret", + "prompt", + "tenant" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", + "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "prompt": [ + "none" + ], + "tenant": "common" + } + }, + "oAuth2Resend": { + "description": "OAuth2Resend", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Resend OAuth2 client ID.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "clientSecret": { + "type": "string", + "description": "Resend OAuth2 client secret.", + "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "oAuth2TikTok": { + "description": "OAuth2TikTok", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "TikTok OAuth2 client key.", + "example": "awz000000000tyw0" + }, + "clientSecret": { + "type": "string", + "description": "TikTok OAuth2 client secret.", + "example": "6wXewM00000000000000000000yXnite" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "awz000000000tyw0", + "clientSecret": "6wXewM00000000000000000000yXnite" + } + }, + "oAuth2Kakao": { + "description": "OAuth2Kakao", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kakao OAuth2 REST API key.", + "example": "839ff5000000000000000000013206de" + }, + "clientSecret": { + "type": "string", + "description": "Kakao OAuth2 client secret.", + "example": "jLNVOK00000000000000000000yJebea" + }, + "prompt": { + "type": "array", + "description": "Kakao OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "839ff5000000000000000000013206de", + "clientSecret": "jLNVOK00000000000000000000yJebea", + "prompt": [ + "none" + ] + } + }, + "oAuth2ProviderList": { + "description": "OAuth2 Providers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers in the given project.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of OAuth2 providers.", + "items": { + "anyOf": [ + { + "$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\/oAuth2Webflow" + }, + { + "$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\/oAuth2Appwrite" + }, + { + "$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" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "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", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "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", + "appwrite": "#\/components\/schemas\/oAuth2Appwrite", + "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", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "policyPasswordDictionary": { + "description": "Policy Password Dictionary", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password dictionary policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordHistory": { + "description": "Policy Password History", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Password history length. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 5 + } + }, + "policyPasswordStrength": { + "description": "Policy Password Strength", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "min": { + "type": "integer", + "description": "Minimum password length required for user passwords.", + "format": "int32", + "example": 12 + }, + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "example": true + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "example": true + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "example": true + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "example": true + } + }, + "required": [ + "$id", + "min", + "uppercase", + "lowercase", + "number", + "symbols" + ], + "example": { + "$id": "password-dictionary", + "min": 12, + "uppercase": true, + "lowercase": true, + "number": true, + "symbols": true + } + }, + "policyPasswordPersonalData": { + "description": "Policy Password Personal Data", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password personal data policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordPwned": { + "description": "Policy Password Pwned", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", + "example": true + }, + "sessions": { + "type": "boolean", + "description": "Whether a sign-in with a breached password is refused until the password is reset.", + "example": false + }, + "users": { + "type": "boolean", + "description": "Whether a breached password is rejected when a user signs up or sets a new password.", + "example": false + } + }, + "required": [ + "$id", + "enabled", + "sessions", + "users" + ], + "example": { + "$id": "password-dictionary", + "enabled": true, + "sessions": false, + "users": false + } + }, + "policySessionAlert": { + "description": "Policy Session Alert", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session alert policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionDuration": { + "description": "Policy Session Duration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "duration": { + "type": "integer", + "description": "Session duration in seconds.", + "format": "int32", + "example": 3600 + } + }, + "required": [ + "$id", + "duration" + ], + "example": { + "$id": "password-dictionary", + "duration": 3600 + } + }, + "policySessionInvalidation": { + "description": "Policy Session Invalidation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session invalidation policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionLimit": { + "description": "Policy Session Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 10 + } + }, + "policyUserLimit": { + "description": "Policy User Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 100 + } + }, + "policyMembershipPrivacy": { + "description": "Policy Membership Privacy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "userId": { + "type": "boolean", + "description": "Whether user ID is visible in memberships.", + "example": true + }, + "userEmail": { + "type": "boolean", + "description": "Whether user email is visible in memberships.", + "example": true + }, + "userPhone": { + "type": "boolean", + "description": "Whether user phone is visible in memberships.", + "example": true + }, + "userName": { + "type": "boolean", + "description": "Whether user name is visible in memberships.", + "example": true + }, + "userMFA": { + "type": "boolean", + "description": "Whether user MFA status is visible in memberships.", + "example": true + }, + "userAccessedAt": { + "type": "boolean", + "description": "Whether user last access time is visible in memberships.", + "example": true + } + }, + "required": [ + "$id", + "userId", + "userEmail", + "userPhone", + "userName", + "userMFA", + "userAccessedAt" + ], + "example": { + "$id": "password-dictionary", + "userId": true, + "userEmail": true, + "userPhone": true, + "userName": true, + "userMFA": true, + "userAccessedAt": true + } + }, + "policyMfaFactors": { + "description": "Policy MFA Factors", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "totp": { + "type": "boolean", + "description": "Whether TOTP can be used to complete an MFA challenge.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Whether email can be used to complete an MFA challenge.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Whether phone (SMS) can be used to complete an MFA challenge.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Whether the custom factor can be used to complete an MFA challenge.", + "example": true + } + }, + "required": [ + "$id", + "totp", + "email", + "phone", + "custom" + ], + "example": { + "$id": "password-dictionary", + "totp": true, + "email": true, + "phone": true, + "custom": true + } + }, + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyDisposableEmail": { + "description": "Policy Deny Disposable Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyFreeEmail": { + "description": "Policy Deny Free Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyCorporateEmail": { + "description": "Policy Deny Corporate Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "platformWeb": { + "description": "Platform Web", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "hostname": { + "type": "string", + "description": "Web app hostname. Empty string for other platforms.", + "example": "app.example.com" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "hostname", + "key" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "hostname": "app.example.com" + } + }, + "platformApple": { + "description": "Platform Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "bundleIdentifier" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "bundleIdentifier": "com.company.appname" + } + }, + "platformAndroid": { + "description": "Platform Android", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "applicationId": { + "type": "string", + "description": "Android application ID.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "applicationId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "applicationId": "com.company.appname" + } + }, + "platformWindows": { + "description": "Platform Windows", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageIdentifierName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageIdentifierName": "com.company.appname" + } + }, + "platformLinux": { + "description": "Platform Linux", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageName": { + "type": "string", + "description": "Linux package name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageName": "com.company.appname" + } + }, + "platformList": { + "description": "Platforms List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of platforms in the given project.", + "format": "int32", + "example": 5 + }, + "platforms": { + "type": "array", + "description": "List of platforms.", + "items": { + "anyOf": [ + { + "$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" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "platforms" + ], + "example": { + "total": 5, + "platforms": "" + } + }, + "variable": { + "description": "Variable", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Variable ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Variable key.", + "example": "API_KEY" + }, + "value": { + "type": "string", + "description": "Variable value.", + "example": "myPa$$word1" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "resourceType": { + "type": "string", + "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", + "example": "myAwesomeFunction" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "value", + "secret", + "resourceType", + "resourceId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "API_KEY", + "value": "myPa$$word1", + "secret": false, + "resourceType": "function", + "resourceId": "myAwesomeFunction" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "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.", + "format": "int32", + "example": 512 + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "format": "double", + "example": 1 + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" + ], + "example": { + "memory": 512, + "cpus": 1, + "enabled": true, + "slug": "s-1vcpu-512mb" + } + }, + "proxyRule": { + "description": "Rule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "example": "deployment" + }, + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "example": "manual" + }, + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "example": "https:\/\/appwrite.io\/docs" + }, + "redirectStatusCode": { + "type": "integer", + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "format": "int32", + "example": 301 + }, + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentResourceType": { + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", + "example": "function", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" + } + ], + "nullable": true + }, + "deploymentResourceId": { + "type": "string", + "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "example": "main" + }, + "status": { + "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", + "example": "verified", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "unverified" + ], + "title": "unverified" + }, + { + "type": "string", + "enum": [ + "verifying" + ], + "title": "verifying" + }, + { + "type": "string", + "enum": [ + "verified" + ], + "title": "verified" + } + ] + }, + "logs": { + "type": "string", + "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", + "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." + }, + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "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" + } + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Template type", + "example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "example": "Click on the link to verify your account." + }, + "senderName": { + "type": "string", + "description": "Name of the sender", + "example": "My User" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "example": "mail@appwrite.io" + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email address", + "example": "emails@appwrite.io" + }, + "replyToName": { + "type": "string", + "description": "Reply to name", + "example": "Support Team" + }, + "subject": { + "type": "string", + "description": "Email subject", + "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" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "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" + } + }, + "mfaChallengeSecret": { + "description": "MFA Challenge Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "code": { + "type": "string", + "description": "Challenge code to be delivered to the end user through a custom channel.", + "example": "446372" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire", + "code" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00", + "code": "446372" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "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.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "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.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name for the provider instance.", + "example": "Mailgun" + }, + "provider": { + "type": "string", + "description": "The name of the provider service.", + "example": "mailgun" + }, + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "example": true + }, + "type": { + "type": "string", + "description": "Type of provider.", + "example": "sms" + }, + "credentials": { + "type": "object", + "additionalProperties": true, + "description": "Provider credentials.", + "example": { + "key": "123456789" + } + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Provider options.", + "example": { + "from": "sender-email@mydomain" + } + } + }, + "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" + }, + "options": { + "from": "sender-email@mydomain" + } + } + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerType": { + "type": "string", + "description": "Message provider type.", + "example": "email" + }, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "users": { + "type": "array", + "description": "User IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "targets": { + "type": "array", + "description": "Target IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveryErrors": { + "type": "array", + "description": "Delivery errors if any.", + "items": { + "type": "string" + }, + "example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "nullable": true + }, + "deliveredTotal": { + "type": "integer", + "description": "Number of recipients the message was delivered to.", + "format": "int32", + "example": 1 + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Data of the message.", + "example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } + }, + "status": { + "description": "Status of delivery.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "draft" + ], + "title": "draft" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + }, + { + "type": "string", + "enum": [ + "sent" + ], + "title": "sent" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "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." + }, + "status": "processing" + } + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name of the topic.", + "example": "events" + }, + "emailTotal": { + "type": "integer", + "description": "Total count of email subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "smsTotal": { + "type": "integer", + "description": "Total count of SMS subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "pushTotal": { + "type": "integer", + "description": "Total count of push subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "subscribe": { + "type": "array", + "description": "Subscribe permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "qos": { + "type": "integer", + "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", + "format": "int32", + "example": 1, + "nullable": true + }, + "expiry": { + "type": "integer", + "description": "Message retention in seconds for offline delivery.", + "format": "int32", + "example": 604800, + "nullable": true + } + }, + "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", + "qos": 1, + "expiry": 604800 + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "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" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "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" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "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" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$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 + } + }, + "insight": { + "description": "Insight", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Insight ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Insight creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Insight update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "reportId": { + "type": "string", + "description": "Parent report ID. Insights always belong to a report.", + "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).", + "example": "tablesDBIndex" + }, + "severity": { + "type": "string", + "description": "Insight severity. One of info, warning, critical.", + "example": "warning" + }, + "status": { + "type": "string", + "description": "Insight status. One of active, dismissed.", + "example": "active" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", + "example": "databases" + }, + "resourceId": { + "type": "string", + "description": "ID of the resource the insight is about.", + "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.", + "example": "tables" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource. Empty when the resource has no parent.", + "example": "orders" + }, + "title": { + "type": "string", + "description": "Insight title.", + "example": "Missing index on collection orders" + }, + "summary": { + "type": "string", + "description": "Short markdown summary describing the insight.", + "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" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the insight was analyzed in ISO 8601 format.", + "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.", + "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.", + "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.", + "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.", + "example": "tablesDB" + }, + "method": { + "type": "string", + "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", + "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).", + "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.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Report creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Report update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the third-party app that submitted the report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", + "example": "lighthouse" + }, + "title": { + "type": "string", + "description": "Short, human-readable title for the report.", + "example": "Lighthouse audit for https:\/\/appwrite.io\/" + }, + "summary": { + "type": "string", + "description": "Markdown summary describing the report.", + "example": "Performance score 78. 4 opportunities found." + }, + "targetType": { + "type": "string", + "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", + "example": "urls" + }, + "target": { + "type": "string", + "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", + "example": "https:\/\/appwrite.io\/" + }, + "categories": { + "type": "array", + "description": "Categories covered by the report, e.g. performance, accessibility.", + "items": { + "type": "string" + }, + "example": [ + "performance", + "accessibility" + ] + }, + "insights": { + "type": "array", + "description": "Insights nested under this report.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the report was analyzed in ISO 8601 format.", + "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.", + "example": "5e5ea5c16897e" + }, + "actorType": { + "type": "string", + "description": "Actor type.", + "example": "user" + }, + "actorId": { + "type": "string", + "description": "Actor ID.", + "example": "610fc2f985ee0" + }, + "actorEmail": { + "type": "string", + "description": "Actor Email.", + "example": "john@appwrite.io" + }, + "actorName": { + "type": "string", + "description": "Actor Name.", + "example": "John Doe" + }, + "resourceParent": { + "type": "string", + "description": "Resource parent.", + "example": "database\/ID" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "collection" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "610fc2f985ee0" + }, + "resource": { + "type": "string", + "description": "Resource.", + "example": "collections\/610fc2f985ee0" + }, + "event": { + "type": "string", + "description": "Event name.", + "example": "account.sessions.create" + }, + "userAgent": { + "type": "string", + "description": "User agent.", + "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.", + "example": "127.0.0.1" + }, + "mode": { + "type": "string", + "description": "API mode when event triggered.", + "example": "admin" + }, + "country": { + "type": "string", + "description": "Location.", + "example": "US" + }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "example": "Google LLC" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "610fc2f985ee0" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "610fc2f985ee0" + }, + "hostname": { + "type": "string", + "description": "Hostname.", + "example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "example": "14.0.0" + } + }, + "required": [ + "$id", + "actorType", + "actorId", + "actorEmail", + "actorName", + "resourceParent", + "resourceType", + "resourceId", + "resource", + "event", + "userAgent", + "ip", + "mode", + "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", + "time", + "projectId", + "teamId", + "hostname", + "sdk", + "sdkVersion" + ], + "example": { + "$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", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "time": "2020-10-15T06:38:00.000+00:00", + "projectId": "610fc2f985ee0", + "teamId": "610fc2f985ee0", + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" + } + }, + "additionalResource": { + "description": "AdditionalResource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Resource name", + "example": "" + }, + "unit": { + "type": "string", + "description": "Resource unit", + "example": "GB" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD" + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "name", + "unit", + "currency", + "price", + "value", + "invoiceDesc" + ], + "example": { + "name": "", + "unit": "GB", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "analyticsMetric": { + "description": "AnalyticsMetric", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", + "example": "google.com", + "nullable": true + }, + "date": { + "type": "string", + "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", + "example": "2026-05-01T00:00:00.000+00:00", + "nullable": true + }, + "visitors": { + "type": "integer", + "description": "Unique visitors in the requested range.", + "format": "int32", + "example": 1234 + }, + "sessions": { + "type": "integer", + "description": "Unique sessions in the requested range.", + "format": "int32", + "example": 4567 + }, + "pageviews": { + "type": "integer", + "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 5678, + "nullable": true + }, + "events": { + "type": "integer", + "description": "Total events in the requested range.", + "format": "int32", + "example": 8910 + }, + "visits": { + "type": "integer", + "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 2345, + "nullable": true + }, + "bounceRate": { + "type": "number", + "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 42.5, + "nullable": true + }, + "visitDuration": { + "type": "number", + "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 75.4, + "nullable": true + }, + "viewsPerVisit": { + "type": "number", + "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 2.7, + "nullable": true + }, + "scrollDepth": { + "type": "number", + "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 65, + "nullable": true + }, + "engagementTime": { + "type": "number", + "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 18432, + "nullable": true + } + }, + "required": [ + "visitors", + "sessions", + "events" + ], + "example": { + "value": "google.com", + "date": "2026-05-01T00:00:00.000+00:00", + "visitors": 1234, + "sessions": 4567, + "pageviews": 5678, + "events": 8910, + "visits": 2345, + "bounceRate": 42.5, + "visitDuration": 75.4, + "viewsPerVisit": 2.7, + "scrollDepth": 65, + "engagementTime": 18432 + } + }, + "analyticsMetricList": { + "description": "AnalyticsMetricList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of metric rows returned.", + "format": "int32", + "example": 30 + }, + "metrics": { + "type": "array", + "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", + "items": { + "$ref": "#\/components\/schemas\/analyticsMetric" + }, + "example": [] + } + }, + "required": [ + "total", + "metrics" + ], + "example": { + "total": 30, + "metrics": [] + } + }, + "analyticsProperty": { + "description": "AnalyticsProperty", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Analytics property ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Property creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Property update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human-readable name of the tracked website or application.", + "example": "My Website" + }, + "domain": { + "type": "string", + "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", + "example": "example.com" + }, + "timezone": { + "type": "string", + "description": "IANA timezone used to define the daily boundary for stats.", + "example": "UTC" + }, + "enabled": { + "type": "boolean", + "description": "Whether tracking is currently active.", + "example": true + }, + "public": { + "type": "boolean", + "description": "Whether stats for this property are publicly viewable.", + "example": false + }, + "allowedOrigins": { + "type": "array", + "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + }, + "snippetId": { + "type": "string", + "description": "Unique identifier for the tracking script snippet.", + "example": "snp_a1b2c3d4e5" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "domain", + "timezone", + "enabled", + "public", + "allowedOrigins", + "snippetId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Website", + "domain": "example.com", + "timezone": "UTC", + "enabled": true, + "public": false, + "allowedOrigins": [ + "https:\/\/example.com" + ], + "snippetId": "snp_a1b2c3d4e5" + } + }, + "backupArchive": { + "description": "Archive", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Archive ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Archive creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Archive update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "policyId": { + "type": "string", + "description": "Archive policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "size": { + "type": "integer", + "description": "Archive size in bytes. Null until the size is known.", + "format": "int32", + "example": 100000, + "nullable": true + }, + "status": { + "type": "string", + "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The backup start time. Null until the backup starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this archive should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this archive should backup a single resource.", + "example": "database", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "policyId", + "status", + "migrationId", + "services", + "resources" + ], + "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" + } + }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID when the backup was created by a schedule.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "type": "string", + "description": "Backup trigger. Possible values: manual, schedule.", + "example": "schedule" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "example": "full" + }, + "requestedType": { + "type": "string", + "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", + "example": "incremental" + }, + "fallbackReason": { + "type": "string", + "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", + "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." + }, + "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).", + "example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "format": "int32", + "example": 1073741824 + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "logPosition": { + "type": "string", + "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", + "example": "000000010000000000000003|0\/3000148", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "policyId", + "trigger", + "type", + "requestedType", + "fallbackReason", + "status", + "sizeBytes", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "policyId": "5e5ea5c16897e", + "trigger": "schedule", + "type": "full", + "requestedType": "incremental", + "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", + "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", + "logPosition": "000000010000000000000003|0\/3000148", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "format": "int32", + "example": 5 + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + }, + "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).", + "example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "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" + } + }, + "billingLimits": { + "description": "Limits", + "type": "object", + "properties": { + "bandwidth": { + "type": "integer", + "description": "Bandwidth limit", + "format": "int32", + "example": 5, + "nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "format": "int32", + "example": 150, + "nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "format": "int32", + "example": 200000, + "nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "format": "int32", + "example": 750000, + "nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "format": "int32", + "example": 10, + "nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "format": "int32", + "example": 100, + "nullable": true + } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 + } + }, + "billingPlan": { + "description": "billingPlan", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Plan ID.", + "example": "tier-0" + }, + "name": { + "type": "string", + "description": "Plan name", + "example": "Hobby" + }, + "desc": { + "type": "string", + "description": "Plan description", + "example": "Hobby plan" + }, + "order": { + "type": "integer", + "description": "Plan order", + "format": "int32", + "example": 0 + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 25 + }, + "trial": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "bandwidth": { + "type": "integer", + "description": "Bandwidth", + "format": "int32", + "example": 25 + }, + "storage": { + "type": "integer", + "description": "Storage", + "format": "int32", + "example": 25 + }, + "imageTransformations": { + "type": "integer", + "description": "Image Transformations", + "format": "int32", + "example": 100 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Screenshots generated", + "format": "int32", + "example": 50 + }, + "members": { + "type": "integer", + "description": "Members", + "format": "int32", + "example": 25, + "nullable": true + }, + "webhooks": { + "type": "integer", + "description": "Webhooks", + "format": "int32", + "example": 25 + }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "format": "int32", + "example": 2 + }, + "projects": { + "type": "integer", + "description": "Projects", + "format": "int32", + "example": 2 + }, + "platforms": { + "type": "integer", + "description": "Platforms", + "format": "int32", + "example": 3 + }, + "users": { + "type": "integer", + "description": "Users", + "format": "int32", + "example": 25 + }, + "teams": { + "type": "integer", + "description": "Teams", + "format": "int32", + "example": 25 + }, + "databases": { + "type": "integer", + "description": "Databases", + "format": "int32", + "example": 25 + }, + "databasesReads": { + "type": "integer", + "description": "Database reads per month", + "format": "int32", + "example": 500000 + }, + "databasesWrites": { + "type": "integer", + "description": "Database writes per month", + "format": "int32", + "example": 250000 + }, + "databasesBatchSize": { + "type": "integer", + "description": "Database batch size limit", + "format": "int32", + "example": 100 + }, + "buckets": { + "type": "integer", + "description": "Buckets", + "format": "int32", + "example": 25 + }, + "fileSize": { + "type": "integer", + "description": "File size", + "format": "int32", + "example": 25 + }, + "functions": { + "type": "integer", + "description": "Functions", + "format": "int32", + "example": 25 + }, + "sites": { + "type": "integer", + "description": "Sites", + "format": "int32", + "example": 1 + }, + "executions": { + "type": "integer", + "description": "Function executions", + "format": "int32", + "example": 25 + }, + "executionsRetentionCount": { + "type": "integer", + "description": "Rolling max executions retained per function\/site", + "format": "int32", + "example": 10000 + }, + "GBHours": { + "type": "integer", + "description": "GB hours for functions", + "format": "int32", + "example": 100 + }, + "realtime": { + "type": "integer", + "description": "Realtime connections", + "format": "int32", + "example": 25 + }, + "realtimeMessages": { + "type": "integer", + "description": "Realtime messages", + "format": "int32", + "example": 100000 + }, + "messages": { + "type": "integer", + "description": "Messages per month", + "format": "int32", + "example": 1000 + }, + "topics": { + "type": "integer", + "description": "Topics for messaging", + "format": "int32", + "example": 1 + }, + "authPhone": { + "type": "integer", + "description": "SMS authentications per month", + "format": "int32", + "example": 10 + }, + "domains": { + "type": "integer", + "description": "Custom domains", + "format": "int32", + "example": 5 + }, + "activityLogs": { + "type": "integer", + "description": "Activity log days", + "format": "int32", + "example": 7, + "nullable": true + }, + "usageLogs": { + "type": "integer", + "description": "Usage history days", + "format": "int32", + "example": 30 + }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, + "usageAggregateOnlyMetrics": { + "type": "array", + "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", + "items": { + "type": "string" + }, + "example": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "nullable": true + }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "format": "int32", + "example": 7 + }, + "alertLimit": { + "type": "integer", + "description": "Alert threshold percentage", + "format": "int32", + "example": 80 + }, + "usage": { + "type": "object", + "description": "Additional resources. Null when the plan does not support usage billing.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/usageBillingPlan" + } + ], + "nullable": true + }, + "addons": { + "type": "object", + "description": "Addons", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddon" + } + ] + }, + "budgetCapEnabled": { + "type": "boolean", + "description": "Budget cap enabled or disabled.", + "example": true + }, + "customSmtp": { + "type": "boolean", + "description": "Custom SMTP", + "example": true + }, + "emailBranding": { + "type": "boolean", + "description": "Appwrite branding in email", + "example": true + }, + "requiresPaymentMethod": { + "type": "boolean", + "description": "Does plan require payment method", + "example": true + }, + "requiresBillingAddress": { + "type": "boolean", + "description": "Does plan require billing address", + "example": true + }, + "eligibleCountries": { + "type": "array", + "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", + "items": { + "type": "string" + }, + "example": [ + "IN", + "NP" + ], + "nullable": true + }, + "isAvailable": { + "type": "boolean", + "description": "Is the billing plan available", + "example": true + }, + "selfService": { + "type": "boolean", + "description": "Can user change the plan themselves", + "example": true + }, + "premiumSupport": { + "type": "boolean", + "description": "Does plan enable premium support", + "example": true + }, + "budgeting": { + "type": "boolean", + "description": "Does plan support budget cap", + "example": true + }, + "supportsMockNumbers": { + "type": "boolean", + "description": "Does plan support mock numbers", + "example": true + }, + "supportsOrganizationRoles": { + "type": "boolean", + "description": "Does plan support organization roles", + "example": true + }, + "supportsCredits": { + "type": "boolean", + "description": "Does plan support credit", + "example": true + }, + "supportsDedicatedDatabases": { + "type": "boolean", + "description": "Does plan support dedicated databases.", + "example": true + }, + "supportsDisposableEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking disposable email addresses.", + "example": true + }, + "supportsCanonicalEmailValidation": { + "type": "boolean", + "description": "Does plan support requiring canonical email addresses.", + "example": true + }, + "supportsFreeEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking free email addresses.", + "example": true + }, + "supportsCorporateEmailValidation": { + "type": "boolean", + "description": "Does plan support restricting sign-ups to corporate email addresses only.", + "example": true + }, + "supportsProjectSpecificRoles": { + "type": "boolean", + "description": "Does plan support project-specific member roles.", + "example": true + }, + "backupsEnabled": { + "type": "boolean", + "description": "Does plan support backup policies.", + "example": true, + "nullable": true + }, + "usagePerProject": { + "type": "boolean", + "description": "Whether usage addons are calculated per project.", + "example": true + }, + "supportedAddons": { + "type": "object", + "description": "Supported addons for this plan", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" + } + ] + }, + "backupPolicies": { + "type": "integer", + "description": "How many policies does plan support", + "format": "int32", + "example": 1, + "nullable": true + }, + "deploymentSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 30 + }, + "buildSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 2000 + }, + "databasesAllowEncrypt": { + "type": "boolean", + "description": "Does the plan support encrypted string attributes or not.", + "example": false + }, + "limits": { + "type": "object", + "description": "Plan specific limits", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanLimits" + } + ], + "nullable": true + }, + "group": { + "description": "Group of this billing plan for variants", + "example": "pro", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "free" + ], + "title": "free" + }, + { + "type": "string", + "enum": [ + "start" + ], + "title": "start" + }, + { + "type": "string", + "enum": [ + "pro" + ], + "title": "pro" + }, + { + "type": "string", + "enum": [ + "scale" + ], + "title": "scale" + } + ] + }, + "program": { + "type": "object", + "description": "Details of the program this plan is a part of.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/program" + } + ], + "nullable": true + }, + "databaseComputeCredit": { + "type": "number", + "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", + "format": "double", + "example": 10 + }, + "dedicatedDatabases": { + "type": "object", + "description": "Dedicated database limits available to this plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" + } + ], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "desc", + "order", + "price", + "trial", + "bandwidth", + "storage", + "imageTransformations", + "screenshotsGenerated", + "webhooks", + "wafRules", + "projects", + "platforms", + "users", + "teams", + "databases", + "databasesReads", + "databasesWrites", + "databasesBatchSize", + "buckets", + "fileSize", + "functions", + "sites", + "executions", + "executionsRetentionCount", + "GBHours", + "realtime", + "realtimeMessages", + "messages", + "topics", + "authPhone", + "domains", + "usageLogs", + "projectInactivityDays", + "alertLimit", + "addons", + "budgetCapEnabled", + "customSmtp", + "emailBranding", + "requiresPaymentMethod", + "requiresBillingAddress", + "isAvailable", + "selfService", + "premiumSupport", + "budgeting", + "supportsMockNumbers", + "supportsOrganizationRoles", + "supportsCredits", + "supportsDedicatedDatabases", + "supportsDisposableEmailValidation", + "supportsCanonicalEmailValidation", + "supportsFreeEmailValidation", + "supportsCorporateEmailValidation", + "supportsProjectSpecificRoles", + "usagePerProject", + "supportedAddons", + "deploymentSize", + "buildSize", + "databasesAllowEncrypt", + "group", + "databaseComputeCredit" + ], + "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, + "wafRules": 2, + "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, + "activityLogs": 7, + "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], + "usageAggregateOnlyMetrics": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "projectInactivityDays": 7, + "alertLimit": 80, + "usage": null, + "addons": null, + "budgetCapEnabled": true, + "customSmtp": true, + "emailBranding": true, + "requiresPaymentMethod": true, + "requiresBillingAddress": true, + "eligibleCountries": [ + "IN", + "NP" + ], + "isAvailable": true, + "selfService": true, + "premiumSupport": true, + "budgeting": true, + "supportsMockNumbers": true, + "supportsOrganizationRoles": true, + "supportsCredits": true, + "supportsDedicatedDatabases": true, + "supportsDisposableEmailValidation": true, + "supportsCanonicalEmailValidation": true, + "supportsFreeEmailValidation": true, + "supportsCorporateEmailValidation": true, + "supportsProjectSpecificRoles": true, + "backupsEnabled": true, + "usagePerProject": true, + "supportedAddons": null, + "backupPolicies": 1, + "deploymentSize": 30, + "buildSize": 2000, + "databasesAllowEncrypt": false, + "limits": null, + "group": "pro", + "program": null, + "databaseComputeCredit": 10, + "dedicatedDatabases": null + } + }, + "billingPlanAddon": { + "description": "Addon", + "type": "object", + "properties": { + "seats": { + "type": "object", + "description": "Addon seats", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + }, + "projects": { + "type": "object", + "description": "Addon projects", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + } + }, + "example": { + "seats": null, + "projects": null + } + }, + "billingPlanAddonDetails": { + "description": "Details", + "type": "object", + "properties": { + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "example": true + }, + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "format": "int32", + "example": 1 + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "format": "int32", + "example": 5 + }, + "type": { + "type": "string", + "description": "Addon type", + "example": "numeric" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD", + "nullable": true + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "supported", + "planIncluded", + "limit", + "type", + "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", + "format": "int32", + "example": 100, + "nullable": true + }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "format": "int32", + "example": 5, + "nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanDedicatedDatabaseLimits": { + "description": "dedicatedDatabaseLimits", + "type": "object", + "properties": { + "minCpu": { + "type": "integer", + "description": "Minimum CPU allocation in millicores.", + "format": "int32", + "example": 125, + "nullable": true + }, + "maxCpu": { + "type": "integer", + "description": "Maximum CPU allocation in millicores.", + "format": "int32", + "example": 32000, + "nullable": true + }, + "minMemoryMb": { + "type": "integer", + "description": "Minimum memory allocation in megabytes.", + "format": "int32", + "example": 128, + "nullable": true + }, + "maxMemoryMb": { + "type": "integer", + "description": "Maximum memory allocation in megabytes.", + "format": "int32", + "example": 262144, + "nullable": true + }, + "minStorageGb": { + "type": "integer", + "description": "Minimum storage allocation in gigabytes.", + "format": "int32", + "example": 1, + "nullable": true + }, + "maxStorageGb": { + "type": "integer", + "description": "Maximum storage allocation in gigabytes.", + "format": "int32", + "example": 16384, + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "description": "Maximum number of high-availability replicas per dedicated database.", + "format": "int32", + "example": 5, + "nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of client connections.", + "format": "int32", + "example": 10000, + "nullable": true + }, + "maxIpAllowlistSize": { + "type": "integer", + "description": "Maximum number of entries allowed in the IP allowlist.", + "format": "int32", + "example": 100, + "nullable": true + }, + "maxExtensions": { + "type": "integer", + "description": "Maximum number of database extensions that can be enabled.", + "format": "int32", + "example": 50, + "nullable": true + }, + "maxBackupRetentionDays": { + "type": "integer", + "description": "Maximum number of days a backup can be retained.", + "format": "int32", + "example": 365, + "nullable": true + }, + "maxPitrRetentionDays": { + "type": "integer", + "description": "Maximum number of days of point-in-time recovery data that can be retained.", + "format": "int32", + "example": 35, + "nullable": true + }, + "maxSqlApiMaxRows": { + "type": "integer", + "description": "Maximum number of rows a single SQL API query can return.", + "format": "int32", + "example": 1000000, + "nullable": true + }, + "maxSqlApiMaxBytes": { + "type": "integer", + "description": "Maximum response size in bytes for a single SQL API query.", + "format": "int32", + "example": 104857600, + "nullable": true + }, + "maxSqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum execution time in seconds for a single SQL API query.", + "format": "int32", + "example": 300, + "nullable": true + }, + "maxSqlApiAllowedStatements": { + "type": "integer", + "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", + "format": "int32", + "example": 10, + "nullable": true + }, + "allowedSqlStatements": { + "type": "array", + "description": "SQL statement types permitted through the SQL API.", + "items": { + "type": "string" + }, + "example": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "nullable": true + }, + "allowedStorageClasses": { + "type": "array", + "description": "Storage classes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "ssd" + ], + "nullable": true + }, + "allowedSyncModes": { + "type": "array", + "description": "Replica synchronization modes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "async", + "sync", + "quorum" + ], + "nullable": true + } + }, + "example": { + "minCpu": 125, + "maxCpu": 32000, + "minMemoryMb": 128, + "maxMemoryMb": 262144, + "minStorageGb": 1, + "maxStorageGb": 16384, + "maxReplicas": 5, + "maxConnections": 10000, + "maxIpAllowlistSize": 100, + "maxExtensions": 50, + "maxBackupRetentionDays": 365, + "maxPitrRetentionDays": 35, + "maxSqlApiMaxRows": 1000000, + "maxSqlApiMaxBytes": 104857600, + "maxSqlApiTimeoutSeconds": 300, + "maxSqlApiAllowedStatements": 10, + "allowedSqlStatements": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "allowedStorageClasses": [ + "ssd" + ], + "allowedSyncModes": [ + "async", + "sync", + "quorum" + ] + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "example": true + }, + "premiumGeoDB": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (project-level)", + "example": true + }, + "premiumGeoDBOrg": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (organization-level)", + "example": true + } + }, + "required": [ + "baa", + "premiumGeoDB", + "premiumGeoDBOrg" + ], + "example": { + "baa": true, + "premiumGeoDB": true, + "premiumGeoDBOrg": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "example": "a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "example": "db-myproject-mydb-branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "format": "int32", + "example": 1711411200 + }, + "host": { + "type": "string", + "description": "Branch hostname for direct connections.", + "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" + }, + "port": { + "type": "integer", + "description": "Branch port. Null until the backing reports one.", + "format": "int32", + "example": 5432 + }, + "database": { + "type": "string", + "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", + "example": "db-myproject-mydb-a1b2c3d4" + }, + "username": { + "type": "string", + "description": "Database username. Shared with the parent database.", + "example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password. Shared with the parent database.", + "example": "********" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "example": false + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgresql, mysql, mongodb.", + "example": "postgresql" + }, + "connectionString": { + "type": "string", + "description": "Full connection string for the branch.", + "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt", + "host", + "port", + "database", + "username", + "password", + "ssl", + "engine", + "connectionString" + ], + "example": { + "branchId": "a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "db-myproject-mydb-branch-a1b2c3d4", + "expiresAt": 1711411200, + "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", + "port": 5432, + "database": "db-myproject-mydb-a1b2c3d4", + "username": "appwrite", + "password": "********", + "ssl": false, + "engine": "postgresql", + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches.", + "format": "int32", + "example": 2 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 2, + "branches": [] + } + }, + "databaseMigration": { + "description": "Database Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Migration update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns the migrating database.", + "example": "5e5ea5c16897e" + }, + "databaseId": { + "type": "string", + "description": "Logical database ID being migrated.", + "example": "5e5ea5c16897e" + }, + "specification": { + "type": "string", + "description": "Dedicated compute specification provisioned for the migration target.", + "example": "s-2vcpu-4gb" + }, + "phase": { + "type": "string", + "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", + "example": "pending" + }, + "attempt": { + "type": "integer", + "description": "Number of times a migration step has failed and been recorded.", + "format": "int32", + "example": 0 + }, + "lastError": { + "type": "string", + "description": "Reason the most recent migration step failed, empty while none has.", + "example": "" + }, + "lagDocuments": { + "type": "integer", + "description": "Number of documents still pending replication to the target.", + "format": "int32", + "example": 0 + }, + "changelogWatermark": { + "type": "integer", + "description": "Highest source changelog sequence applied to the target so far.", + "format": "int32", + "example": 0 + }, + "verifiedAt": { + "type": "string", + "description": "Time the migrated data was verified against the source in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "cutoverAt": { + "type": "string", + "description": "Time routing was flipped to the target in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "soakUntil": { + "type": "string", + "description": "Time the post-cutover soak window ends in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoCutover": { + "type": "boolean", + "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", + "example": true + }, + "cutoverRequested": { + "type": "boolean", + "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", + "example": false + }, + "paused": { + "type": "boolean", + "description": "Whether the migration is paused.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "databaseId", + "specification", + "phase", + "attempt", + "lastError", + "lagDocuments", + "changelogWatermark", + "verifiedAt", + "cutoverAt", + "soakUntil", + "autoCutover", + "cutoverRequested", + "paused" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "databaseId": "5e5ea5c16897e", + "specification": "s-2vcpu-4gb", + "phase": "pending", + "attempt": 0, + "lastError": "", + "lagDocuments": 0, + "changelogWatermark": 0, + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "cutoverAt": "2020-10-15T06:38:00.000+00:00", + "soakUntil": "2020-10-15T06:38:00.000+00:00", + "autoCutover": true, + "cutoverRequested": false, + "paused": false + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "example": "My Production Database" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "example": "postgresql" + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "example": "s-2vcpu-2gb" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: edge.", + "example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "example": "db-myproject-mydb.fra.appwrite.center" + }, + "connectionPort": { + "type": "integer", + "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", + "format": "int32", + "example": 5432 + }, + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "credentialGeneration": { + "type": "integer", + "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", + "format": "int32", + "example": 1 + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL\/TLS is required for client connections.", + "example": true + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", + "example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "idleUntil": { + "type": "string", + "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", + "example": "active" + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "format": "int32", + "example": 15 + }, + "cpu": { + "type": "integer", + "description": "CPU allocated in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Memory allocated in MB.", + "format": "int32", + "example": 4096 + }, + "storage": { + "type": "integer", + "description": "Storage allocated in GB.", + "format": "int32", + "example": 100 + }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", + "example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage allowed in GB. 0 means use system default.", + "format": "int32", + "example": 100 + }, + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "example": "db-pool-4vcpu-8gb" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas. High availability is enabled when greater than 0.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "example": "async" + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", + "format": "int32", + "example": 500 + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "format": "int32", + "example": 900 + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "example": true + }, + "pitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "example": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "format": "int32", + "example": 14 + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "format": "int32", + "example": 85 + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "format": "int32", + "example": 30 + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "format": "int32", + "example": 3 + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "example": false + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "items": { + "type": "string" + }, + "example": [ + "SELECT" + ] + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "format": "int32", + "example": 10000 + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "format": "int32", + "example": 10485760 + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "format": "int32", + "example": 30 + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "api", + "engine", + "version", + "specification", + "backend", + "hostname", + "connectionPort", + "connectionUser", + "connectionPassword", + "credentialGeneration", + "connectionString", + "ssl", + "status", + "containerStatus", + "lifecycleState", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageStatus", + "storageTargetGb", + "storageClass", + "storageMaxGb", + "nodePool", + "replicas", + "syncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "pitr", + "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", + "api": "postgresql", + "engine": "postgresql", + "version": "16", + "specification": "s-2vcpu-2gb", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.center", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "credentialGeneration": 1, + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", + "ssl": true, + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "lifecycleState": "active", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "replicas": 2, + "syncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "pitr": true, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 30, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": false, + "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": { + "type": "object" + }, + "example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "format": "int32", + "example": 1 + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "format": "int32", + "example": 12 + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "format": "int32", + "example": 1024 + } + }, + "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.", + "example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored into.", + "example": "5e5ea5c16897e" + }, + "sourceDatabaseId": { + "type": "string", + "description": "Source database ID when restoring a backup into another database.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "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).", + "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).", + "example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "sourceDatabaseId", + "projectId", + "backupId", + "type", + "status", + "targetTime", + "startedAt", + "completedAt", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "sourceDatabaseId": "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": "" + } + }, + "databaseStatus": { + "description": "Status", + "type": "object", + "properties": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", + "example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "format": "int32", + "example": 86400 + }, + "connections": { + "type": "object", + "description": "Connection statistics. Null when the database has not been probed.", + "example": { + "current": 12, + "max": 100 + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/databaseStatusConnections" + } + ], + "nullable": true + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "replicas": { + "type": "array", + "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "example": [ + { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + ] + } + }, + "required": [ + "health", + "ready", + "engine", + "version", + "uptime", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "replicas", + "volumes" + ], + "example": { + "health": "healthy", + "ready": true, + "engine": "postgresql", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "dnsRecord": { + "description": "DNSRecord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "DNS Record ID.", + "example": "5f40a6e10c65e" + }, + "$createdAt": { + "type": "string", + "description": "DNS Record creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "DNS Record update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "DNS record type (e.g. A, CNAME, MX).", + "example": "A" + }, + "name": { + "type": "string", + "description": "Record name or subdomain.", + "example": "mail" + }, + "value": { + "type": "string", + "description": "Value of the record (IP address, domain, etc.).", + "example": "192.0.2.1" + }, + "ttl": { + "type": "integer", + "description": "Time to live (in seconds).", + "format": "int32", + "example": 86400 + }, + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "format": "int32", + "example": 10 + }, + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "example": false + }, + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "format": "int32", + "example": 10 + }, + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "format": "int32", + "example": 443 + }, + "comment": { + "type": "string", + "description": "Comment for the DNS record.", + "example": "Mail server record" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "name", + "value", + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" + ], + "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" + } + }, + "domain": { + "description": "Domain", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Domain ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Domain creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Domain update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "registrar": { + "type": "string", + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "example": "appwrite" + }, + "nameservers": { + "type": "string", + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "example": "Appwrite" + }, + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { + "type": "boolean", + "description": "If set to true, the domain will automatically renew.", + "example": true + }, + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "format": "int32", + "example": 2599 + }, + "transferStatus": { + "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ], + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "teamId", + "dnsRecords" + ], + "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": [] + } + }, + "domainPrice": { + "description": "DomainPrice", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "tld": { + "type": "string", + "description": "Top-level domain for the requested domain.", + "example": "com" + }, + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "example": true + }, + "price": { + "type": "number", + "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "periodYears": { + "type": "integer", + "description": "Price period in years.", + "format": "int32", + "example": 1 + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "example": false + }, + "renewalPrice": { + "type": "number", + "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", + "format": "double", + "example": 27.99, + "nullable": true + }, + "renewalPeriodYears": { + "type": "integer", + "description": "Renewal price period in years.", + "format": "int32", + "example": 1 + } + }, + "required": [ + "domain", + "tld", + "available", + "periodYears", + "premium", + "renewalPeriodYears" + ], + "example": { + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false, + "renewalPrice": 27.99, + "renewalPeriodYears": 1 + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "description": "Transfer status.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "example": [ + "postgis", + "pg_trgm" + ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "installed", + "available", + "metadata" + ], + "example": { + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ], + "metadata": [] + } + }, + "dedicatedDatabaseMember": { + "description": "Member", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Member identifier.", + "example": "1" + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", + "example": "replica" + }, + "status": { + "type": "string", + "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", + "example": "active" + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.5, + "nullable": true + } + }, + "required": [ + "$id", + "role", + "status" + ], + "example": { + "$id": "1", + "role": "replica", + "status": "active", + "replicating": true, + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseOperation": { + "description": "Operation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Operation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Operation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID the operation ran against.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", + "example": "update" + }, + "status": { + "type": "string", + "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", + "example": "completed" + }, + "attempts": { + "type": "integer", + "description": "Number of times this operation has been attempted.", + "format": "int32", + "example": 1 + }, + "requestedAt": { + "type": "string", + "description": "Time the operation was requested, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Time the operation started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Time the operation reached a terminal state, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "errorCode": { + "type": "string", + "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", + "example": "Interrupted" + }, + "errorMessage": { + "type": "string", + "description": "Failure message if the operation failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "type", + "status", + "attempts", + "errorCode", + "errorMessage" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "type": "update", + "status": "completed", + "attempts": 1, + "requestedAt": "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", + "errorCode": "Interrupted", + "errorMessage": "" + } + }, + "dedicatedDatabaseOperationList": { + "description": "OperationList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of operations.", + "format": "int32", + "example": 5 + }, + "operations": { + "type": "array", + "description": "List of operations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + }, + "example": [] + } + }, + "required": [ + "total", + "operations" + ], + "example": { + "total": 5, + "operations": "" + } + }, + "dedicatedDatabaseReplicas": { + "description": "Replicas", + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "description": "Number of configured replicas. Zero means high availability is disabled.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "members": { + "type": "array", + "description": "Per-pod statuses for the primary and every replica.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" + }, + "example": [] + } + }, + "required": [ + "replicas", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "members" + ], + "example": { + "replicas": 2, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "members": [] + } + }, + "proxyInvalidation": { + "description": "Invalidation", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", + "example": "tag" + }, + "reference": { + "type": "string", + "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", + "example": "products" + }, + "status": { + "type": "string", + "description": "Invalidation status.", + "example": "success" + } + }, + "required": [ + "domain", + "type", + "reference", + "status" + ], + "example": { + "domain": "appwrite.company.com", + "type": "tag", + "reference": "products", + "status": "success" + } + }, + "organization": { + "description": "Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "billingBudget": { + "type": "integer", + "description": "Project budget limit. Null when no budget is set.", + "format": "int32", + "example": 50, + "nullable": true + }, + "budgetAlerts": { + "type": "array", + "description": "Project budget limit", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [ + 50, + 75 + ] + }, + "billingPlan": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanId": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanDetails": { + "type": "object", + "description": "Organization's billing plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlan" + } + ] + }, + "billingEmail": { + "type": "string", + "description": "Billing email set for the organization.", + "example": "billing@org.example" + }, + "billingStartDate": { + "type": "string", + "description": "Billing cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingCurrentInvoiceDate": { + "type": "string", + "description": "Current invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingNextInvoiceDate": { + "type": "string", + "description": "Next invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "billingTrialStartDate": { + "type": "string", + "description": "Start date of trial.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialDays": { + "type": "integer", + "description": "Number of trial days.", + "format": "int32", + "example": 14 + }, + "billingAggregationId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd" + }, + "billingInvoiceId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd" + }, + "paymentMethodId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd" + }, + "billingAddressId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "backupPaymentMethodId": { + "type": "string", + "description": "Backup payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "status": { + "type": "string", + "description": "Team status.", + "example": "active" + }, + "remarks": { + "type": "string", + "description": "Remarks on team status.", + "example": "Pending initial payment", + "nullable": true + }, + "agreementBAA": { + "type": "string", + "description": "Organization agreements", + "example": "", + "nullable": true + }, + "programManagerName": { + "type": "string", + "description": "Program manager's name.", + "example": "", + "nullable": true + }, + "programManagerCalendar": { + "type": "string", + "description": "Program manager's calendar link.", + "example": "", + "nullable": true + }, + "programDiscordChannelName": { + "type": "string", + "description": "Program's discord channel name.", + "example": "", + "nullable": true + }, + "programDiscordChannelUrl": { + "type": "string", + "description": "Program's discord channel URL.", + "example": "", + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "billingPlanDowngrade": { + "type": "string", + "description": "Billing plan selected for downgrade.", + "example": "tier-1", + "nullable": true + }, + "billingTaxId": { + "type": "string", + "description": "Tax Id", + "example": "", + "nullable": true + }, + "markedForDeletion": { + "type": "boolean", + "description": "Marked for deletion" + }, + "platform": { + "type": "string", + "description": "Product with which the organization is associated (appwrite or imagine)", + "example": "imagine" + }, + "projects": { + "type": "array", + "description": "Selected projects", + "items": { + "type": "string" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs", + "budgetAlerts", + "billingPlan", + "billingPlanId", + "billingPlanDetails", + "billingEmail", + "billingStartDate", + "billingCurrentInvoiceDate", + "billingNextInvoiceDate", + "billingTrialDays", + "billingAggregationId", + "billingInvoiceId", + "paymentMethodId", + "status", + "markedForDeletion", + "platform", + "projects" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "billingBudget": 50, + "budgetAlerts": [ + 50, + 75 + ], + "billingPlan": "tier-1", + "billingPlanId": "tier-1", + "billingPlanDetails": null, + "billingEmail": "billing@org.example", + "billingStartDate": "2020-10-15T06:38:00.000+00:00", + "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialDays": 14, + "billingAggregationId": "adbc3de4rddfsd", + "billingInvoiceId": "adbc3de4rddfsd", + "paymentMethodId": "adbc3de4rddfsd", + "billingAddressId": "adbc3de4rddfsd", + "backupPaymentMethodId": "adbc3de4rddfsd", + "status": "active", + "remarks": "Pending initial payment", + "agreementBAA": "", + "programManagerName": "", + "programManagerCalendar": "", + "programDiscordChannelName": "", + "programDiscordChannelUrl": "", + "billingLimits": "", + "billingPlanDowngrade": "tier-1", + "billingTaxId": "", + "markedForDeletion": "", + "platform": "imagine", + "projects": "" + } + }, + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", + "type": "object", + "properties": { + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "earliest", + "latest" + ], + "example": { + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" + } + }, + "backupPolicy": { + "description": "backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup policy ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Backup policy name.", + "example": "Hourly backups" + }, + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "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" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "example": "database", + "nullable": true + }, + "retention": { + "type": "integer", + "description": "How many days to keep the backup before it will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "example": "0 * * * *" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", + "example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "type", + "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 * * * *", + "type": "full", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "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).", + "example": "transaction" + }, + "maxConnections": { + "type": "integer", + "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", + "format": "int32", + "example": 200 + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "format": "int32", + "example": 25 + }, + "port": { + "type": "integer", + "description": "Pooler listening port.", + "format": "int32", + "example": 6432 + }, + "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.", + "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.", + "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.", + "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.", + "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.", + "example": "128Mi" + } + }, + "required": [ + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" + ], + "example": { + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" + } + }, + "postgresExtension": { + "description": "Postgres extension", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Extension key used with CREATE EXTENSION.", + "example": "vector" + }, + "name": { + "type": "string", + "description": "Human-readable extension name.", + "example": "pgvector" + }, + "description": { + "type": "string", + "description": "Short description of what the extension provides.", + "example": "Vector data type and similarity search for embeddings." + }, + "category": { + "type": "string", + "description": "Category the extension belongs to.", + "example": "search" + } + }, + "required": [ + "key", + "name", + "description", + "category" + ], + "example": { + "key": "vector", + "name": "pgvector", + "description": "Vector data type and similarity search for embeddings.", + "category": "search" + } + }, + "program": { + "description": "Program", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Program ID", + "example": "" + }, + "title": { + "type": "string", + "description": "Program title", + "example": "" + }, + "description": { + "type": "string", + "description": "Program description", + "example": "" + }, + "tag": { + "type": "string", + "description": "Program tag for highlighting on console" + }, + "icon": { + "type": "string", + "description": "Program icon for highlighting on console" + }, + "url": { + "type": "string", + "description": "URL for more information on this program", + "example": "" + }, + "active": { + "type": "boolean", + "description": "Whether this program is active", + "example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "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": "" + } + }, + "backupRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Restoration update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "archiveId": { + "type": "string", + "description": "Backup archive ID.", + "example": "did8jx6ws45jana098ab7" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "status": { + "type": "string", + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The restoration start time. Null until the restoration starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Restoration options as a key-value object.", + "example": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "archiveId", + "policyId", + "status", + "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": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "dedicatedDatabaseSpecification": { + "description": "Specification", + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Specification slug. Use this value when creating a dedicated database.", + "example": "s-2vcpu-2gb" + }, + "name": { + "type": "string", + "description": "Human readable specification name.", + "example": "Standard" + }, + "price": { + "type": "number", + "description": "Monthly price of the specification in USD.", + "format": "double", + "example": 20 + }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, + "cpu": { + "type": "integer", + "description": "Allocated CPU in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Allocated memory in MB.", + "format": "int32", + "example": 2048 + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of concurrent connections.", + "format": "int32", + "example": 200 + }, + "includedStorage": { + "type": "integer", + "description": "Included storage in GB before overage charges apply.", + "format": "int32", + "example": 25 + }, + "includedBandwidth": { + "type": "integer", + "description": "Included bandwidth in GB before overage charges apply.", + "format": "int32", + "example": 200 + }, + "enabled": { + "type": "boolean", + "description": "Whether the specification is available on the current plan.", + "example": true + } + }, + "required": [ + "slug", + "name", + "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", + "cpu", + "memory", + "maxConnections", + "includedStorage", + "includedBandwidth", + "enabled" + ], + "example": { + "slug": "s-2vcpu-2gb", + "name": "Standard", + "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, + "cpu": 2000, + "memory": 2048, + "maxConnections": 200, + "includedStorage": 25, + "includedBandwidth": 200, + "enabled": true + } + }, + "dedicatedDatabaseSpecificationList": { + "description": "SpecificationList", + "type": "object", + "properties": { + "specifications": { + "type": "array", + "description": "List of dedicated database specifications.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" + }, + "example": [] + }, + "total": { + "type": "integer", + "description": "Total number of specifications.", + "format": "int32", + "example": 9 + } + }, + "required": [ + "specifications", + "total" + ], + "example": { + "specifications": [], + "total": 9 + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { + "type": "integer", + "description": "Current number of active connections.", + "format": "int32", + "example": 12 + }, + "max": { + "type": "integer", + "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "current", + "max" + ], + "example": { + "current": 12, + "max": 100 + } + }, + "databaseStatusReplica": { + "description": "Replica", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", + "format": "int32", + "example": 0 + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", + "example": "primary" + }, + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "example": true + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.2, + "nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "example": "\/var\/lib\/postgresql\/data" + }, + "usedPercent": { + "type": "string", + "description": "Percentage of storage used.", + "example": "45%" + }, + "available": { + "type": "string", + "description": "Available storage space.", + "example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "example": true + } + }, + "required": [ + "path", + "usedPercent", + "available", + "mounted" + ], + "example": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + }, + "usageBillingPlan": { + "description": "usageBillingPlan", + "type": "object", + "properties": { + "bandwidth": { + "type": "object", + "description": "Bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "executions": { + "type": "object", + "description": "Executions additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "member": { + "type": "object", + "description": "Member additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtime": { + "type": "object", + "description": "Realtime additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeMessages": { + "type": "object", + "description": "Realtime messages additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "realtimeBandwidth": { + "type": "object", + "description": "Realtime bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "storage": { + "type": "object", + "description": "Storage additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "users": { + "type": "object", + "description": "User additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "GBHours": { + "type": "object", + "description": "GBHour additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "imageTransformations": { + "type": "object", + "description": "Image transformation additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ] + }, + "credits": { + "type": "object", + "description": "Credits additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + } + }, + "required": [ + "bandwidth", + "executions", + "realtime", + "realtimeMessages", + "storage", + "users", + "GBHours", + "imageTransformations" + ], + "example": { + "bandwidth": null, + "executions": null, + "member": null, + "realtime": null, + "realtimeMessages": null, + "realtimeBandwidth": null, + "storage": null, + "users": null, + "GBHours": null, + "imageTransformations": null, + "credits": null + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Introspection": { + "description": "OAuth2 Introspection", + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the token is currently active. An inactive token carries no other claims (RFC 7662).", + "example": true + }, + "token_use": { + "type": "string", + "description": "Kind of token that was introspected. Can be one of: `access_token` or `refresh_token`.", + "example": "access_token", + "nullable": true + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer", + "nullable": true + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the token.", + "example": "openid email profile", + "nullable": true + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID the token was issued to.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "sub": { + "type": "string", + "description": "ID of the user who authorized the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "aud": { + "type": "array", + "description": "Audiences the token is intended for. The first entry is the project API base URL; any further entries are the resource indicators requested at authorization time (RFC 8707).", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "nullable": true + }, + "iss": { + "type": "string", + "description": "Issuer URL of the token.", + "example": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "nullable": true + }, + "exp": { + "type": "integer", + "description": "Expiration time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735689600, + "nullable": true + }, + "iat": { + "type": "integer", + "description": "Issued-at time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735686000, + "nullable": true + }, + "jti": { + "type": "string", + "description": "Unique identifier of the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "authorization_details": { + "type": "array", + "description": "Granted RFC 9396 authorization details, restricted to what the user can currently access.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ], + "nullable": true + } + }, + "required": [ + "active" + ], + "example": { + "active": true, + "token_use": "access_token", + "token_type": "Bearer", + "scope": "openid email profile", + "client_id": "5e5ea5c16897e", + "sub": "5e5ea5c16897e", + "aud": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "iss": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "exp": 1735689600, + "iat": 1735686000, + "jti": "5e5ea5c16897e", + "authorization_details": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ] + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "wafRule": { + "description": "WafRule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleBypass": { + "description": "WafRuleBypass", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleDeny": { + "description": "WafRuleDeny", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleChallenge": { + "description": "WafRuleChallenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "challengeType": { + "type": "string", + "description": "Challenge type enforced when the rule matches.", + "example": "compute" + }, + "difficulty": { + "type": "integer", + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", + "format": "int32", + "example": 3 + }, + "ttl": { + "type": "integer", + "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", + "format": "int32", + "example": 1800 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "challengeType", + "difficulty", + "ttl" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "challengeType": "compute", + "difficulty": 3, + "ttl": 1800 + } + }, + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "format": "int32", + "example": 1000 + }, + "interval": { + "type": "integer", + "description": "Interval in seconds for the rate limit window.", + "format": "int32", + "example": 60 + }, + "key": { + "type": "string", + "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", + "example": "userId" + }, + "strategy": { + "type": "string", + "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", + "example": "slidingWindow" + }, + "maxBucketSize": { + "type": "integer", + "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", + "format": "int32", + "example": 200 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", + "interval", + "key", + "strategy", + "maxBucketSize" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "limit": 1000, + "interval": 60, + "key": "userId", + "strategy": "slidingWindow", + "maxBucketSize": 200 + } + }, + "wafRuleRedirect": { + "description": "WafRuleRedirect", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "location": { + "type": "string", + "description": "Target location for the redirect.", + "example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "format": "int32", + "example": 301 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "location": "\/maintenance", + "statusCode": 301 + } + }, + "wafRuleList": { + "description": "WAF rule list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/wafRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "activityEventList": { + "description": "Activity event list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "format": "int32", + "example": 5 + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/activityEvent" + }, + "example": [] + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "analyticsPropertyList": { + "description": "Analytics properties list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of properties that matched your query.", + "format": "int32", + "example": 5 + }, + "properties": { + "type": "array", + "description": "List of properties.", + "items": { + "$ref": "#\/components\/schemas\/analyticsProperty" + }, + "example": [] + } + }, + "required": [ + "total", + "properties" + ], + "example": { + "total": 5, + "properties": "" + } + }, + "backupArchiveList": { + "description": "Backup archive list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of archives that matched your query.", + "format": "int32", + "example": 5 + }, + "archives": { + "type": "array", + "description": "List of archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [] + } + }, + "required": [ + "total", + "archives" + ], + "example": { + "total": 5, + "archives": "" + } + }, + "backupPolicyList": { + "description": "Backup policy list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies that matched your query.", + "format": "int32", + "example": 5 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 5, + "policies": "" + } + }, + "backupRestorationList": { + "description": "Backup restoration list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/backupRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "databaseMigrationList": { + "description": "Database Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/databaseMigration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "dedicatedDatabaseList": { + "description": "Dedicated databases list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "dnsRecordsList": { + "description": "DNS records list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of dnsRecords that matched your query.", + "format": "int32", + "example": 5 + }, + "dnsRecords": { + "type": "array", + "description": "List of dnsRecords.", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "total", + "dnsRecords" + ], + "example": { + "total": 5, + "dnsRecords": "" + } + }, + "domainPricesList": { + "description": "Domain prices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of prices that matched your query.", + "format": "int32", + "example": 5 + }, + "prices": { + "type": "array", + "description": "List of prices.", + "items": { + "$ref": "#\/components\/schemas\/domainPrice" + }, + "example": [] + } + }, + "required": [ + "total", + "prices" + ], + "example": { + "total": 5, + "prices": "" + } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "format": "int32", + "example": 5 + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "$ref": "#\/components\/schemas\/domain" + }, + "example": [] + } + }, + "required": [ + "total", + "domains" + ], + "example": { + "total": 5, + "domains": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "Key": { + "type": "apiKey", + "name": "X-Appwrite-Key", + "description": "Your secret API key", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_API_KEY>" + } + }, + "Organization": { + "type": "apiKey", + "name": "X-Appwrite-Organization", + "description": "Your organization ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_ORGANIZATION_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "en" + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ForwardedUserAgent": { + "type": "apiKey", + "name": "X-Forwarded-User-Agent", + "description": "The user agent string of the client that made the request", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.3.x/open-api3-2.3.x.json b/specs/2.3.x/open-api3-2.3.x.json index 2e5f66239..ab2c57252 100644 --- a/specs/2.3.x/open-api3-2.3.x.json +++ b/specs/2.3.x/open-api3-2.3.x.json @@ -4542,6 +4542,19 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] }, "delete": { @@ -4550,7 +4563,7 @@ "tags": [ "account" ], - "description": "Delete all sessions from the user account and remove any sessions cookies from the end client.", + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", "responses": { "204": { "description": "No content" @@ -4590,6 +4603,19 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -4657,7 +4683,7 @@ "tags": [ "account" ], - "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", "responses": { "201": { "description": "Session", @@ -4722,6 +4748,13 @@ "type": "string", "example": "password", "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true } }, "required": [ @@ -4998,7 +5031,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -5299,6 +5332,13 @@ ], "title": "twitch" }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, { "type": "string", "enum": [ @@ -6284,7 +6324,7 @@ "parameters": [ { "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", "required": true, "schema": { "type": "string", @@ -6585,6 +6625,13 @@ ], "title": "twitch" }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, { "type": "string", "enum": [ @@ -7952,6 +7999,931 @@ } } }, + "\/analytics\/properties": { + "get": { + "summary": "List analytics properties", + "operationId": "analyticsListProperties", + "tags": [ + "analytics" + ], + "description": "List analytics properties for the current project.", + "responses": { + "200": { + "description": "Analytics properties list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsPropertyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/list-properties.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, domain, timezone, enabled, public, snippetId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "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", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create analytics property", + "operationId": "analyticsCreateProperty", + "tags": [ + "analytics" + ], + "description": "Create a new analytics property to track a website or application.", + "responses": { + "201": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/create-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "propertyId": { + "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", + "type": "string", + "example": "<PROPERTY_ID>" + }, + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>" + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Optional for native apps.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "default": "UTC", + "example": "<TIMEZONE>" + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "default": true, + "example": false + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "default": false, + "example": false + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "default": [ + "*" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "propertyId", + "name" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}": { + "get": { + "summary": "Get analytics property", + "operationId": "analyticsGetProperty", + "tags": [ + "analytics" + ], + "description": "Get an analytics property by ID.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/get-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update analytics property", + "operationId": "analyticsUpdateProperty", + "tags": [ + "analytics" + ], + "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/update-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", + "type": "string", + "example": "<DOMAIN>", + "nullable": true + }, + "timezone": { + "description": "IANA timezone used for daily boundaries.", + "type": "string", + "example": "<TIMEZONE>", + "nullable": true + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "example": false, + "nullable": true + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete analytics property", + "operationId": "analyticsDeleteProperty", + "tags": [ + "analytics" + ], + "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/delete-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "client": { + "Project": [] + }, + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID or snippet ID identifying the property.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/metrics": { + "get": { + "summary": "List analytics metrics for a property", + "operationId": "analyticsListMetrics", + "tags": [ + "analytics" + ], + "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", + "responses": { + "200": { + "description": "AnalyticsMetricList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsMetricList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "metrics", + "demo": "analytics\/list-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", + "required": false, + "schema": { + "type": "string", + "example": "1h", + "title": "AnalyticsInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + }, + { + "type": "string", + "enum": [ + "1w" + ], + "title": "One Week" + }, + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Month" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "AnalyticsDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "browser" + ], + "title": "browser" + }, + { + "type": "string", + "enum": [ + "operatingSystem" + ], + "title": "operatingSystem" + }, + { + "type": "string", + "enum": [ + "device" + ], + "title": "device" + }, + { + "type": "string", + "enum": [ + "screenSize" + ], + "title": "screenSize" + }, + { + "type": "string", + "enum": [ + "referrerSource" + ], + "title": "referrerSource" + }, + { + "type": "string", + "enum": [ + "channel" + ], + "title": "channel" + }, + { + "type": "string", + "enum": [ + "utmSource" + ], + "title": "utmSource" + }, + { + "type": "string", + "enum": [ + "utmMedium" + ], + "title": "utmMedium" + }, + { + "type": "string", + "enum": [ + "utmCampaign" + ], + "title": "utmCampaign" + }, + { + "type": "string", + "enum": [ + "utmContent" + ], + "title": "utmContent" + }, + { + "type": "string", + "enum": [ + "utmTerm" + ], + "title": "utmTerm" + }, + { + "type": "string", + "enum": [ + "page" + ], + "title": "page" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "entryPage" + ], + "title": "entryPage" + }, + { + "type": "string", + "enum": [ + "exitPage" + ], + "title": "exitPage" + }, + { + "type": "string", + "enum": [ + "trafficType" + ], + "title": "trafficType" + }, + { + "type": "string", + "enum": [ + "botName" + ], + "title": "botName" + }, + { + "type": "string", + "enum": [ + "botCategory" + ], + "title": "botCategory" + }, + { + "type": "string", + "enum": [ + "eventName" + ], + "title": "eventName" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "dateRange", + "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", + "required": false, + "schema": { + "type": "string", + "example": "<DATE_RANGE>", + "default": "30d" + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Explicit window end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of ranked values to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 100 + }, + "in": "query" + } + ] + } + }, "\/apps": { "get": { "summary": "List Applications", @@ -12147,7 +13119,7 @@ "tags": [ "avatars" ], - "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", "responses": { "200": { "description": "Image", @@ -12300,6 +13272,128 @@ "in": "query" } ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] } }, "\/avatars\/qr": { @@ -12499,14 +13593,13 @@ }, { "name": "headers", - "description": "HTTP headers to send with the browser request. Defaults to empty.", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", "required": false, "schema": { "type": "object", "default": {}, "example": { - "Authorization": "Bearer token123", - "X-Custom-Header": "value" + "Accept-Language": "en-US,en;q=0.9" } }, "in": "query" @@ -17226,6 +18319,19 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -17685,6 +18791,19 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -17731,6 +18850,19 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -18693,6 +19825,13 @@ ], "title": "transaction_logs" }, + { + "type": "string", + "enum": [ + "analyticsproperties" + ], + "title": "analytics_properties" + }, { "type": "string", "enum": [ @@ -20211,6 +21350,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] }, @@ -20456,6 +21606,20 @@ "example": false } } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } } } } @@ -20625,6 +21789,24 @@ } } } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } } } } @@ -27040,6 +28222,16 @@ "description": "Array of documents data as JSON objects.", "type": "array", "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -27188,6 +28380,16 @@ "documents": { "description": "Array of document data as JSON objects. May contain partial documents.", "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -27315,6 +28517,19 @@ "nullable": true } } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } } } } @@ -27403,6 +28618,9 @@ "items": { "type": "string" }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], "default": [] }, "in": "query" @@ -27713,6 +28931,20 @@ "nullable": true } } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } } } } @@ -27845,6 +29077,16 @@ "nullable": true } } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } } } } @@ -28442,6 +29684,9 @@ "attributes": { "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", "type": "array", + "example": [ + "username" + ], "items": { "type": "string" } @@ -28957,6 +30202,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] }, @@ -29190,6 +30446,20 @@ "example": false } } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } } } } @@ -29347,6 +30617,24 @@ } } } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } } } } @@ -30389,6 +31677,16 @@ "description": "Array of documents data as JSON objects.", "type": "array", "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -30528,6 +31826,16 @@ "documents": { "description": "Array of document data as JSON objects. May contain partial documents.", "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -30643,6 +31951,19 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } } } } @@ -30727,6 +32048,9 @@ "items": { "type": "string" }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], "default": [] }, "in": "query" @@ -31017,6 +32341,16 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } } } } @@ -31137,6 +32471,16 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } } } } @@ -31703,6 +33047,9 @@ "attributes": { "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", "type": "array", + "example": [ + "username" + ], "items": { "type": "string" } @@ -37107,6 +38454,10 @@ "texts": { "description": "Array of text to generate embeddings.", "type": "array", + "example": [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], "items": { "type": "string" } @@ -38664,6 +40015,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -38887,6 +40245,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -39017,6 +40389,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -39081,6 +40466,17 @@ "default": "runtimes" }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -41474,6 +42870,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -41697,6 +43100,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -43700,7 +45117,9 @@ "description": "The query or queries to execute.", "type": "object", "default": {}, - "example": {} + "example": { + "query": "query { localeGet { ip } }" + } } }, "required": [ @@ -43778,7 +45197,9 @@ "description": "The query or queries to execute.", "type": "object", "default": {}, - "example": {} + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } } }, "required": [ @@ -43790,6 +45211,261 @@ } } }, + "\/growth\/conversations": { + "post": { + "summary": "Create a conversation", + "operationId": "growthCreateConversation", + "tags": [ + "growth" + ], + "description": "Create a conversation with the Appwrite team: support requests, product and docs feedback, enterprise, startup and partner applications, and event sponsorship requests. Signed in console users are identified by their session or JWT; everyone else must pass an email. Attach a file of up to 5MB to support and feedback conversations.", + "responses": { + "201": { + "description": "Growth Conversation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/growthConversation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-conversation.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip},type:{param-type}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Conversation type.", + "type": "string", + "example": "support", + "title": "ConversationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "support" + ], + "title": "support" + }, + { + "type": "string", + "enum": [ + "feedback" + ], + "title": "feedback" + }, + { + "type": "string", + "enum": [ + "docs" + ], + "title": "docs" + }, + { + "type": "string", + "enum": [ + "enterprise" + ], + "title": "enterprise" + }, + { + "type": "string", + "enum": [ + "startup" + ], + "title": "startup" + }, + { + "type": "string", + "enum": [ + "partner" + ], + "title": "partner" + }, + { + "type": "string", + "enum": [ + "sponsorship" + ], + "title": "sponsorship" + } + ] + }, + "email": { + "description": "Email address to reply to. Required without a console session, ignored with one.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "name": { + "description": "Name of the person filing the conversation. Required for enterprise, startup, partner and sponsorship.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "subject": { + "description": "Conversation subject.", + "type": "string", + "default": "", + "example": "<SUBJECT>" + }, + "message": { + "description": "Conversation message. Required for support, feedback, enterprise and partner.", + "type": "string", + "default": "", + "example": "<MESSAGE>" + }, + "organizationId": { + "description": "Organization ID the conversation is about. Kept only when the session user is a member.", + "type": "string", + "default": "", + "example": "<ORGANIZATION_ID>" + }, + "projectId": { + "description": "Project ID the conversation is about. Kept only when it belongs to the kept organization.", + "type": "string", + "default": "", + "example": "<PROJECT_ID>" + }, + "attributes": { + "description": "Additional attributes for the conversation type, as an object or a JSON string.", + "type": "object", + "default": {}, + "example": {} + }, + "attachment": { + "description": "File attachment, support and feedback only, max 5MB.", + "type": "string", + "default": [], + "format": "binary" + } + }, + "required": [ + "type" + ] + }, + "examples": { + "support": { + "summary": "Ask for support", + "value": { + "type": "support", + "email": "walter.obrien@example.com", + "subject": "Custom domain stuck on verifying", + "message": "The domain has been verifying for two hours.", + "projectId": "<PROJECT_ID>" + } + }, + "feedback": { + "summary": "Share product feedback", + "value": { + "type": "feedback", + "email": "walter.obrien@example.com", + "message": "The usage page would help more with a daily breakdown.", + "attributes": { + "npsScore": 9 + } + } + }, + "docs": { + "summary": "Rate a docs page", + "value": { + "type": "docs", + "email": "walter.obrien@example.com", + "attributes": { + "rating": "positive", + "route": "\/docs\/products\/auth" + } + } + }, + "enterprise": { + "summary": "Contact sales about Enterprise", + "value": { + "type": "enterprise", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We need SSO and a dedicated region.", + "attributes": { + "companyName": "Acme", + "companySize": "500-1000", + "companyWebsite": "https:\/\/acme.example" + } + } + }, + "startup": { + "summary": "Apply to the startups program", + "value": { + "type": "startup", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "partner": { + "summary": "Apply to become a partner", + "value": { + "type": "partner", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We build Appwrite projects for agencies.", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "sponsorship": { + "summary": "Request an event sponsorship", + "value": { + "type": "sponsorship", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "eventName": "Acme Dev Summit", + "eventDate": "2026-11-14", + "eventType": "in person", + "socialHandles": "@acme", + "estimatedAttendees": 300, + "eventPublicWebLink": "https:\/\/summit.acme.example" + } + } + } + } + } + } + } + } + }, "\/growth\/installations": { "post": { "summary": "Record a self-hosted installation", @@ -43807,17 +45483,22 @@ "x-appwrite": { "group": null, "demo": "growth\/create-installation.md", - "rate-limit": 0, + "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "rate-key": [ + "url:{url},domain:{param-domain}", + "url:{url},ip:{ip}" + ], "scope": "public", "platforms": [ - "manager" + "console" ], "packaging": false, "public": true, "auth": { - "manager": [] + "console": { + "Project": [] + } } }, "security": [ @@ -44017,6 +45698,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44075,6 +45769,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44133,6 +45840,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44191,6 +45911,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44249,6 +45982,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44307,6 +46053,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -44365,6 +46124,19 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -45512,6 +47284,74 @@ } } }, + "\/manager\/organizations\/status": { + "patch": { + "summary": "Update an organization status by ID", + "operationId": "managerUpdateOrganizationStatus", + "tags": [ + "manager" + ], + "description": "Blocks or unblocks an organization, the same way a billing-limit block does. Blocking makes the organization read-only, disables its backup policies and spins down its dedicated databases.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "organizations", + "demo": "manager\/update-organization-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Organization ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "status": { + "description": "Organization status. Set to `false` to block and `true` to unblock.", + "type": "boolean", + "example": false + }, + "reason": { + "description": "Optional reason when blocking, kept in the audit trail.", + "type": "string", + "default": "", + "example": "<REASON>" + } + }, + "required": [ + "teamId", + "status" + ] + } + } + } + } + } + }, "\/manager\/projects\/{projectId}\/databases\/{databaseId}": { "get": { "summary": "Get database routing info", @@ -46029,7 +47869,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: scheduledAt, deliveredAt, deliveredTotal, status, description, 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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", "required": false, "schema": { "type": "array", @@ -46223,6 +48063,17 @@ "subject", "content" ] + }, + "examples": { + "draft": { + "summary": "Create an email draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "subject": "Welcome", + "content": "Welcome to our app.", + "draft": true + } + } } } } @@ -46297,6 +48148,18 @@ "schema": { "type": "object", "properties": { + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, "topics": { "description": "List of Topic IDs.", "type": "array", @@ -46321,30 +48184,6 @@ }, "nullable": true }, - "subject": { - "description": "Email Subject.", - "type": "string", - "example": "<SUBJECT>", - "nullable": true - }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "html": { - "description": "Is content of type HTML", - "type": "boolean", - "example": false, - "nullable": true - }, "cc": { "description": "Array of target IDs to be added as CC.", "type": "array", @@ -46361,6 +48200,14 @@ }, "nullable": true }, + "attachments": { + "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>.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, "replyToEmail": { "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", "type": "string", @@ -46374,20 +48221,24 @@ "example": "<REPLY_TO_NAME>", "nullable": true }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "example": false, + "nullable": true + }, "scheduledAt": { "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.", "type": "string", "example": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "nullable": true - }, - "attachments": { - "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>.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true } } } @@ -46590,11 +48441,28 @@ "title": "high" } ] + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<CHANNEL_ID>" } }, "required": [ "messageId" ] + }, + "examples": { + "draft": { + "summary": "Create a push notification draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "title": "Welcome", + "body": "Welcome to our app.", + "draft": true + } + } } } } @@ -46669,6 +48537,18 @@ "schema": { "type": "object", "properties": { + "title": { + "description": "Title for push notification.", + "type": "string", + "example": "<TITLE>", + "nullable": true + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "example": "<BODY>", + "nullable": true + }, "topics": { "description": "List of Topic IDs.", "type": "array", @@ -46693,18 +48573,6 @@ }, "nullable": true }, - "title": { - "description": "Title for push notification.", - "type": "string", - "example": "<TITLE>", - "nullable": true - }, - "body": { - "description": "Body for push notification.", - "type": "string", - "example": "<BODY>", - "nullable": true - }, "data": { "description": "Additional Data for push notification.", "type": "object", @@ -46802,6 +48670,12 @@ } ], "nullable": true + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", + "type": "string", + "example": "<CHANNEL_ID>", + "nullable": true } } } @@ -47008,6 +48882,16 @@ "messageId", "content" ] + }, + "examples": { + "draft": { + "summary": "Create an SMS draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "content": "Welcome to our app.", + "draft": true + } + } } } } @@ -47072,10 +48956,10 @@ }, "parameters": [ "messageId", + "content", "topics", "users", "targets", - "content", "draft", "scheduledAt" ], @@ -47115,10 +48999,10 @@ }, "parameters": [ "messageId", + "content", "topics", "users", "targets", - "content", "draft", "scheduledAt" ], @@ -47170,6 +49054,12 @@ "schema": { "type": "object", "properties": { + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, "topics": { "description": "List of Topic IDs.", "type": "array", @@ -47194,12 +49084,6 @@ }, "nullable": true }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, "draft": { "description": "Is message a draft", "type": "boolean", @@ -52058,6 +53942,9 @@ "resources": { "description": "List of resources to migrate", "type": "array", + "example": [ + "user" + ], "items": { "title": "AppwriteMigrationResource", "type": "string", @@ -53059,6 +54946,9 @@ "resources": { "description": "List of resources to migrate", "type": "array", + "example": [ + "user" + ], "items": { "title": "FirebaseMigrationResource", "type": "string", @@ -53278,7 +55168,10 @@ "title": "file" } ] - } + }, + "example": [ + "user" + ] }, "in": "query" }, @@ -53566,6 +55459,9 @@ "resources": { "description": "List of resources to migrate", "type": "array", + "example": [ + "user" + ], "items": { "title": "NHostMigrationResource", "type": "string", @@ -53837,7 +55733,10 @@ "title": "file" } ] - } + }, + "example": [ + "user" + ] }, "in": "query" }, @@ -53970,6 +55869,9 @@ "resources": { "description": "List of resources to migrate", "type": "array", + "example": [ + "user" + ], "items": { "title": "SupabaseMigrationResource", "type": "string", @@ -54236,7 +56138,10 @@ "title": "file" } ] - } + }, + "example": [ + "user" + ] }, "in": "query" }, @@ -56891,6 +58796,22 @@ "nullable": true } } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } } } } @@ -59823,6 +61744,22 @@ "nullable": true } } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } } } } @@ -60107,6 +62044,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -60964,6 +62912,105 @@ ] } }, + "\/oauth2\/{project_id}\/introspect": { + "post": { + "summary": "OAuth2 Introspect", + "operationId": "oauth2Introspect", + "tags": [ + "oauth2" + ], + "description": "Introspect an OAuth2 access token or refresh token. Authenticate with an API key holding the `oauth2.introspect` scope to introspect any token in the project, or with the client credentials of the app the token was issued to.", + "responses": { + "200": { + "description": "OAuth2 Introspection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Introspection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/introspect.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access token or refresh token to introspect.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to introspect. Can be one of: `access_token` or `refresh_token`.", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, "\/oauth2\/{project_id}\/logout": { "get": { "summary": "OAuth2 Logout", @@ -61910,6 +63957,34 @@ "required": [ "grant_type" ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } } } } @@ -64017,6 +66092,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -64651,6 +66729,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -64874,6 +66959,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -64972,6 +67071,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -65606,6 +67708,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -65829,6 +67938,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -66016,6 +68139,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -66650,6 +68776,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -66873,6 +69006,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -73230,6 +75377,22 @@ "nullable": true } } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } } } } @@ -74513,6 +76676,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -75147,6 +77313,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -75370,6 +77543,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -75452,6 +77639,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -76086,6 +78276,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -76309,6 +78506,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -76468,6 +78679,9 @@ "scopes": { "description": "Key scopes list. Maximum of 200 scopes are allowed.", "type": "array", + "example": [ + "users.read" + ], "items": { "title": "ProjectKeyScopes", "type": "string", @@ -77102,6 +79316,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -77325,6 +79546,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -77461,6 +79696,9 @@ "labels": { "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", "type": "array", + "example": [ + "production" + ], "items": { "type": "string" } @@ -78431,6 +80669,38 @@ "example": "<ENDPOINT>", "nullable": true }, + "prompt": { + "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", + "type": "array", + "items": { + "title": "ProjectOAuth2Auth0Prompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -79085,6 +81355,31 @@ "example": "<CLIENT_SECRET>", "nullable": true }, + "prompt": { + "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", + "type": "array", + "items": { + "title": "ProjectOAuth2DiscordPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -79658,6 +81953,24 @@ "example": "<CLIENT_SECRET>", "nullable": true }, + "prompt": { + "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", + "type": "array", + "items": { + "title": "ProjectOAuth2GitHubPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -80035,6 +82348,45 @@ "example": "<CLIENT_SECRET>", "nullable": true }, + "prompt": { + "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", + "type": "array", + "items": { + "title": "ProjectOAuth2KakaoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -80377,6 +82729,45 @@ "example": "<TENANT>", "nullable": true }, + "prompt": { + "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", + "type": "array", + "items": { + "title": "ProjectOAuth2MicrosoftPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -80706,6 +83097,38 @@ "example": "<AUTHORIZATION_SERVER_ID>", "nullable": true }, + "prompt": { + "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", + "type": "array", + "items": { + "title": "ProjectOAuth2OktaPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -81111,6 +83534,31 @@ "example": "<CUSTOMER_SECRET>", "nullable": true }, + "prompt": { + "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", + "type": "array", + "items": { + "title": "ProjectOAuth2SalesforcePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -81181,13 +83629,94 @@ "type": "object", "properties": { "clientId": { - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "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.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Spotify configuration.", + "responses": { + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-spotify.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", "type": "string", "example": "<CLIENT_ID>", "nullable": true }, "clientSecret": { - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", "type": "string", "example": "<CLIENT_SECRET>", "nullable": true @@ -81205,21 +83734,21 @@ } } }, - "\/project\/oauth2\/spotify": { + "\/project\/oauth2\/stripe": { "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", "tags": [ "project" ], - "description": "Update the project OAuth2 Spotify configuration.", + "description": "Update the project OAuth2 Stripe configuration.", "responses": { "200": { - "description": "OAuth2Spotify", + "description": "OAuth2Stripe", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" + "$ref": "#\/components\/schemas\/oAuth2Stripe" } } } @@ -81228,7 +83757,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-spotify.md", + "demo": "project\/update-o-auth-2-stripe.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81262,15 +83791,15 @@ "type": "object", "properties": { "clientId": { - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", "type": "string", "example": "<CLIENT_ID>", "nullable": true }, - "clientSecret": { - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "apiSecretKey": { + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", "type": "string", - "example": "<CLIENT_SECRET>", + "example": "<API_SECRET_KEY>", "nullable": true }, "enabled": { @@ -81286,21 +83815,21 @@ } } }, - "\/project\/oauth2\/stripe": { + "\/project\/oauth2\/tiktok": { "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", + "summary": "Update project OAuth2 TikTok", + "operationId": "projectUpdateOAuth2TikTok", "tags": [ "project" ], - "description": "Update the project OAuth2 Stripe configuration.", + "description": "Update the project OAuth2 TikTok configuration.", "responses": { "200": { - "description": "OAuth2Stripe", + "description": "OAuth2TikTok", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" + "$ref": "#\/components\/schemas\/oAuth2TikTok" } } } @@ -81309,7 +83838,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-stripe.md", + "demo": "project\/update-o-auth-2-tik-tok.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81343,15 +83872,15 @@ "type": "object", "properties": { "clientId": { - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", "type": "string", "example": "<CLIENT_ID>", "nullable": true }, - "apiSecretKey": { - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "clientSecret": { + "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", "type": "string", - "example": "<API_SECRET_KEY>", + "example": "<CLIENT_SECRET>", "nullable": true }, "enabled": { @@ -81367,21 +83896,21 @@ } } }, - "\/project\/oauth2\/tiktok": { + "\/project\/oauth2\/tradeshift": { "patch": { - "summary": "Update project OAuth2 TikTok", - "operationId": "projectUpdateOAuth2TikTok", + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", "tags": [ "project" ], - "description": "Update the project OAuth2 TikTok configuration.", + "description": "Update the project OAuth2 Tradeshift configuration.", "responses": { "200": { - "description": "OAuth2TikTok", + "description": "OAuth2Tradeshift", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2TikTok" + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" } } } @@ -81390,7 +83919,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-tik-tok.md", + "demo": "project\/update-o-auth-2-tradeshift.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81423,16 +83952,16 @@ "schema": { "type": "object", "properties": { - "clientId": { - "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", "type": "string", - "example": "<CLIENT_ID>", + "example": "<OAUTH2_CLIENT_ID>", "nullable": true }, - "clientSecret": { - "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", "type": "string", - "example": "<CLIENT_SECRET>", + "example": "<OAUTH2_CLIENT_SECRET>", "nullable": true }, "enabled": { @@ -81448,14 +83977,14 @@ } } }, - "\/project\/oauth2\/tradeshift": { + "\/project\/oauth2\/tradeshiftBox": { "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift configuration.", + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", "responses": { "200": { "description": "OAuth2Tradeshift", @@ -81471,7 +84000,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift.md", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81505,13 +84034,13 @@ "type": "object", "properties": { "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", "type": "string", "example": "<OAUTH2_CLIENT_ID>", "nullable": true }, "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", "type": "string", "example": "<OAUTH2_CLIENT_SECRET>", "nullable": true @@ -81529,21 +84058,21 @@ } } }, - "\/project\/oauth2\/tradeshiftBox": { + "\/project\/oauth2\/twitch": { "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "description": "Update the project OAuth2 Twitch configuration.", "responses": { "200": { - "description": "OAuth2Tradeshift", + "description": "OAuth2Twitch", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/oAuth2Twitch" } } } @@ -81552,7 +84081,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "demo": "project\/update-o-auth-2-twitch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81585,16 +84114,16 @@ "schema": { "type": "object", "properties": { - "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "clientId": { + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", "type": "string", - "example": "<OAUTH2_CLIENT_ID>", + "example": "<CLIENT_ID>", "nullable": true }, - "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "clientSecret": { + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", "type": "string", - "example": "<OAUTH2_CLIENT_SECRET>", + "example": "<CLIENT_SECRET>", "nullable": true }, "enabled": { @@ -81610,21 +84139,21 @@ } } }, - "\/project\/oauth2\/twitch": { + "\/project\/oauth2\/webflow": { "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", + "summary": "Update project OAuth2 Webflow", + "operationId": "projectUpdateOAuth2Webflow", "tags": [ "project" ], - "description": "Update the project OAuth2 Twitch configuration.", + "description": "Update the project OAuth2 Webflow configuration.", "responses": { "200": { - "description": "OAuth2Twitch", + "description": "OAuth2Webflow", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" + "$ref": "#\/components\/schemas\/oAuth2Webflow" } } } @@ -81633,7 +84162,7 @@ "deprecated": false, "x-appwrite": { "group": "oauth2", - "demo": "project\/update-o-auth-2-twitch.md", + "demo": "project\/update-o-auth-2-webflow.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -81667,13 +84196,13 @@ "type": "object", "properties": { "clientId": { - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", "type": "string", "example": "<CLIENT_ID>", "nullable": true }, "clientSecret": { - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", "type": "string", "example": "<CLIENT_SECRET>", "nullable": true @@ -82083,6 +84612,24 @@ "example": "<CLIENT_SECRET>", "nullable": true }, + "prompt": { + "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", + "type": "array", + "items": { + "title": "ProjectOAuth2ZohoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, "enabled": { "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.", "type": "boolean", @@ -82187,7 +84734,7 @@ "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 OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", + "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 OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", "content": { "application\/json": { "schema": { @@ -82237,6 +84784,9 @@ { "$ref": "#\/components\/schemas\/oAuth2WordPress" }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, { "$ref": "#\/components\/schemas\/oAuth2Twitch" }, @@ -82346,6 +84896,7 @@ "yandex": "#\/components\/schemas\/oAuth2Yandex", "x": "#\/components\/schemas\/oAuth2X", "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", "twitch": "#\/components\/schemas\/oAuth2Twitch", "stripe": "#\/components\/schemas\/oAuth2Stripe", "spotify": "#\/components\/schemas\/oAuth2Spotify", @@ -82719,6 +85270,13 @@ ], "title": "twitch" }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, { "type": "string", "enum": [ @@ -85962,6 +88520,9 @@ "emails": { "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", "type": "array", + "example": [ + "recipient@example.com" + ], "items": { "type": "string" } @@ -89604,7 +92165,7 @@ "tags": [ "proxy" ], - "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.", + "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", "responses": { "201": { "description": "Invalidation", @@ -89698,6 +92259,24 @@ "domain", "type" ] + }, + "examples": { + "tag": { + "summary": "Purge a cache tag", + "value": { + "domain": "example.com", + "type": "tag", + "reference": "<TAG>" + } + }, + "path": { + "summary": "Purge a URL path", + "value": { + "domain": "example.com", + "type": "path", + "reference": "\/blog\/hello-world" + } + } } } } @@ -90907,6 +93486,14 @@ "type": "string", "default": "", "example": "<SERVICE>" + }, + "disabledMetrics": { + "description": "Usage metrics to skip for this execution, matched by suffix. The execution is still logged.", + "type": "array", + "default": [], + "items": { + "type": "string" + } } }, "required": [ @@ -93112,6 +95699,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -93335,6 +95929,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] } @@ -93401,6 +96009,19 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } ] } }, @@ -93465,6 +96086,17 @@ "default": "runtimes" }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -93744,6 +96376,17 @@ "default": 0 }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -95508,6 +98151,13 @@ ], "title": "avatars.read" }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, { "type": "string", "enum": [ @@ -95731,6 +98381,20 @@ "oauth2.introspect" ], "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" } ] }, @@ -99302,6 +101966,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] }, @@ -99544,6 +102219,20 @@ "example": false } } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } } } } @@ -99711,6 +102400,24 @@ } } } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } } } } @@ -106614,6 +109321,9 @@ "columns": { "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", "type": "array", + "example": [ + "username" + ], "items": { "type": "string" } @@ -107161,6 +109871,16 @@ "description": "Array of rows data as JSON objects.", "type": "array", "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -107304,6 +110024,16 @@ "rows": { "description": "Array of row data as JSON objects. May contain partial rows.", "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], "items": { "type": "object" } @@ -107430,6 +110160,19 @@ "nullable": true } } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected rows", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ] + } + } } } } @@ -107517,6 +110260,9 @@ "items": { "type": "string" }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ], "default": [] }, "in": "query" @@ -107821,6 +110567,20 @@ "nullable": true } } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } } } } @@ -107952,6 +110712,16 @@ "nullable": true } } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } } } } @@ -108486,7 +111256,7 @@ "example": "<NAME>" }, "roles": { - "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.", + "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 81 characters long.", "type": "array", "default": [ "owner" @@ -109357,6 +112127,9 @@ "roles": { "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.", "type": "array", + "example": [ + "editor" + ], "items": { "type": "string" } @@ -109549,6 +112322,9 @@ "roles": { "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.", "type": "array", + "example": [ + "editor" + ], "items": { "type": "string" } @@ -110343,6 +113119,27 @@ "title": "UsageEventMetric", "type": "string", "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.events" + ], + "title": "analytics.events" + }, + { + "type": "string", + "enum": [ + "analytics.pageviews" + ], + "title": "analytics.pageviews" + }, + { + "type": "string", + "enum": [ + "analytics.bots.events" + ], + "title": "analytics.bots.events" + }, { "type": "string", "enum": [ @@ -110392,6 +113189,13 @@ ], "title": "messages.sent" }, + { + "type": "string", + "enum": [ + "messages.failed" + ], + "title": "messages.failed" + }, { "type": "string", "enum": [ @@ -110726,7 +113530,7 @@ }, { "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageEventDimension` enum: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageEventDimension` enum: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", "required": false, "schema": { "type": "array", @@ -110787,7 +113591,7 @@ }, { "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, teamId, resourceId, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization.", + "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, teamId, resourceId, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization.", "required": false, "schema": { "type": "array", @@ -110928,6 +113732,69 @@ ], "title": "resourceId" }, + { + "type": "string", + "enum": [ + "protocol" + ], + "title": "protocol" + }, + { + "type": "string", + "enum": [ + "queryKeys" + ], + "title": "queryKeys" + }, + { + "type": "string", + "enum": [ + "accept" + ], + "title": "accept" + }, + { + "type": "string", + "enum": [ + "acceptLanguage" + ], + "title": "acceptLanguage" + }, + { + "type": "string", + "enum": [ + "postalCode" + ], + "title": "postalCode" + }, + { + "type": "string", + "enum": [ + "latitude" + ], + "title": "latitude" + }, + { + "type": "string", + "enum": [ + "longitude" + ], + "title": "longitude" + }, + { + "type": "string", + "enum": [ + "timeZone" + ], + "title": "timeZone" + }, + { + "type": "string", + "enum": [ + "weatherCode" + ], + "title": "weatherCode" + }, { "type": "string", "enum": [ @@ -111142,6 +114009,13 @@ "title": "UsageGaugeMetric", "type": "string", "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.properties" + ], + "title": "analytics.properties" + }, { "type": "string", "enum": [ @@ -113352,6 +116226,9 @@ "labels": { "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", "type": "array", + "example": [ + "subscriber" + ], "items": { "type": "string" } @@ -116152,6 +119029,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] }, @@ -116399,6 +119287,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -116841,6 +119740,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] } @@ -117144,6 +120054,17 @@ "default": [] }, "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" } ] }, @@ -117377,6 +120298,20 @@ "example": false } } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } } } } @@ -117529,7 +120464,15 @@ "collectionId": "<COLLECTION_ID>", "documentId": "<DOCUMENT_ID>", "data": { - "name": "Walter O'Brien" + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } } } ], @@ -117538,6 +120481,32 @@ } } } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } } } } @@ -117947,7 +120916,7 @@ "dimension": { "description": "Embedding dimension.", "type": "integer", - "example": 1, + "example": 4, "format": "int32" }, "permissions": { @@ -118142,7 +121111,7 @@ "dimension": { "description": "Embedding dimensions.", "type": "integer", - "example": 1, + "example": 4, "format": "int32" }, "permissions": { @@ -118571,6 +121540,20 @@ "description": "Array of documents data as JSON objects.", "type": "array", "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], "items": { "type": "object" } @@ -118710,6 +121693,20 @@ "documents": { "description": "Array of document data as JSON objects. May contain partial documents.", "type": "array", + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], "items": { "type": "object" } @@ -118825,6 +121822,21 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "updateSelected": { + "summary": "Update metadata on explicitly selected documents", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } } } } @@ -118909,6 +121921,9 @@ "items": { "type": "string" }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], "default": [] }, "in": "query" @@ -119316,6 +122331,24 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } } } } @@ -119436,6 +122469,18 @@ "example": "<TRANSACTION_ID>" } } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } } } } @@ -119765,6 +122810,9 @@ "attributes": { "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", "type": "array", + "example": [ + "embeddings" + ], "items": { "type": "string" } @@ -120476,6 +123524,19 @@ "resourceType", "name" ] + }, + "examples": { + "scoped": { + "summary": "Bypass other rules for an IP", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Office network", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" + ] + } + } } } } @@ -120726,6 +123787,19 @@ "resourceType", "name" ] + }, + "examples": { + "scoped": { + "summary": "Challenge requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Challenge sign-ins", + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } } } } @@ -120976,6 +124050,19 @@ "resourceType", "name" ] + }, + "examples": { + "scoped": { + "summary": "Deny requests from an IP range", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Block abusive range", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" + ] + } + } } } } @@ -121239,6 +124326,21 @@ "limit", "interval" ] + }, + "examples": { + "scoped": { + "summary": "Rate limit requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Limit sign-ins", + "limit": 10, + "interval": 60, + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } } } } @@ -121509,6 +124611,21 @@ "location", "statusCode" ] + }, + "examples": { + "scoped": { + "summary": "Redirect requests for a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Moved page", + "location": "\/new-page", + "statusCode": 301, + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" + ] + } + } } } } @@ -121914,6 +125031,9 @@ "events": { "description": "Events list. Maximum of 100 events are allowed.", "type": "array", + "example": [ + "users.*.create" + ], "items": { "type": "string" } @@ -122105,6 +125225,9 @@ "events": { "description": "Events list. Maximum of 100 events are allowed.", "type": "array", + "example": [ + "users.*.create" + ], "items": { "type": "string" } @@ -122128,11 +125251,11 @@ "example": "<AUTH_USERNAME>" }, "authPassword": { - "description": "Webhook HTTP password. Max length: 256 chars.", + "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", "type": "string", - "default": "", "example": "password", - "format": "password" + "format": "password", + "nullable": true } }, "required": [ @@ -122440,6 +125563,10 @@ "name": "activities", "description": "The Activities service allows you to list and inspect project activity events." }, + { + "name": "analytics", + "description": "" + }, { "name": "waf", "description": "" @@ -122458,7 +125585,7 @@ }, { "name": "growth", - "description": "" + "description": "The Growth service allows you to contact the Appwrite team and record self-hosted installations." } ], "components": { @@ -131979,202 +135106,401 @@ "impersonatorUserId": "5e5ea5c16897e" } }, - "algoMd5": { - "description": "AlgoMD5", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "md5" - } - }, - "required": [ - "type" - ], - "example": { - "type": "md5" - } - }, - "algoSha": { - "description": "AlgoSHA", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "sha" - } - }, - "required": [ - "type" - ], - "example": { - "type": "sha" - } - }, - "algoPhpass": { - "description": "AlgoPHPass", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "phpass" - } - }, - "required": [ - "type" - ], - "example": { - "type": "phpass" - } - }, - "algoBcrypt": { - "description": "AlgoBcrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "bcrypt" - } - }, - "required": [ - "type" - ], - "example": { - "type": "bcrypt" - } - }, - "algoScrypt": { - "description": "AlgoScrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scrypt" - }, - "costCpu": { - "type": "integer", - "description": "CPU complexity of computed hash.", - "format": "int32", - "example": 8 - }, - "costMemory": { - "type": "integer", - "description": "Memory complexity of computed hash.", - "format": "int32", - "example": 14 - }, - "costParallel": { - "type": "integer", - "description": "Parallelization of computed hash.", - "format": "int32", - "example": 1 - }, - "length": { - "type": "integer", - "description": "Length used to compute hash.", - "format": "int32", - "example": 64 - } - }, - "required": [ - "type", - "costCpu", - "costMemory", - "costParallel", - "length" - ], - "example": { - "type": "scrypt", - "costCpu": 8, - "costMemory": 14, - "costParallel": 1, - "length": 64 - } - }, - "algoScryptModified": { - "description": "AlgoScryptModified", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scryptMod" - }, - "salt": { - "type": "string", - "description": "Salt used to compute hash.", - "example": "UxLMreBr6tYyjQ==" - }, - "saltSeparator": { - "type": "string", - "description": "Separator used to compute hash.", - "example": "Bw==" - }, - "signerKey": { - "type": "string", - "description": "Key used to compute hash.", - "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "required": [ - "type", - "salt", - "saltSeparator", - "signerKey" - ], - "example": { - "type": "scryptMod", - "salt": "UxLMreBr6tYyjQ==", - "saltSeparator": "Bw==", - "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "algoArgon2": { - "description": "AlgoArgon2", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "argon2" - }, - "memoryCost": { - "type": "integer", - "description": "Memory used to compute hash.", - "format": "int32", - "example": 65536 - }, - "timeCost": { - "type": "integer", - "description": "Amount of time consumed to compute hash", - "format": "int32", - "example": 4 - }, - "threads": { - "type": "integer", - "description": "Number of threads used to compute hash.", - "format": "int32", - "example": 3 - } - }, - "required": [ - "type", - "memoryCost", - "timeCost", - "threads" - ], - "example": { - "type": "argon2", - "memoryCost": 65536, - "timeCost": 4, - "threads": 3 - } - }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, "preferences": { "description": "Preferences", "type": "object", @@ -136294,7 +139620,7 @@ }, "authPassword": { "type": "string", - "description": "HTTP basic authentication password.", + "description": "HTTP basic authentication password. Write-only: always returned empty.", "format": "password", "example": "webhook-password" }, @@ -136581,19 +139907,42 @@ "type": "string", "description": "GitHub OAuth2 client secret.", "example": "5e07c00000000000000000000000000000198bcc" + }, + "prompt": { + "type": "array", + "description": "GitHub OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "select_account" + ] } }, "required": [ "$id", "enabled", "clientId", - "clientSecret" + "clientSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, "clientId": "e4d87900000000540733", - "clientSecret": "5e07c00000000000000000000000000000198bcc" + "clientSecret": "5e07c00000000000000000000000000000198bcc", + "prompt": [ + "select_account" + ] } }, "oAuth2Discord": { @@ -136619,19 +139968,49 @@ "type": "string", "description": "Discord OAuth2 client secret.", "example": "YmPXnM000000000000000000002zFg5D" + }, + "prompt": { + "type": "array", + "description": "Discord OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] } }, "required": [ "$id", "enabled", "clientId", - "clientSecret" + "clientSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, "clientId": "950722000000343754", - "clientSecret": "YmPXnM000000000000000000002zFg5D" + "clientSecret": "YmPXnM000000000000000000002zFg5D", + "prompt": [ + "none" + ] } }, "oAuth2Figma": { @@ -137057,19 +140436,42 @@ "type": "string", "description": "Zoho OAuth2 client secret.", "example": "fb5cac000000000000000000000000000000a68f6e" + }, + "prompt": { + "type": "array", + "description": "Zoho OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "consent" + ] } }, "required": [ "$id", "enabled", "clientId", - "clientSecret" + "clientSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, "clientId": "1000.83C178000000000000000000RPNX0B", - "clientSecret": "fb5cac000000000000000000000000000000a68f6e" + "clientSecret": "fb5cac000000000000000000000000000000a68f6e", + "prompt": [ + "consent" + ] } }, "oAuth2Yandex": { @@ -137186,6 +140588,44 @@ "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" } }, + "oAuth2Webflow": { + "description": "OAuth2Webflow", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Webflow OAuth2 client ID.", + "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" + }, + "clientSecret": { + "type": "string", + "description": "Webflow OAuth2 client secret.", + "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", + "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, "oAuth2Twitch": { "description": "OAuth2Twitch", "type": "object", @@ -137437,19 +140877,49 @@ "type": "string", "description": "Salesforce OAuth2 consumer secret.", "example": "3w000000000000e2" + }, + "prompt": { + "type": "array", + "description": "Salesforce OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "login" + ] } }, "required": [ "$id", "enabled", "customerKey", - "customerSecret" + "customerSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "customerSecret": "3w000000000000e2" + "customerSecret": "3w000000000000e2", + "prompt": [ + "login" + ] } }, "oAuth2Yahoo": { @@ -137984,6 +141454,39 @@ "description": "Auth0 OAuth2 client secret.", "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" }, + "prompt": { + "type": "array", + "description": "Auth0 OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, "endpoint": { "type": "string", "description": "Auth0 OAuth2 endpoint domain.", @@ -137995,6 +141498,7 @@ "enabled", "clientId", "clientSecret", + "prompt", "endpoint" ], "example": { @@ -138002,6 +141506,9 @@ "enabled": false, "clientId": "OaOkIA000000000000000000005KLSYq", "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "prompt": [ + "none" + ], "endpoint": "example.us.auth0.com" } }, @@ -138126,26 +141633,6 @@ "description": "OpenID Connect OAuth2 client secret.", "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", - "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/authorize" - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/token" - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/userinfo" - }, "prompt": { "type": "array", "description": "OpenID Connect prompt values controlling the authentication and consent screens.", @@ -138183,9 +141670,29 @@ ] }, "example": [ - "consent" + "none" ] }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/authorize" + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/token" + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, "maxAge": { "type": "integer", "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", @@ -138199,24 +141706,24 @@ "enabled", "clientId", "clientSecret", + "prompt", "wellKnownURL", "authorizationURL", "tokenURL", - "userInfoURL", - "prompt" + "userInfoURL" ], "example": { "$id": "github", "enabled": false, "clientId": "qibI2x0000000000000000000000000006L2YFoG", "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "prompt": [ + "none" + ], "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", - "prompt": [ - "consent" - ], "maxAge": 3600 } }, @@ -138244,6 +141751,39 @@ "description": "Okta OAuth2 client secret.", "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" }, + "prompt": { + "type": "array", + "description": "Okta OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, "domain": { "type": "string", "description": "Okta OAuth2 domain.", @@ -138260,6 +141800,7 @@ "enabled", "clientId", "clientSecret", + "prompt", "domain", "authorizationServerId" ], @@ -138268,6 +141809,9 @@ "enabled": false, "clientId": "0oa00000000000000698", "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "prompt": [ + "none" + ], "domain": "trial-6400025.okta.com", "authorizationServerId": "aus000000000000000h7z" } @@ -138407,6 +141951,46 @@ "description": "Microsoft OAuth2 application secret.", "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" }, + "prompt": { + "type": "array", + "description": "Microsoft OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, "tenant": { "type": "string", "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", @@ -138418,6 +142002,7 @@ "enabled", "applicationId", "applicationSecret", + "prompt", "tenant" ], "example": { @@ -138425,6 +142010,9 @@ "enabled": false, "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "prompt": [ + "none" + ], "tenant": "common" } }, @@ -138527,19 +142115,63 @@ "type": "string", "description": "Kakao OAuth2 client secret.", "example": "jLNVOK00000000000000000000yJebea" + }, + "prompt": { + "type": "array", + "description": "Kakao OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] } }, "required": [ "$id", "enabled", "clientId", - "clientSecret" + "clientSecret", + "prompt" ], "example": { "$id": "github", "enabled": false, "clientId": "839ff5000000000000000000013206de", - "clientSecret": "jLNVOK00000000000000000000yJebea" + "clientSecret": "jLNVOK00000000000000000000yJebea", + "prompt": [ + "none" + ] } }, "oAuth2ProviderList": { @@ -138602,6 +142234,9 @@ { "$ref": "#\/components\/schemas\/oAuth2WordPress" }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, { "$ref": "#\/components\/schemas\/oAuth2Twitch" }, @@ -138714,6 +142349,7 @@ "yandex": "#\/components\/schemas\/oAuth2Yandex", "x": "#\/components\/schemas\/oAuth2X", "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", "twitch": "#\/components\/schemas\/oAuth2Twitch", "stripe": "#\/components\/schemas\/oAuth2Stripe", "spotify": "#\/components\/schemas\/oAuth2Spotify", @@ -140264,6 +143900,36 @@ "example": "California", "nullable": true }, + "postalCode": { + "type": "string", + "description": "Postal code when broken down by `postalCode`.", + "example": "94043", + "nullable": true + }, + "latitude": { + "type": "string", + "description": "Latitude when broken down by `latitude`.", + "example": "37.4223", + "nullable": true + }, + "longitude": { + "type": "string", + "description": "Longitude when broken down by `longitude`.", + "example": "-122.0848", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Time zone when broken down by `timeZone`.", + "example": "America\/Los_Angeles", + "nullable": true + }, + "weatherCode": { + "type": "string", + "description": "Weather station code when broken down by `weatherCode`.", + "example": "USCA0746", + "nullable": true + }, "isp": { "type": "string", "description": "Internet service provider when broken down by `isp`.", @@ -140337,6 +144003,11 @@ "continentCode": "NA", "city": "Mountain View", "subdivisions": "California", + "postalCode": "94043", + "latitude": "37.4223", + "longitude": "-122.0848", + "timeZone": "America\/Los_Angeles", + "weatherCode": "USCA0746", "isp": "Google", "autonomousSystemNumber": "15169", "autonomousSystemOrganization": "GOOGLE", @@ -140542,7 +144213,7 @@ "example": "n3u9feiwmf" }, "deploymentResourceType": { - "description": "Type of deployment. Possible values are \"function\", \"site\". Used if rule's type is \"deployment\".", + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", "example": "function", "type": "string", "oneOf": [ @@ -140559,6 +144230,13 @@ "site" ], "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" } ], "nullable": true @@ -143483,6 +147161,225 @@ "resources": "" } }, + "analyticsMetric": { + "description": "AnalyticsMetric", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", + "example": "google.com", + "nullable": true + }, + "date": { + "type": "string", + "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", + "example": "2026-05-01T00:00:00.000+00:00", + "nullable": true + }, + "visitors": { + "type": "integer", + "description": "Unique visitors in the requested range.", + "format": "int32", + "example": 1234 + }, + "sessions": { + "type": "integer", + "description": "Unique sessions in the requested range.", + "format": "int32", + "example": 4567 + }, + "pageviews": { + "type": "integer", + "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 5678, + "nullable": true + }, + "events": { + "type": "integer", + "description": "Total events in the requested range.", + "format": "int32", + "example": 8910 + }, + "visits": { + "type": "integer", + "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 2345, + "nullable": true + }, + "bounceRate": { + "type": "number", + "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 42.5, + "nullable": true + }, + "visitDuration": { + "type": "number", + "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 75.4, + "nullable": true + }, + "viewsPerVisit": { + "type": "number", + "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 2.7, + "nullable": true + }, + "scrollDepth": { + "type": "number", + "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 65, + "nullable": true + }, + "engagementTime": { + "type": "number", + "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 18432, + "nullable": true + } + }, + "required": [ + "visitors", + "sessions", + "events" + ], + "example": { + "value": "google.com", + "date": "2026-05-01T00:00:00.000+00:00", + "visitors": 1234, + "sessions": 4567, + "pageviews": 5678, + "events": 8910, + "visits": 2345, + "bounceRate": 42.5, + "visitDuration": 75.4, + "viewsPerVisit": 2.7, + "scrollDepth": 65, + "engagementTime": 18432 + } + }, + "analyticsMetricList": { + "description": "AnalyticsMetricList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of metric rows returned.", + "format": "int32", + "example": 30 + }, + "metrics": { + "type": "array", + "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", + "items": { + "$ref": "#\/components\/schemas\/analyticsMetric" + }, + "example": [] + } + }, + "required": [ + "total", + "metrics" + ], + "example": { + "total": 30, + "metrics": [] + } + }, + "analyticsProperty": { + "description": "AnalyticsProperty", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Analytics property ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Property creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Property update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human-readable name of the tracked website or application.", + "example": "My Website" + }, + "domain": { + "type": "string", + "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", + "example": "example.com" + }, + "timezone": { + "type": "string", + "description": "IANA timezone used to define the daily boundary for stats.", + "example": "UTC" + }, + "enabled": { + "type": "boolean", + "description": "Whether tracking is currently active.", + "example": true + }, + "public": { + "type": "boolean", + "description": "Whether stats for this property are publicly viewable.", + "example": false + }, + "allowedOrigins": { + "type": "array", + "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + }, + "snippetId": { + "type": "string", + "description": "Unique identifier for the tracking script snippet.", + "example": "snp_a1b2c3d4e5" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "domain", + "timezone", + "enabled", + "public", + "allowedOrigins", + "snippetId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Website", + "domain": "example.com", + "timezone": "UTC", + "enabled": true, + "public": false, + "allowedOrigins": [ + "https:\/\/example.com" + ], + "snippetId": "snp_a1b2c3d4e5" + } + }, "aggregationTeam": { "description": "Team", "type": "object", @@ -143771,9 +147668,10 @@ }, "size": { "type": "integer", - "description": "Archive size in bytes.", + "description": "Archive size in bytes. Null until the size is known.", "format": "int32", - "example": 100000 + "example": 100000, + "nullable": true }, "status": { "type": "string", @@ -143782,8 +147680,9 @@ }, "startedAt": { "type": "string", - "description": "The backup start time.", - "example": "2020-10-15T06:38:00.000+00:00" + "description": "The backup start time. Null until the backup starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, "migrationId": { "type": "string", @@ -143828,9 +147727,7 @@ "$createdAt", "$updatedAt", "policyId", - "size", "status", - "startedAt", "migrationId", "services", "resources" @@ -144450,12 +148347,13 @@ }, "usage": { "type": "object", - "description": "Additional resources", + "description": "Additional resources. Null when the plan does not support usage billing.", "allOf": [ { "$ref": "#\/components\/schemas\/usageBillingPlan" } - ] + ], + "nullable": true }, "addons": { "type": "object", @@ -144721,7 +148619,6 @@ "usageLogs", "projectInactivityDays", "alertLimit", - "usage", "addons", "budgetCapEnabled", "customSmtp", @@ -146423,7 +150320,7 @@ }, "connections": { "type": "object", - "description": "Connection statistics.", + "description": "Connection statistics. Null when the database has not been probed.", "example": { "current": 12, "max": 100 @@ -146432,7 +150329,8 @@ { "$ref": "#\/components\/schemas\/databaseStatusConnections" } - ] + ], + "nullable": true }, "syncMode": { "type": "string", @@ -146515,7 +150413,6 @@ "engine", "version", "uptime", - "connections", "syncMode", "syncDegraded", "syncAcknowledgements", @@ -147495,6 +151392,37 @@ "organizationCredits": 0 } }, + "growthConversation": { + "description": "Growth Conversation", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Conversation type.", + "example": "support" + }, + "email": { + "type": "string", + "description": "Email address the conversation was filed under. For a signed in console user this is the account email.", + "example": "john@appwrite.io" + }, + "organizationId": { + "type": "string", + "description": "Organization ID the conversation was filed against. Empty when none was given or the user is not a member.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "type", + "email", + "organizationId" + ], + "example": { + "type": "support", + "email": "john@appwrite.io", + "organizationId": "5e5ea5c16897e" + } + }, "dedicatedDatabaseExtensions": { "description": "Extensions", "type": "object", @@ -148684,7 +152612,7 @@ ] } ], - "config": [], + "config": {}, "resourceInternalId": 1 } }, @@ -149897,8 +153825,9 @@ }, "startedAt": { "type": "string", - "description": "The backup start time.", - "example": "2020-10-15T06:38:00.000+00:00" + "description": "The restoration start time. Null until the restoration starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, "migrationId": { "type": "string", @@ -149926,9 +153855,20 @@ ] }, "options": { - "type": "string", - "description": "Optional data in key-value object. ", - "example": "{databases.database[{oldId, newId, newName}]}" + "type": "object", + "additionalProperties": true, + "description": "Restoration options as a key-value object.", + "example": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } } }, "required": [ @@ -149938,7 +153878,6 @@ "archiveId", "policyId", "status", - "startedAt", "migrationId", "services", "resources", @@ -149955,7 +153894,17 @@ "migrationId": "did8jx6ws45jana098ab7", "services": "['databases', 'storage']", "resources": "['databases', 'collections', 'attributes', 'indexes']", - "options": "{databases.database[{oldId, newId, newName}]}" + "options": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } } }, "dedicatedDatabaseRestorationList": { @@ -150109,7 +154058,7 @@ "example": "n3u9feiwmf" }, "deploymentResourceType": { - "description": "Type of deployment. Possible values are \"function\", \"site\". Used if rule's type is \"deployment\".", + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", "example": "function", "type": "string", "oneOf": [ @@ -150126,6 +154075,13 @@ "site" ], "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" } ], "nullable": true @@ -150954,6 +154910,12 @@ "format": "int32", "example": 0 }, + "avatarsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total custom user photos storage.", + "format": "int32", + "example": 0 + }, "storageTotal": { "type": "integer", "description": "Aggregated stats for total storage.", @@ -151044,6 +155006,7 @@ "databasesReadsTotal", "databasesWritesTotal", "backupsStorageTotal", + "avatarsStorageTotal", "storageTotal", "authPhoneTotal", "authPhoneEstimate", @@ -151076,6 +155039,7 @@ "databasesReadsTotal": 0, "databasesWritesTotal": 0, "backupsStorageTotal": 0, + "avatarsStorageTotal": 0, "storageTotal": 0, "authPhoneTotal": 0, "authPhoneEstimate": 0, @@ -152250,6 +156214,126 @@ "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." } }, + "oauth2Introspection": { + "description": "OAuth2 Introspection", + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the token is currently active. An inactive token carries no other claims (RFC 7662).", + "example": true + }, + "token_use": { + "type": "string", + "description": "Kind of token that was introspected. Can be one of: `access_token` or `refresh_token`.", + "example": "access_token", + "nullable": true + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer", + "nullable": true + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the token.", + "example": "openid email profile", + "nullable": true + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID the token was issued to.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "sub": { + "type": "string", + "description": "ID of the user who authorized the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "aud": { + "type": "array", + "description": "Audiences the token is intended for. The first entry is the project API base URL; any further entries are the resource indicators requested at authorization time (RFC 8707).", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "nullable": true + }, + "iss": { + "type": "string", + "description": "Issuer URL of the token.", + "example": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "nullable": true + }, + "exp": { + "type": "integer", + "description": "Expiration time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735689600, + "nullable": true + }, + "iat": { + "type": "integer", + "description": "Issued-at time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735686000, + "nullable": true + }, + "jti": { + "type": "string", + "description": "Unique identifier of the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "authorization_details": { + "type": "array", + "description": "Granted RFC 9396 authorization details, restricted to what the user can currently access.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ], + "nullable": true + } + }, + "required": [ + "active" + ], + "example": { + "active": true, + "token_use": "access_token", + "token_type": "Bearer", + "scope": "openid email profile", + "client_id": "5e5ea5c16897e", + "sub": "5e5ea5c16897e", + "aud": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "iss": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "exp": 1735689600, + "iat": 1735686000, + "jti": "5e5ea5c16897e", + "authorization_details": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ] + } + }, "oauth2Consent": { "description": "OAuth2 Consent", "type": "object", @@ -152617,7 +156701,7 @@ ] } ], - "config": [] + "config": {} } }, "wafRuleBypass": { @@ -152784,7 +156868,7 @@ ] } ], - "config": [] + "config": {} } }, "wafRuleDeny": { @@ -152951,7 +157035,7 @@ ] } ], - "config": [] + "config": {} } }, "wafRuleChallenge": { @@ -153138,7 +157222,7 @@ ] } ], - "config": [], + "config": {}, "challengeType": "compute", "difficulty": 3, "ttl": 1800 @@ -153341,7 +157425,7 @@ ] } ], - "config": [], + "config": {}, "limit": 1000, "interval": 60, "key": "userId", @@ -153526,7 +157610,7 @@ ] } ], - "config": [], + "config": {}, "location": "\/maintenance", "statusCode": 301 } @@ -153803,6 +157887,34 @@ "addons": "" } }, + "analyticsPropertyList": { + "description": "Analytics properties list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of properties that matched your query.", + "format": "int32", + "example": 5 + }, + "properties": { + "type": "array", + "description": "List of properties.", + "items": { + "$ref": "#\/components\/schemas\/analyticsProperty" + }, + "example": [] + } + }, + "required": [ + "total", + "properties" + ], + "example": { + "total": 5, + "properties": "" + } + }, "aggregationTeamList": { "description": "Aggregation team list", "type": "object", From a6f7c34c68878da07e13b66acf4aaddfd43ba22d Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal <chiragaggarwal5k@gmail.com> Date: Mon, 5 Oct 2026 13:50:00 +0100 Subject: [PATCH 2/2] chore: keep only the canonical OpenAPI document for 2.3.x --- specs/2.3.x/open-api3-2.3.x-client.json | 29547 ---- specs/2.3.x/open-api3-2.3.x-console.json | 149070 -------------------- specs/2.3.x/open-api3-2.3.x-server.json | 123325 ---------------- 3 files changed, 301942 deletions(-) delete mode 100644 specs/2.3.x/open-api3-2.3.x-client.json delete mode 100644 specs/2.3.x/open-api3-2.3.x-console.json delete mode 100644 specs/2.3.x/open-api3-2.3.x-server.json diff --git a/specs/2.3.x/open-api3-2.3.x-client.json b/specs/2.3.x/open-api3-2.3.x-client.json deleted file mode 100644 index c256a08d8..000000000 --- a/specs/2.3.x/open-api3-2.3.x-client.json +++ /dev/null @@ -1,29547 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "version": "2.3.0", - "title": "Appwrite", - "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", - "termsOfService": "https:\/\/appwrite.io\/policy\/terms", - "contact": { - "name": "Appwrite Team", - "url": "https:\/\/appwrite.io\/support", - "email": "team@appwrite.io" - }, - "license": { - "name": "BSD-3-Clause", - "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" - } - }, - "servers": [ - { - "url": "https:\/\/cloud.appwrite.io\/v1", - "description": "Appwrite Cloud endpoint." - }, - { - "url": "https:\/\/{region}.cloud.appwrite.io\/v1", - "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", - "variables": { - "region": { - "default": "fra", - "description": "Appwrite Cloud region." - } - } - } - ], - "paths": { - "\/account": { - "get": { - "summary": "Get account", - "operationId": "accountGet", - "tags": [ - "account" - ], - "description": "Get the currently logged in user.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create account", - "operationId": "accountCreate", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/create.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/consents": { - "get": { - "summary": "List consents", - "operationId": "accountListConsents", - "tags": [ - "account" - ], - "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", - "responses": { - "200": { - "description": "OAuth2 consents list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}": { - "get": { - "summary": "Get consent", - "operationId": "accountGetConsent", - "tags": [ - "account" - ], - "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", - "responses": { - "200": { - "description": "OAuth2 Consent", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Consent" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent", - "operationId": "accountDeleteConsent", - "tags": [ - "account" - ], - "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens": { - "get": { - "summary": "List consent tokens", - "operationId": "accountListConsentTokens", - "tags": [ - "account" - ], - "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 consent tokens list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consent-tokens.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { - "get": { - "summary": "Get consent token", - "operationId": "accountGetConsentToken", - "tags": [ - "account" - ], - "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 Consent Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent token", - "operationId": "accountDeleteConsentToken", - "tags": [ - "account" - ], - "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/email": { - "patch": { - "summary": "Update email", - "operationId": "accountUpdateEmail", - "tags": [ - "account" - ], - "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/identities": { - "get": { - "summary": "List identities", - "operationId": "accountListIdentities", - "tags": [ - "account" - ], - "description": "Get the list of identities for the currently logged in user.", - "responses": { - "200": { - "description": "Identities List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/identityList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "accountDeleteIdentity", - "tags": [ - "account" - ], - "description": "Delete an identity by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/delete-identity.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "identityId", - "description": "Identity ID.", - "required": true, - "schema": { - "type": "string", - "example": "<IDENTITY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/jwts": { - "post": { - "summary": "Create JWT", - "operationId": "accountCreateJWT", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", - "responses": { - "201": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-jwt.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "type": "integer", - "default": 900, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/account\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "accountUpdateMFA", - "tags": [ - "account" - ], - "description": "Enable or disable MFA on an account.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "description": "Enable or disable MFA.", - "type": "boolean", - "example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } - } - }, - "\/account\/mfa\/authenticators\/{type}": { - "post": { - "summary": "Create authenticator", - "operationId": "accountCreateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "responses": { - "200": { - "description": "MFAType", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaType" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - }, - "methods": [ - { - "name": "createMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - } - }, - { - "name": "createMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator. Must be `totp`", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update authenticator (confirmation)", - "operationId": "accountUpdateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - }, - "methods": [ - { - "name": "updateMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - } - }, - { - "name": "updateMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "otp" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete authenticator", - "operationId": "accountDeleteMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Delete an authenticator for a user by ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/account\/mfa\/challenges": { - "post": { - "summary": "Create MFA challenge", - "operationId": "accountCreateMfaChallenge", - "tags": [ - "account" - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Challenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaChallenge" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - }, - "methods": [ - { - "name": "createMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - } - }, - { - "name": "createMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "factor": { - "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", - "type": "string", - "example": "email", - "title": "AuthenticationFactor", - "oneOf": [ - { - "type": "string", - "enum": [ - "email" - ], - "title": "email" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - }, - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - }, - { - "type": "string", - "enum": [ - "recoverycode" - ], - "title": "recoverycode" - }, - { - "type": "string", - "enum": [ - "custom" - ], - "title": "custom" - } - ] - } - }, - "required": [ - "factor" - ] - } - } - } - } - }, - "put": { - "summary": "Update MFA challenge (confirmation)", - "operationId": "accountUpdateMfaChallenge", - "tags": [ - "account" - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},challengeId:{param-challengeId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - }, - "methods": [ - { - "name": "updateMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - } - }, - { - "name": "updateMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "challengeId": { - "description": "ID of the challenge.", - "type": "string", - "example": "<CHALLENGE_ID>" - }, - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "challengeId", - "otp" - ] - } - } - } - } - } - }, - "\/account\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "accountListMfaFactors", - "tags": [ - "account" - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "responses": { - "200": { - "description": "MFAFactors", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/mfa\/recovery-codes": { - "get": { - "summary": "List MFA recovery codes", - "operationId": "accountGetMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/get-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create MFA recovery codes", - "operationId": "accountCreateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "accountUpdateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/name": { - "patch": { - "summary": "Update name", - "operationId": "accountUpdateName", - "tags": [ - "account" - ], - "description": "Update currently logged in user account name.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/account\/password": { - "patch": { - "summary": "Update password", - "operationId": "accountUpdatePassword", - "tags": [ - "account" - ], - "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-password.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "description": "New user password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "oldPassword": { - "description": "Current user password. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/account\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "accountUpdatePhone", - "tags": [ - "account" - ], - "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "phone", - "password" - ] - } - } - } - } - } - }, - "\/account\/prefs": { - "get": { - "summary": "Get account preferences", - "operationId": "accountGetPrefs", - "tags": [ - "account" - ], - "description": "Get the preferences as a key-value object for the currently logged in user.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update preferences", - "operationId": "accountUpdatePrefs", - "tags": [ - "account" - ], - "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/account\/recovery": { - "post": { - "summary": "Create password recovery", - "operationId": "accountCreateRecovery", - "tags": [ - "account" - ], - "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "email", - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (confirmation)", - "operationId": "accountUpdateRecovery", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid reset token.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/recovery\/otp": { - "post": { - "summary": "Create password recovery (OTP)", - "operationId": "accountCreateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "email" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (OTP)", - "operationId": "accountUpdateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid recovery OTP code.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions": { - "get": { - "summary": "List sessions", - "operationId": "accountListSessions", - "tags": [ - "account" - ], - "description": "Get the list of active sessions across different devices for the currently logged in user.", - "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "delete": { - "summary": "Delete sessions", - "operationId": "accountDeleteSessions", - "tags": [ - "account" - ], - "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-sessions.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "current", - "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/sessions\/anonymous": { - "post": { - "summary": "Create anonymous session", - "operationId": "accountCreateAnonymousSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-anonymous-session.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/sessions\/email": { - "post": { - "summary": "Create email password session", - "operationId": "accountCreateEmailPasswordSession", - "tags": [ - "account" - ], - "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-email-password-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "duration": { - "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions\/id-token": { - "post": { - "summary": "Create ID token session", - "operationId": "accountCreateIdTokenSession", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-id-token-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", - "type": "string", - "example": "apple", - "title": "IdTokenProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - } - ] - }, - "idToken": { - "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", - "type": "string", - "example": "<ID_TOKEN>" - }, - "nonce": { - "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "accessToken": { - "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", - "type": "string", - "default": "", - "example": "<ACCESS_TOKEN>" - }, - "accessTokenExpiry": { - "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "name": { - "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "provider", - "idToken" - ] - } - } - } - } - } - }, - "\/account\/sessions\/magic-url": { - "put": { - "summary": "Update magic URL session", - "operationId": "accountUpdateMagicURLSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-magic-url-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/oauth2\/{provider}": { - "get": { - "summary": "Create OAuth2 session", - "operationId": "accountCreateOAuth2Session", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "301": { - "description": "No content", - "content": { - "text\/html": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-o-auth-2-session.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "OAuthProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - }, - { - "name": "success", - "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "failure", - "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "scopes", - "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/sessions\/phone": { - "put": { - "summary": "Update phone session", - "operationId": "accountUpdatePhoneSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-phone-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/token": { - "post": { - "summary": "Create session", - "operationId": "accountCreateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/{sessionId}": { - "get": { - "summary": "Get session", - "operationId": "accountGetSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/get-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to get the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update session", - "operationId": "accountUpdateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to update the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete session", - "operationId": "accountDeleteSession", - "tags": [ - "account" - ], - "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-session.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to delete the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - } - }, - "\/account\/status": { - "patch": { - "summary": "Update status", - "operationId": "accountUpdateStatus", - "tags": [ - "account" - ], - "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/targets\/push": { - "post": { - "summary": "Create push target", - "operationId": "accountCreatePushTarget", - "tags": [ - "account" - ], - "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", - "responses": { - "201": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/create-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetId": { - "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TARGET_ID>" - }, - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - } - }, - "required": [ - "targetId", - "identifier" - ] - } - } - } - } - } - }, - "\/account\/targets\/{targetId}\/push": { - "put": { - "summary": "Update push target", - "operationId": "accountUpdatePushTarget", - "tags": [ - "account" - ], - "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", - "responses": { - "200": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/update-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - } - }, - "required": [ - "identifier" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete push target", - "operationId": "accountDeletePushTarget", - "tags": [ - "account" - ], - "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/delete-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/tokens\/email": { - "post": { - "summary": "Create email token (OTP)", - "operationId": "accountCreateEmailToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-email-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/magic-url": { - "post": { - "summary": "Create magic URL token", - "operationId": "accountCreateMagicURLToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-magic-url-token.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/oauth2\/{provider}": { - "get": { - "summary": "Create OAuth2 token", - "operationId": "accountCreateOAuth2Token", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "301": { - "description": "No content", - "content": { - "text\/html": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-o-auth-2-token.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "OAuthProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - }, - { - "name": "success", - "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "failure", - "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "scopes", - "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/tokens\/phone": { - "post": { - "summary": "Create phone token", - "operationId": "accountCreatePhoneToken", - "tags": [ - "account" - ], - "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-phone-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},phone:{param-phone}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "userId", - "phone" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email": { - "post": { - "summary": "Create email verification", - "operationId": "accountCreateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-email-verification.md", - "public": true - }, - { - "name": "createVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createEmailVerification" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "url": { - "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update email verification (confirmation)", - "operationId": "accountUpdateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "updateEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-email-verification.md", - "public": true - }, - { - "name": "updateVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateEmailVerification" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email\/otp": { - "post": { - "summary": "Create email verification (OTP)", - "operationId": "accountCreateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "put": { - "summary": "Update email verification (OTP)", - "operationId": "accountUpdateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification OTP code.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/phone": { - "post": { - "summary": "Create phone verification", - "operationId": "accountCreatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},userId:{userId}", - "url:{url},ip:{ip}" - ], - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "put": { - "summary": "Update phone verification (confirmation)", - "operationId": "accountUpdatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/analytics\/properties\/{propertyId}\/events": { - "post": { - "summary": "Track analytics event", - "operationId": "analyticsCreateEvent", - "tags": [ - "analytics" - ], - "description": "Send a tracking event from a browser, native app, or server-side SDK.", - "responses": { - "202": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "analytics\/create-event.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "global" - ], - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property ID or snippet ID identifying the property.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", - "type": "string", - "example": "<NAME>" - }, - "url": { - "description": "Full page URL or screen identifier.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "domain": { - "description": "Hostname (e.g. example.com).", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "referrer": { - "description": "Referrer URL.", - "type": "string", - "default": "", - "example": "<REFERRER>" - }, - "screenWidth": { - "description": "Viewport width in CSS pixels.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "sessionHash": { - "description": "Optional session hash (provided by SDK).", - "type": "string", - "default": "", - "example": "<SESSION_HASH>" - }, - "scrollDepth": { - "description": "Scroll depth percentage 0-100.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "engagementTime": { - "description": "Engagement time in seconds.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "props": { - "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "userId": { - "description": "Override user ID. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "ip": { - "description": "Override IP address. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<IP>" - }, - "userAgent": { - "description": "Override user agent. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_AGENT>" - } - }, - "required": [ - "name", - "url" - ] - } - } - } - } - } - }, - "\/apps": { - "get": { - "summary": "List Applications", - "operationId": "appsList", - "tags": [ - "apps" - ], - "description": "List applications.", - "responses": { - "200": { - "description": "Apps list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/list.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Application", - "operationId": "appsCreate", - "tags": [ - "apps" - ], - "description": "Create a new application.", - "responses": { - "201": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/create.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<APP_ID>" - }, - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "teamId": { - "description": "Team unique ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - } - }, - "required": [ - "appId", - "name", - "redirectUris" - ] - } - } - } - } - } - }, - "\/apps\/scopes\/installations": { - "get": { - "summary": "List Installation Scopes", - "operationId": "appsListInstallationScopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request when installed on a team.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-installation-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/apps\/scopes\/oauth2": { - "get": { - "summary": "List OAuth2 Scopes", - "operationId": "appsListOAuth2Scopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request during the OAuth2 flow.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-o-auth-2-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/apps\/{appId}": { - "get": { - "summary": "Get Application", - "operationId": "appsGet", - "tags": [ - "apps" - ], - "description": "Get an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/get.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Application", - "operationId": "appsUpdate", - "tags": [ - "apps" - ], - "description": "Update an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "installationScopes": { - "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "installationRedirectUrl": { - "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete Application", - "operationId": "appsDelete", - "tags": [ - "apps" - ], - "description": "Delete an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "appsListInstallations", - "tags": [ - "apps" - ], - "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "appsGetInstallation", - "tags": [ - "apps" - ], - "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Installation", - "operationId": "appsDeleteInstallation", - "tags": [ - "apps" - ], - "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}\/tokens": { - "post": { - "summary": "Create Installation Token", - "operationId": "appsCreateInstallationToken", - "tags": [ - "apps" - ], - "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", - "responses": { - "201": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/create-installation-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.write", - "apps.tokens.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys": { - "get": { - "summary": "List App Keys", - "operationId": "appsListKeys", - "tags": [ - "apps" - ], - "description": "List app keys for an application.", - "responses": { - "200": { - "description": "App keys list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKeyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/list-keys.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create App Key", - "operationId": "appsCreateKey", - "tags": [ - "apps" - ], - "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", - "responses": { - "201": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/create-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys\/{keyId}": { - "get": { - "summary": "Get App Key", - "operationId": "appsGetKey", - "tags": [ - "apps" - ], - "description": "Get an app key by its unique ID.", - "responses": { - "200": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/get-key.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete App Key", - "operationId": "appsDeleteKey", - "tags": [ - "apps" - ], - "description": "Delete an app key by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/delete-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/secrets": { - "get": { - "summary": "List Secrets", - "operationId": "appsListSecrets", - "tags": [ - "apps" - ], - "description": "List client secrets for an application.", - "responses": { - "200": { - "description": "App secrets list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/list-secrets.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Secret", - "operationId": "appsCreateSecret", - "tags": [ - "apps" - ], - "description": "Create a new client secret for an application.", - "responses": { - "201": { - "description": "AppSecretPlaintext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretPlaintext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/create-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/secrets\/{secretId}": { - "get": { - "summary": "Get Secret", - "operationId": "appsGetSecret", - "tags": [ - "apps" - ], - "description": "Get an application client secret by its unique ID.", - "responses": { - "200": { - "description": "AppSecret", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecret" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/get-secret.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Secret", - "operationId": "appsDeleteSecret", - "tags": [ - "apps" - ], - "description": "Delete an application client secret by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/delete-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/team": { - "patch": { - "summary": "Update Team", - "operationId": "appsUpdateTeam", - "tags": [ - "apps" - ], - "description": "Transfer an application to another team by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update-team.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team ID of the team to transfer application to.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/apps\/{appId}\/tokens": { - "delete": { - "summary": "Delete Tokens", - "operationId": "appsDeleteTokens", - "tags": [ - "apps" - ], - "description": "Revoke all tokens for an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete-tokens.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/avatars\/browsers\/{code}": { - "get": { - "summary": "Get browser icon", - "operationId": "avatarsGetBrowser", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-browser.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Browser Code.", - "required": true, - "schema": { - "type": "string", - "example": "aa", - "title": "Browser", - "oneOf": [ - { - "type": "string", - "enum": [ - "aa" - ], - "title": "Avant Browser" - }, - { - "type": "string", - "enum": [ - "an" - ], - "title": "Android WebView Beta" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Google Chrome" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "Google Chrome (iOS)" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Google Chrome (Mobile)" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Chromium" - }, - { - "type": "string", - "enum": [ - "ff" - ], - "title": "Mozilla Firefox" - }, - { - "type": "string", - "enum": [ - "sf" - ], - "title": "Safari" - }, - { - "type": "string", - "enum": [ - "mf" - ], - "title": "Mobile Safari" - }, - { - "type": "string", - "enum": [ - "ps" - ], - "title": "Microsoft Edge" - }, - { - "type": "string", - "enum": [ - "oi" - ], - "title": "Microsoft Edge (iOS)" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Opera Mini" - }, - { - "type": "string", - "enum": [ - "op" - ], - "title": "Opera" - }, - { - "type": "string", - "enum": [ - "on" - ], - "title": "Opera (Next)" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/credit-cards\/{code}": { - "get": { - "summary": "Get credit card icon", - "operationId": "avatarsGetCreditCard", - "tags": [ - "avatars" - ], - "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-credit-card.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", - "required": true, - "schema": { - "type": "string", - "example": "amex", - "title": "CreditCard", - "oneOf": [ - { - "type": "string", - "enum": [ - "amex" - ], - "title": "American Express" - }, - { - "type": "string", - "enum": [ - "argencard" - ], - "title": "Argencard" - }, - { - "type": "string", - "enum": [ - "cabal" - ], - "title": "Cabal" - }, - { - "type": "string", - "enum": [ - "cencosud" - ], - "title": "Cencosud" - }, - { - "type": "string", - "enum": [ - "diners" - ], - "title": "Diners Club" - }, - { - "type": "string", - "enum": [ - "discover" - ], - "title": "Discover" - }, - { - "type": "string", - "enum": [ - "elo" - ], - "title": "Elo" - }, - { - "type": "string", - "enum": [ - "hipercard" - ], - "title": "Hipercard" - }, - { - "type": "string", - "enum": [ - "jcb" - ], - "title": "JCB" - }, - { - "type": "string", - "enum": [ - "mastercard" - ], - "title": "Mastercard" - }, - { - "type": "string", - "enum": [ - "naranja" - ], - "title": "Naranja" - }, - { - "type": "string", - "enum": [ - "targeta-shopping" - ], - "title": "Tarjeta Shopping" - }, - { - "type": "string", - "enum": [ - "unionpay" - ], - "title": "Union Pay" - }, - { - "type": "string", - "enum": [ - "visa" - ], - "title": "Visa" - }, - { - "type": "string", - "enum": [ - "mir" - ], - "title": "MIR" - }, - { - "type": "string", - "enum": [ - "maestro" - ], - "title": "Maestro" - }, - { - "type": "string", - "enum": [ - "rupay" - ], - "title": "Rupay" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/favicon": { - "get": { - "summary": "Get favicon", - "operationId": "avatarsGetFavicon", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-favicon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to fetch the favicon from.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/flags\/{code}": { - "get": { - "summary": "Get country flag", - "operationId": "avatarsGetFlag", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-flag.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Country Code. ISO Alpha-2 country code format.", - "required": true, - "schema": { - "type": "string", - "example": "af", - "title": "Flag", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "Afghanistan" - }, - { - "type": "string", - "enum": [ - "ao" - ], - "title": "Angola" - }, - { - "type": "string", - "enum": [ - "al" - ], - "title": "Albania" - }, - { - "type": "string", - "enum": [ - "ad" - ], - "title": "Andorra" - }, - { - "type": "string", - "enum": [ - "ae" - ], - "title": "United Arab Emirates" - }, - { - "type": "string", - "enum": [ - "ar" - ], - "title": "Argentina" - }, - { - "type": "string", - "enum": [ - "am" - ], - "title": "Armenia" - }, - { - "type": "string", - "enum": [ - "ag" - ], - "title": "Antigua and Barbuda" - }, - { - "type": "string", - "enum": [ - "au" - ], - "title": "Australia" - }, - { - "type": "string", - "enum": [ - "at" - ], - "title": "Austria" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "Azerbaijan" - }, - { - "type": "string", - "enum": [ - "bi" - ], - "title": "Burundi" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "Belgium" - }, - { - "type": "string", - "enum": [ - "bj" - ], - "title": "Benin" - }, - { - "type": "string", - "enum": [ - "bf" - ], - "title": "Burkina Faso" - }, - { - "type": "string", - "enum": [ - "bd" - ], - "title": "Bangladesh" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "Bulgaria" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "Bahrain" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "Bahamas" - }, - { - "type": "string", - "enum": [ - "ba" - ], - "title": "Bosnia and Herzegovina" - }, - { - "type": "string", - "enum": [ - "by" - ], - "title": "Belarus" - }, - { - "type": "string", - "enum": [ - "bz" - ], - "title": "Belize" - }, - { - "type": "string", - "enum": [ - "bo" - ], - "title": "Bolivia" - }, - { - "type": "string", - "enum": [ - "br" - ], - "title": "Brazil" - }, - { - "type": "string", - "enum": [ - "bb" - ], - "title": "Barbados" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "Brunei Darussalam" - }, - { - "type": "string", - "enum": [ - "bt" - ], - "title": "Bhutan" - }, - { - "type": "string", - "enum": [ - "bw" - ], - "title": "Botswana" - }, - { - "type": "string", - "enum": [ - "cf" - ], - "title": "Central African Republic" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "Canada" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Switzerland" - }, - { - "type": "string", - "enum": [ - "cl" - ], - "title": "Chile" - }, - { - "type": "string", - "enum": [ - "cn" - ], - "title": "China" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "C\u00f4te d'Ivoire" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Cameroon" - }, - { - "type": "string", - "enum": [ - "cd" - ], - "title": "Democratic Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "cg" - ], - "title": "Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "co" - ], - "title": "Colombia" - }, - { - "type": "string", - "enum": [ - "km" - ], - "title": "Comoros" - }, - { - "type": "string", - "enum": [ - "cv" - ], - "title": "Cape Verde" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Costa Rica" - }, - { - "type": "string", - "enum": [ - "cu" - ], - "title": "Cuba" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "Cyprus" - }, - { - "type": "string", - "enum": [ - "cz" - ], - "title": "Czech Republic" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "Germany" - }, - { - "type": "string", - "enum": [ - "dj" - ], - "title": "Djibouti" - }, - { - "type": "string", - "enum": [ - "dm" - ], - "title": "Dominica" - }, - { - "type": "string", - "enum": [ - "dk" - ], - "title": "Denmark" - }, - { - "type": "string", - "enum": [ - "do" - ], - "title": "Dominican Republic" - }, - { - "type": "string", - "enum": [ - "dz" - ], - "title": "Algeria" - }, - { - "type": "string", - "enum": [ - "ec" - ], - "title": "Ecuador" - }, - { - "type": "string", - "enum": [ - "eg" - ], - "title": "Egypt" - }, - { - "type": "string", - "enum": [ - "er" - ], - "title": "Eritrea" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "Spain" - }, - { - "type": "string", - "enum": [ - "ee" - ], - "title": "Estonia" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "Ethiopia" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "Finland" - }, - { - "type": "string", - "enum": [ - "fj" - ], - "title": "Fiji" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "France" - }, - { - "type": "string", - "enum": [ - "fm" - ], - "title": "Micronesia (Federated States of)" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "Gabon" - }, - { - "type": "string", - "enum": [ - "gb" - ], - "title": "United Kingdom" - }, - { - "type": "string", - "enum": [ - "ge" - ], - "title": "Georgia" - }, - { - "type": "string", - "enum": [ - "gh" - ], - "title": "Ghana" - }, - { - "type": "string", - "enum": [ - "gn" - ], - "title": "Guinea" - }, - { - "type": "string", - "enum": [ - "gm" - ], - "title": "Gambia" - }, - { - "type": "string", - "enum": [ - "gw" - ], - "title": "Guinea-Bissau" - }, - { - "type": "string", - "enum": [ - "gq" - ], - "title": "Equatorial Guinea" - }, - { - "type": "string", - "enum": [ - "gr" - ], - "title": "Greece" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "Grenada" - }, - { - "type": "string", - "enum": [ - "gt" - ], - "title": "Guatemala" - }, - { - "type": "string", - "enum": [ - "gy" - ], - "title": "Guyana" - }, - { - "type": "string", - "enum": [ - "hn" - ], - "title": "Honduras" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "Croatia" - }, - { - "type": "string", - "enum": [ - "ht" - ], - "title": "Haiti" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "Hungary" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "Indonesia" - }, - { - "type": "string", - "enum": [ - "in" - ], - "title": "India" - }, - { - "type": "string", - "enum": [ - "ie" - ], - "title": "Ireland" - }, - { - "type": "string", - "enum": [ - "ir" - ], - "title": "Iran (Islamic Republic of)" - }, - { - "type": "string", - "enum": [ - "iq" - ], - "title": "Iraq" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "Iceland" - }, - { - "type": "string", - "enum": [ - "il" - ], - "title": "Israel" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "Italy" - }, - { - "type": "string", - "enum": [ - "jm" - ], - "title": "Jamaica" - }, - { - "type": "string", - "enum": [ - "jo" - ], - "title": "Jordan" - }, - { - "type": "string", - "enum": [ - "jp" - ], - "title": "Japan" - }, - { - "type": "string", - "enum": [ - "kz" - ], - "title": "Kazakhstan" - }, - { - "type": "string", - "enum": [ - "ke" - ], - "title": "Kenya" - }, - { - "type": "string", - "enum": [ - "kg" - ], - "title": "Kyrgyzstan" - }, - { - "type": "string", - "enum": [ - "kh" - ], - "title": "Cambodia" - }, - { - "type": "string", - "enum": [ - "ki" - ], - "title": "Kiribati" - }, - { - "type": "string", - "enum": [ - "kn" - ], - "title": "Saint Kitts and Nevis" - }, - { - "type": "string", - "enum": [ - "kr" - ], - "title": "South Korea" - }, - { - "type": "string", - "enum": [ - "kw" - ], - "title": "Kuwait" - }, - { - "type": "string", - "enum": [ - "la" - ], - "title": "Lao People's Democratic Republic" - }, - { - "type": "string", - "enum": [ - "lb" - ], - "title": "Lebanon" - }, - { - "type": "string", - "enum": [ - "lr" - ], - "title": "Liberia" - }, - { - "type": "string", - "enum": [ - "ly" - ], - "title": "Libya" - }, - { - "type": "string", - "enum": [ - "lc" - ], - "title": "Saint Lucia" - }, - { - "type": "string", - "enum": [ - "li" - ], - "title": "Liechtenstein" - }, - { - "type": "string", - "enum": [ - "lk" - ], - "title": "Sri Lanka" - }, - { - "type": "string", - "enum": [ - "ls" - ], - "title": "Lesotho" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "Lithuania" - }, - { - "type": "string", - "enum": [ - "lu" - ], - "title": "Luxembourg" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "Latvia" - }, - { - "type": "string", - "enum": [ - "ma" - ], - "title": "Morocco" - }, - { - "type": "string", - "enum": [ - "mc" - ], - "title": "Monaco" - }, - { - "type": "string", - "enum": [ - "md" - ], - "title": "Moldova" - }, - { - "type": "string", - "enum": [ - "mg" - ], - "title": "Madagascar" - }, - { - "type": "string", - "enum": [ - "mv" - ], - "title": "Maldives" - }, - { - "type": "string", - "enum": [ - "mx" - ], - "title": "Mexico" - }, - { - "type": "string", - "enum": [ - "mh" - ], - "title": "Marshall Islands" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "North Macedonia" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "Mali" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "Malta" - }, - { - "type": "string", - "enum": [ - "mm" - ], - "title": "Myanmar" - }, - { - "type": "string", - "enum": [ - "me" - ], - "title": "Montenegro" - }, - { - "type": "string", - "enum": [ - "mn" - ], - "title": "Mongolia" - }, - { - "type": "string", - "enum": [ - "mz" - ], - "title": "Mozambique" - }, - { - "type": "string", - "enum": [ - "mr" - ], - "title": "Mauritania" - }, - { - "type": "string", - "enum": [ - "mu" - ], - "title": "Mauritius" - }, - { - "type": "string", - "enum": [ - "mw" - ], - "title": "Malawi" - }, - { - "type": "string", - "enum": [ - "my" - ], - "title": "Malaysia" - }, - { - "type": "string", - "enum": [ - "na" - ], - "title": "Namibia" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "Niger" - }, - { - "type": "string", - "enum": [ - "ng" - ], - "title": "Nigeria" - }, - { - "type": "string", - "enum": [ - "ni" - ], - "title": "Nicaragua" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "Netherlands" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "Norway" - }, - { - "type": "string", - "enum": [ - "np" - ], - "title": "Nepal" - }, - { - "type": "string", - "enum": [ - "nr" - ], - "title": "Nauru" - }, - { - "type": "string", - "enum": [ - "nz" - ], - "title": "New Zealand" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Oman" - }, - { - "type": "string", - "enum": [ - "pk" - ], - "title": "Pakistan" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "Panama" - }, - { - "type": "string", - "enum": [ - "pe" - ], - "title": "Peru" - }, - { - "type": "string", - "enum": [ - "ph" - ], - "title": "Philippines" - }, - { - "type": "string", - "enum": [ - "pw" - ], - "title": "Palau" - }, - { - "type": "string", - "enum": [ - "pg" - ], - "title": "Papua New Guinea" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "Poland" - }, - { - "type": "string", - "enum": [ - "pf" - ], - "title": "French Polynesia" - }, - { - "type": "string", - "enum": [ - "kp" - ], - "title": "North Korea" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "Portugal" - }, - { - "type": "string", - "enum": [ - "py" - ], - "title": "Paraguay" - }, - { - "type": "string", - "enum": [ - "qa" - ], - "title": "Qatar" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "Romania" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "Russia" - }, - { - "type": "string", - "enum": [ - "rw" - ], - "title": "Rwanda" - }, - { - "type": "string", - "enum": [ - "sa" - ], - "title": "Saudi Arabia" - }, - { - "type": "string", - "enum": [ - "sd" - ], - "title": "Sudan" - }, - { - "type": "string", - "enum": [ - "sn" - ], - "title": "Senegal" - }, - { - "type": "string", - "enum": [ - "sg" - ], - "title": "Singapore" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "Solomon Islands" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "Sierra Leone" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "El Salvador" - }, - { - "type": "string", - "enum": [ - "sm" - ], - "title": "San Marino" - }, - { - "type": "string", - "enum": [ - "so" - ], - "title": "Somalia" - }, - { - "type": "string", - "enum": [ - "rs" - ], - "title": "Serbia" - }, - { - "type": "string", - "enum": [ - "ss" - ], - "title": "South Sudan" - }, - { - "type": "string", - "enum": [ - "st" - ], - "title": "Sao Tome and Principe" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "Suriname" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "Slovakia" - }, - { - "type": "string", - "enum": [ - "si" - ], - "title": "Slovenia" - }, - { - "type": "string", - "enum": [ - "se" - ], - "title": "Sweden" - }, - { - "type": "string", - "enum": [ - "sz" - ], - "title": "Eswatini" - }, - { - "type": "string", - "enum": [ - "sc" - ], - "title": "Seychelles" - }, - { - "type": "string", - "enum": [ - "sy" - ], - "title": "Syria" - }, - { - "type": "string", - "enum": [ - "td" - ], - "title": "Chad" - }, - { - "type": "string", - "enum": [ - "tg" - ], - "title": "Togo" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "Thailand" - }, - { - "type": "string", - "enum": [ - "tj" - ], - "title": "Tajikistan" - }, - { - "type": "string", - "enum": [ - "tm" - ], - "title": "Turkmenistan" - }, - { - "type": "string", - "enum": [ - "tl" - ], - "title": "Timor-Leste" - }, - { - "type": "string", - "enum": [ - "to" - ], - "title": "Tonga" - }, - { - "type": "string", - "enum": [ - "tt" - ], - "title": "Trinidad and Tobago" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "Tunisia" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "Turkey" - }, - { - "type": "string", - "enum": [ - "tv" - ], - "title": "Tuvalu" - }, - { - "type": "string", - "enum": [ - "tz" - ], - "title": "Tanzania" - }, - { - "type": "string", - "enum": [ - "ug" - ], - "title": "Uganda" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "Ukraine" - }, - { - "type": "string", - "enum": [ - "uy" - ], - "title": "Uruguay" - }, - { - "type": "string", - "enum": [ - "us" - ], - "title": "United States" - }, - { - "type": "string", - "enum": [ - "uz" - ], - "title": "Uzbekistan" - }, - { - "type": "string", - "enum": [ - "va" - ], - "title": "Vatican City" - }, - { - "type": "string", - "enum": [ - "vc" - ], - "title": "Saint Vincent and the Grenadines" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "Venezuela" - }, - { - "type": "string", - "enum": [ - "vn" - ], - "title": "Vietnam" - }, - { - "type": "string", - "enum": [ - "vu" - ], - "title": "Vanuatu" - }, - { - "type": "string", - "enum": [ - "ws" - ], - "title": "Samoa" - }, - { - "type": "string", - "enum": [ - "ye" - ], - "title": "Yemen" - }, - { - "type": "string", - "enum": [ - "za" - ], - "title": "South Africa" - }, - { - "type": "string", - "enum": [ - "zm" - ], - "title": "Zambia" - }, - { - "type": "string", - "enum": [ - "zw" - ], - "title": "Zimbabwe" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/image": { - "get": { - "summary": "Get image from URL", - "operationId": "avatarsGetImage", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-image.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Image URL which you want to crop.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/initials": { - "get": { - "summary": "Get user initials", - "operationId": "avatarsGetInitials", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-initials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "name", - "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "background", - "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", - "required": false, - "schema": { - "type": "string", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/photo": { - "get": { - "summary": "Get user photo", - "operationId": "avatarsGetPhoto", - "tags": [ - "avatars" - ], - "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-photo.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "width", - "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Output image quality between 0 and 100. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output image format. Defaults to 'png'.", - "required": false, - "schema": { - "type": "string", - "example": "png", - "default": "png" - }, - "in": "query" - }, - { - "name": "rating", - "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", - "required": false, - "schema": { - "type": "string", - "example": "g", - "default": "g" - }, - "in": "query" - }, - { - "name": "userId", - "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", - "required": false, - "schema": { - "type": "string", - "example": "current()", - "default": "" - }, - "in": "query" - }, - { - "name": "emailHash", - "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", - "required": false, - "schema": { - "type": "string", - "example": "<EMAIL_HASH>", - "default": "" - }, - "in": "query" - }, - { - "name": "name", - "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Update photo", - "operationId": "avatarsUpdatePhoto", - "tags": [ - "avatars" - ], - "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", - "responses": { - "200": { - "description": "Account", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/account" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/update-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "file": { - "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", - "type": "string", - "format": "binary" - } - }, - "required": [ - "file" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete photo", - "operationId": "avatarsDeletePhoto", - "tags": [ - "avatars" - ], - "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/delete-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/avatars\/qr": { - "get": { - "summary": "Get QR code", - "operationId": "avatarsGetQR", - "tags": [ - "avatars" - ], - "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-qr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "text", - "description": "Plain text to be converted to QR code image.", - "required": true, - "schema": { - "type": "string", - "example": "<TEXT>" - }, - "in": "query" - }, - { - "name": "size", - "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 400 - }, - "in": "query" - }, - { - "name": "margin", - "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "download", - "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": false - }, - "in": "query" - } - ] - } - }, - "\/avatars\/screenshots": { - "get": { - "summary": "Get webpage screenshot", - "operationId": "avatarsGetScreenshot", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-screenshot.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to capture.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "headers", - "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", - "required": false, - "schema": { - "type": "object", - "default": {}, - "example": { - "Accept-Language": "en-US,en;q=0.9" - } - }, - "in": "query" - }, - { - "name": "viewportWidth", - "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1920, - "default": 1280 - }, - "in": "query" - }, - { - "name": "viewportHeight", - "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1080, - "default": 720 - }, - "in": "query" - }, - { - "name": "scale", - "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 2, - "default": 1 - }, - "in": "query" - }, - { - "name": "theme", - "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", - "required": false, - "schema": { - "type": "string", - "example": "dark", - "title": "BrowserTheme", - "oneOf": [ - { - "type": "string", - "enum": [ - "light" - ], - "title": "light" - }, - { - "type": "string", - "enum": [ - "dark" - ], - "title": "dark" - } - ], - "default": "light" - }, - "in": "query" - }, - { - "name": "userAgent", - "description": "Custom user agent string. Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", - "default": "" - }, - "in": "query" - }, - { - "name": "fullpage", - "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "locale", - "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "en-US", - "default": "" - }, - "in": "query" - }, - { - "name": "timezone", - "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "America\/New_York", - "title": "Timezone", - "oneOf": [ - { - "type": "string", - "enum": [ - "africa\/abidjan" - ], - "title": "africa\/abidjan" - }, - { - "type": "string", - "enum": [ - "africa\/accra" - ], - "title": "africa\/accra" - }, - { - "type": "string", - "enum": [ - "africa\/addis_ababa" - ], - "title": "africa\/addis_ababa" - }, - { - "type": "string", - "enum": [ - "africa\/algiers" - ], - "title": "africa\/algiers" - }, - { - "type": "string", - "enum": [ - "africa\/asmara" - ], - "title": "africa\/asmara" - }, - { - "type": "string", - "enum": [ - "africa\/bamako" - ], - "title": "africa\/bamako" - }, - { - "type": "string", - "enum": [ - "africa\/bangui" - ], - "title": "africa\/bangui" - }, - { - "type": "string", - "enum": [ - "africa\/banjul" - ], - "title": "africa\/banjul" - }, - { - "type": "string", - "enum": [ - "africa\/bissau" - ], - "title": "africa\/bissau" - }, - { - "type": "string", - "enum": [ - "africa\/blantyre" - ], - "title": "africa\/blantyre" - }, - { - "type": "string", - "enum": [ - "africa\/brazzaville" - ], - "title": "africa\/brazzaville" - }, - { - "type": "string", - "enum": [ - "africa\/bujumbura" - ], - "title": "africa\/bujumbura" - }, - { - "type": "string", - "enum": [ - "africa\/cairo" - ], - "title": "africa\/cairo" - }, - { - "type": "string", - "enum": [ - "africa\/casablanca" - ], - "title": "africa\/casablanca" - }, - { - "type": "string", - "enum": [ - "africa\/ceuta" - ], - "title": "africa\/ceuta" - }, - { - "type": "string", - "enum": [ - "africa\/conakry" - ], - "title": "africa\/conakry" - }, - { - "type": "string", - "enum": [ - "africa\/dakar" - ], - "title": "africa\/dakar" - }, - { - "type": "string", - "enum": [ - "africa\/dar_es_salaam" - ], - "title": "africa\/dar_es_salaam" - }, - { - "type": "string", - "enum": [ - "africa\/djibouti" - ], - "title": "africa\/djibouti" - }, - { - "type": "string", - "enum": [ - "africa\/douala" - ], - "title": "africa\/douala" - }, - { - "type": "string", - "enum": [ - "africa\/el_aaiun" - ], - "title": "africa\/el_aaiun" - }, - { - "type": "string", - "enum": [ - "africa\/freetown" - ], - "title": "africa\/freetown" - }, - { - "type": "string", - "enum": [ - "africa\/gaborone" - ], - "title": "africa\/gaborone" - }, - { - "type": "string", - "enum": [ - "africa\/harare" - ], - "title": "africa\/harare" - }, - { - "type": "string", - "enum": [ - "africa\/johannesburg" - ], - "title": "africa\/johannesburg" - }, - { - "type": "string", - "enum": [ - "africa\/juba" - ], - "title": "africa\/juba" - }, - { - "type": "string", - "enum": [ - "africa\/kampala" - ], - "title": "africa\/kampala" - }, - { - "type": "string", - "enum": [ - "africa\/khartoum" - ], - "title": "africa\/khartoum" - }, - { - "type": "string", - "enum": [ - "africa\/kigali" - ], - "title": "africa\/kigali" - }, - { - "type": "string", - "enum": [ - "africa\/kinshasa" - ], - "title": "africa\/kinshasa" - }, - { - "type": "string", - "enum": [ - "africa\/lagos" - ], - "title": "africa\/lagos" - }, - { - "type": "string", - "enum": [ - "africa\/libreville" - ], - "title": "africa\/libreville" - }, - { - "type": "string", - "enum": [ - "africa\/lome" - ], - "title": "africa\/lome" - }, - { - "type": "string", - "enum": [ - "africa\/luanda" - ], - "title": "africa\/luanda" - }, - { - "type": "string", - "enum": [ - "africa\/lubumbashi" - ], - "title": "africa\/lubumbashi" - }, - { - "type": "string", - "enum": [ - "africa\/lusaka" - ], - "title": "africa\/lusaka" - }, - { - "type": "string", - "enum": [ - "africa\/malabo" - ], - "title": "africa\/malabo" - }, - { - "type": "string", - "enum": [ - "africa\/maputo" - ], - "title": "africa\/maputo" - }, - { - "type": "string", - "enum": [ - "africa\/maseru" - ], - "title": "africa\/maseru" - }, - { - "type": "string", - "enum": [ - "africa\/mbabane" - ], - "title": "africa\/mbabane" - }, - { - "type": "string", - "enum": [ - "africa\/mogadishu" - ], - "title": "africa\/mogadishu" - }, - { - "type": "string", - "enum": [ - "africa\/monrovia" - ], - "title": "africa\/monrovia" - }, - { - "type": "string", - "enum": [ - "africa\/nairobi" - ], - "title": "africa\/nairobi" - }, - { - "type": "string", - "enum": [ - "africa\/ndjamena" - ], - "title": "africa\/ndjamena" - }, - { - "type": "string", - "enum": [ - "africa\/niamey" - ], - "title": "africa\/niamey" - }, - { - "type": "string", - "enum": [ - "africa\/nouakchott" - ], - "title": "africa\/nouakchott" - }, - { - "type": "string", - "enum": [ - "africa\/ouagadougou" - ], - "title": "africa\/ouagadougou" - }, - { - "type": "string", - "enum": [ - "africa\/porto-novo" - ], - "title": "africa\/porto-novo" - }, - { - "type": "string", - "enum": [ - "africa\/sao_tome" - ], - "title": "africa\/sao_tome" - }, - { - "type": "string", - "enum": [ - "africa\/tripoli" - ], - "title": "africa\/tripoli" - }, - { - "type": "string", - "enum": [ - "africa\/tunis" - ], - "title": "africa\/tunis" - }, - { - "type": "string", - "enum": [ - "africa\/windhoek" - ], - "title": "africa\/windhoek" - }, - { - "type": "string", - "enum": [ - "america\/adak" - ], - "title": "america\/adak" - }, - { - "type": "string", - "enum": [ - "america\/anchorage" - ], - "title": "america\/anchorage" - }, - { - "type": "string", - "enum": [ - "america\/anguilla" - ], - "title": "america\/anguilla" - }, - { - "type": "string", - "enum": [ - "america\/antigua" - ], - "title": "america\/antigua" - }, - { - "type": "string", - "enum": [ - "america\/araguaina" - ], - "title": "america\/araguaina" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/buenos_aires" - ], - "title": "america\/argentina\/buenos_aires" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/catamarca" - ], - "title": "america\/argentina\/catamarca" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/cordoba" - ], - "title": "america\/argentina\/cordoba" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/jujuy" - ], - "title": "america\/argentina\/jujuy" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/la_rioja" - ], - "title": "america\/argentina\/la_rioja" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/mendoza" - ], - "title": "america\/argentina\/mendoza" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/rio_gallegos" - ], - "title": "america\/argentina\/rio_gallegos" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/salta" - ], - "title": "america\/argentina\/salta" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_juan" - ], - "title": "america\/argentina\/san_juan" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_luis" - ], - "title": "america\/argentina\/san_luis" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/tucuman" - ], - "title": "america\/argentina\/tucuman" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/ushuaia" - ], - "title": "america\/argentina\/ushuaia" - }, - { - "type": "string", - "enum": [ - "america\/aruba" - ], - "title": "america\/aruba" - }, - { - "type": "string", - "enum": [ - "america\/asuncion" - ], - "title": "america\/asuncion" - }, - { - "type": "string", - "enum": [ - "america\/atikokan" - ], - "title": "america\/atikokan" - }, - { - "type": "string", - "enum": [ - "america\/bahia" - ], - "title": "america\/bahia" - }, - { - "type": "string", - "enum": [ - "america\/bahia_banderas" - ], - "title": "america\/bahia_banderas" - }, - { - "type": "string", - "enum": [ - "america\/barbados" - ], - "title": "america\/barbados" - }, - { - "type": "string", - "enum": [ - "america\/belem" - ], - "title": "america\/belem" - }, - { - "type": "string", - "enum": [ - "america\/belize" - ], - "title": "america\/belize" - }, - { - "type": "string", - "enum": [ - "america\/blanc-sablon" - ], - "title": "america\/blanc-sablon" - }, - { - "type": "string", - "enum": [ - "america\/boa_vista" - ], - "title": "america\/boa_vista" - }, - { - "type": "string", - "enum": [ - "america\/bogota" - ], - "title": "america\/bogota" - }, - { - "type": "string", - "enum": [ - "america\/boise" - ], - "title": "america\/boise" - }, - { - "type": "string", - "enum": [ - "america\/cambridge_bay" - ], - "title": "america\/cambridge_bay" - }, - { - "type": "string", - "enum": [ - "america\/campo_grande" - ], - "title": "america\/campo_grande" - }, - { - "type": "string", - "enum": [ - "america\/cancun" - ], - "title": "america\/cancun" - }, - { - "type": "string", - "enum": [ - "america\/caracas" - ], - "title": "america\/caracas" - }, - { - "type": "string", - "enum": [ - "america\/cayenne" - ], - "title": "america\/cayenne" - }, - { - "type": "string", - "enum": [ - "america\/cayman" - ], - "title": "america\/cayman" - }, - { - "type": "string", - "enum": [ - "america\/chicago" - ], - "title": "america\/chicago" - }, - { - "type": "string", - "enum": [ - "america\/chihuahua" - ], - "title": "america\/chihuahua" - }, - { - "type": "string", - "enum": [ - "america\/ciudad_juarez" - ], - "title": "america\/ciudad_juarez" - }, - { - "type": "string", - "enum": [ - "america\/costa_rica" - ], - "title": "america\/costa_rica" - }, - { - "type": "string", - "enum": [ - "america\/coyhaique" - ], - "title": "america\/coyhaique" - }, - { - "type": "string", - "enum": [ - "america\/creston" - ], - "title": "america\/creston" - }, - { - "type": "string", - "enum": [ - "america\/cuiaba" - ], - "title": "america\/cuiaba" - }, - { - "type": "string", - "enum": [ - "america\/curacao" - ], - "title": "america\/curacao" - }, - { - "type": "string", - "enum": [ - "america\/danmarkshavn" - ], - "title": "america\/danmarkshavn" - }, - { - "type": "string", - "enum": [ - "america\/dawson" - ], - "title": "america\/dawson" - }, - { - "type": "string", - "enum": [ - "america\/dawson_creek" - ], - "title": "america\/dawson_creek" - }, - { - "type": "string", - "enum": [ - "america\/denver" - ], - "title": "america\/denver" - }, - { - "type": "string", - "enum": [ - "america\/detroit" - ], - "title": "america\/detroit" - }, - { - "type": "string", - "enum": [ - "america\/dominica" - ], - "title": "america\/dominica" - }, - { - "type": "string", - "enum": [ - "america\/edmonton" - ], - "title": "america\/edmonton" - }, - { - "type": "string", - "enum": [ - "america\/eirunepe" - ], - "title": "america\/eirunepe" - }, - { - "type": "string", - "enum": [ - "america\/el_salvador" - ], - "title": "america\/el_salvador" - }, - { - "type": "string", - "enum": [ - "america\/fort_nelson" - ], - "title": "america\/fort_nelson" - }, - { - "type": "string", - "enum": [ - "america\/fortaleza" - ], - "title": "america\/fortaleza" - }, - { - "type": "string", - "enum": [ - "america\/glace_bay" - ], - "title": "america\/glace_bay" - }, - { - "type": "string", - "enum": [ - "america\/goose_bay" - ], - "title": "america\/goose_bay" - }, - { - "type": "string", - "enum": [ - "america\/grand_turk" - ], - "title": "america\/grand_turk" - }, - { - "type": "string", - "enum": [ - "america\/grenada" - ], - "title": "america\/grenada" - }, - { - "type": "string", - "enum": [ - "america\/guadeloupe" - ], - "title": "america\/guadeloupe" - }, - { - "type": "string", - "enum": [ - "america\/guatemala" - ], - "title": "america\/guatemala" - }, - { - "type": "string", - "enum": [ - "america\/guayaquil" - ], - "title": "america\/guayaquil" - }, - { - "type": "string", - "enum": [ - "america\/guyana" - ], - "title": "america\/guyana" - }, - { - "type": "string", - "enum": [ - "america\/halifax" - ], - "title": "america\/halifax" - }, - { - "type": "string", - "enum": [ - "america\/havana" - ], - "title": "america\/havana" - }, - { - "type": "string", - "enum": [ - "america\/hermosillo" - ], - "title": "america\/hermosillo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/indianapolis" - ], - "title": "america\/indiana\/indianapolis" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/knox" - ], - "title": "america\/indiana\/knox" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/marengo" - ], - "title": "america\/indiana\/marengo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/petersburg" - ], - "title": "america\/indiana\/petersburg" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/tell_city" - ], - "title": "america\/indiana\/tell_city" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vevay" - ], - "title": "america\/indiana\/vevay" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vincennes" - ], - "title": "america\/indiana\/vincennes" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/winamac" - ], - "title": "america\/indiana\/winamac" - }, - { - "type": "string", - "enum": [ - "america\/inuvik" - ], - "title": "america\/inuvik" - }, - { - "type": "string", - "enum": [ - "america\/iqaluit" - ], - "title": "america\/iqaluit" - }, - { - "type": "string", - "enum": [ - "america\/jamaica" - ], - "title": "america\/jamaica" - }, - { - "type": "string", - "enum": [ - "america\/juneau" - ], - "title": "america\/juneau" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/louisville" - ], - "title": "america\/kentucky\/louisville" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/monticello" - ], - "title": "america\/kentucky\/monticello" - }, - { - "type": "string", - "enum": [ - "america\/kralendijk" - ], - "title": "america\/kralendijk" - }, - { - "type": "string", - "enum": [ - "america\/la_paz" - ], - "title": "america\/la_paz" - }, - { - "type": "string", - "enum": [ - "america\/lima" - ], - "title": "america\/lima" - }, - { - "type": "string", - "enum": [ - "america\/los_angeles" - ], - "title": "america\/los_angeles" - }, - { - "type": "string", - "enum": [ - "america\/lower_princes" - ], - "title": "america\/lower_princes" - }, - { - "type": "string", - "enum": [ - "america\/maceio" - ], - "title": "america\/maceio" - }, - { - "type": "string", - "enum": [ - "america\/managua" - ], - "title": "america\/managua" - }, - { - "type": "string", - "enum": [ - "america\/manaus" - ], - "title": "america\/manaus" - }, - { - "type": "string", - "enum": [ - "america\/marigot" - ], - "title": "america\/marigot" - }, - { - "type": "string", - "enum": [ - "america\/martinique" - ], - "title": "america\/martinique" - }, - { - "type": "string", - "enum": [ - "america\/matamoros" - ], - "title": "america\/matamoros" - }, - { - "type": "string", - "enum": [ - "america\/mazatlan" - ], - "title": "america\/mazatlan" - }, - { - "type": "string", - "enum": [ - "america\/menominee" - ], - "title": "america\/menominee" - }, - { - "type": "string", - "enum": [ - "america\/merida" - ], - "title": "america\/merida" - }, - { - "type": "string", - "enum": [ - "america\/metlakatla" - ], - "title": "america\/metlakatla" - }, - { - "type": "string", - "enum": [ - "america\/mexico_city" - ], - "title": "america\/mexico_city" - }, - { - "type": "string", - "enum": [ - "america\/miquelon" - ], - "title": "america\/miquelon" - }, - { - "type": "string", - "enum": [ - "america\/moncton" - ], - "title": "america\/moncton" - }, - { - "type": "string", - "enum": [ - "america\/monterrey" - ], - "title": "america\/monterrey" - }, - { - "type": "string", - "enum": [ - "america\/montevideo" - ], - "title": "america\/montevideo" - }, - { - "type": "string", - "enum": [ - "america\/montserrat" - ], - "title": "america\/montserrat" - }, - { - "type": "string", - "enum": [ - "america\/nassau" - ], - "title": "america\/nassau" - }, - { - "type": "string", - "enum": [ - "america\/new_york" - ], - "title": "america\/new_york" - }, - { - "type": "string", - "enum": [ - "america\/nome" - ], - "title": "america\/nome" - }, - { - "type": "string", - "enum": [ - "america\/noronha" - ], - "title": "america\/noronha" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/beulah" - ], - "title": "america\/north_dakota\/beulah" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/center" - ], - "title": "america\/north_dakota\/center" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/new_salem" - ], - "title": "america\/north_dakota\/new_salem" - }, - { - "type": "string", - "enum": [ - "america\/nuuk" - ], - "title": "america\/nuuk" - }, - { - "type": "string", - "enum": [ - "america\/ojinaga" - ], - "title": "america\/ojinaga" - }, - { - "type": "string", - "enum": [ - "america\/panama" - ], - "title": "america\/panama" - }, - { - "type": "string", - "enum": [ - "america\/paramaribo" - ], - "title": "america\/paramaribo" - }, - { - "type": "string", - "enum": [ - "america\/phoenix" - ], - "title": "america\/phoenix" - }, - { - "type": "string", - "enum": [ - "america\/port-au-prince" - ], - "title": "america\/port-au-prince" - }, - { - "type": "string", - "enum": [ - "america\/port_of_spain" - ], - "title": "america\/port_of_spain" - }, - { - "type": "string", - "enum": [ - "america\/porto_velho" - ], - "title": "america\/porto_velho" - }, - { - "type": "string", - "enum": [ - "america\/puerto_rico" - ], - "title": "america\/puerto_rico" - }, - { - "type": "string", - "enum": [ - "america\/punta_arenas" - ], - "title": "america\/punta_arenas" - }, - { - "type": "string", - "enum": [ - "america\/rankin_inlet" - ], - "title": "america\/rankin_inlet" - }, - { - "type": "string", - "enum": [ - "america\/recife" - ], - "title": "america\/recife" - }, - { - "type": "string", - "enum": [ - "america\/regina" - ], - "title": "america\/regina" - }, - { - "type": "string", - "enum": [ - "america\/resolute" - ], - "title": "america\/resolute" - }, - { - "type": "string", - "enum": [ - "america\/rio_branco" - ], - "title": "america\/rio_branco" - }, - { - "type": "string", - "enum": [ - "america\/santarem" - ], - "title": "america\/santarem" - }, - { - "type": "string", - "enum": [ - "america\/santiago" - ], - "title": "america\/santiago" - }, - { - "type": "string", - "enum": [ - "america\/santo_domingo" - ], - "title": "america\/santo_domingo" - }, - { - "type": "string", - "enum": [ - "america\/sao_paulo" - ], - "title": "america\/sao_paulo" - }, - { - "type": "string", - "enum": [ - "america\/scoresbysund" - ], - "title": "america\/scoresbysund" - }, - { - "type": "string", - "enum": [ - "america\/sitka" - ], - "title": "america\/sitka" - }, - { - "type": "string", - "enum": [ - "america\/st_barthelemy" - ], - "title": "america\/st_barthelemy" - }, - { - "type": "string", - "enum": [ - "america\/st_johns" - ], - "title": "america\/st_johns" - }, - { - "type": "string", - "enum": [ - "america\/st_kitts" - ], - "title": "america\/st_kitts" - }, - { - "type": "string", - "enum": [ - "america\/st_lucia" - ], - "title": "america\/st_lucia" - }, - { - "type": "string", - "enum": [ - "america\/st_thomas" - ], - "title": "america\/st_thomas" - }, - { - "type": "string", - "enum": [ - "america\/st_vincent" - ], - "title": "america\/st_vincent" - }, - { - "type": "string", - "enum": [ - "america\/swift_current" - ], - "title": "america\/swift_current" - }, - { - "type": "string", - "enum": [ - "america\/tegucigalpa" - ], - "title": "america\/tegucigalpa" - }, - { - "type": "string", - "enum": [ - "america\/thule" - ], - "title": "america\/thule" - }, - { - "type": "string", - "enum": [ - "america\/tijuana" - ], - "title": "america\/tijuana" - }, - { - "type": "string", - "enum": [ - "america\/toronto" - ], - "title": "america\/toronto" - }, - { - "type": "string", - "enum": [ - "america\/tortola" - ], - "title": "america\/tortola" - }, - { - "type": "string", - "enum": [ - "america\/vancouver" - ], - "title": "america\/vancouver" - }, - { - "type": "string", - "enum": [ - "america\/whitehorse" - ], - "title": "america\/whitehorse" - }, - { - "type": "string", - "enum": [ - "america\/winnipeg" - ], - "title": "america\/winnipeg" - }, - { - "type": "string", - "enum": [ - "america\/yakutat" - ], - "title": "america\/yakutat" - }, - { - "type": "string", - "enum": [ - "antarctica\/casey" - ], - "title": "antarctica\/casey" - }, - { - "type": "string", - "enum": [ - "antarctica\/davis" - ], - "title": "antarctica\/davis" - }, - { - "type": "string", - "enum": [ - "antarctica\/dumontdurville" - ], - "title": "antarctica\/dumontdurville" - }, - { - "type": "string", - "enum": [ - "antarctica\/macquarie" - ], - "title": "antarctica\/macquarie" - }, - { - "type": "string", - "enum": [ - "antarctica\/mawson" - ], - "title": "antarctica\/mawson" - }, - { - "type": "string", - "enum": [ - "antarctica\/mcmurdo" - ], - "title": "antarctica\/mcmurdo" - }, - { - "type": "string", - "enum": [ - "antarctica\/palmer" - ], - "title": "antarctica\/palmer" - }, - { - "type": "string", - "enum": [ - "antarctica\/rothera" - ], - "title": "antarctica\/rothera" - }, - { - "type": "string", - "enum": [ - "antarctica\/syowa" - ], - "title": "antarctica\/syowa" - }, - { - "type": "string", - "enum": [ - "antarctica\/troll" - ], - "title": "antarctica\/troll" - }, - { - "type": "string", - "enum": [ - "antarctica\/vostok" - ], - "title": "antarctica\/vostok" - }, - { - "type": "string", - "enum": [ - "arctic\/longyearbyen" - ], - "title": "arctic\/longyearbyen" - }, - { - "type": "string", - "enum": [ - "asia\/aden" - ], - "title": "asia\/aden" - }, - { - "type": "string", - "enum": [ - "asia\/almaty" - ], - "title": "asia\/almaty" - }, - { - "type": "string", - "enum": [ - "asia\/amman" - ], - "title": "asia\/amman" - }, - { - "type": "string", - "enum": [ - "asia\/anadyr" - ], - "title": "asia\/anadyr" - }, - { - "type": "string", - "enum": [ - "asia\/aqtau" - ], - "title": "asia\/aqtau" - }, - { - "type": "string", - "enum": [ - "asia\/aqtobe" - ], - "title": "asia\/aqtobe" - }, - { - "type": "string", - "enum": [ - "asia\/ashgabat" - ], - "title": "asia\/ashgabat" - }, - { - "type": "string", - "enum": [ - "asia\/atyrau" - ], - "title": "asia\/atyrau" - }, - { - "type": "string", - "enum": [ - "asia\/baghdad" - ], - "title": "asia\/baghdad" - }, - { - "type": "string", - "enum": [ - "asia\/bahrain" - ], - "title": "asia\/bahrain" - }, - { - "type": "string", - "enum": [ - "asia\/baku" - ], - "title": "asia\/baku" - }, - { - "type": "string", - "enum": [ - "asia\/bangkok" - ], - "title": "asia\/bangkok" - }, - { - "type": "string", - "enum": [ - "asia\/barnaul" - ], - "title": "asia\/barnaul" - }, - { - "type": "string", - "enum": [ - "asia\/beirut" - ], - "title": "asia\/beirut" - }, - { - "type": "string", - "enum": [ - "asia\/bishkek" - ], - "title": "asia\/bishkek" - }, - { - "type": "string", - "enum": [ - "asia\/brunei" - ], - "title": "asia\/brunei" - }, - { - "type": "string", - "enum": [ - "asia\/chita" - ], - "title": "asia\/chita" - }, - { - "type": "string", - "enum": [ - "asia\/colombo" - ], - "title": "asia\/colombo" - }, - { - "type": "string", - "enum": [ - "asia\/damascus" - ], - "title": "asia\/damascus" - }, - { - "type": "string", - "enum": [ - "asia\/dhaka" - ], - "title": "asia\/dhaka" - }, - { - "type": "string", - "enum": [ - "asia\/dili" - ], - "title": "asia\/dili" - }, - { - "type": "string", - "enum": [ - "asia\/dubai" - ], - "title": "asia\/dubai" - }, - { - "type": "string", - "enum": [ - "asia\/dushanbe" - ], - "title": "asia\/dushanbe" - }, - { - "type": "string", - "enum": [ - "asia\/famagusta" - ], - "title": "asia\/famagusta" - }, - { - "type": "string", - "enum": [ - "asia\/gaza" - ], - "title": "asia\/gaza" - }, - { - "type": "string", - "enum": [ - "asia\/hebron" - ], - "title": "asia\/hebron" - }, - { - "type": "string", - "enum": [ - "asia\/ho_chi_minh" - ], - "title": "asia\/ho_chi_minh" - }, - { - "type": "string", - "enum": [ - "asia\/hong_kong" - ], - "title": "asia\/hong_kong" - }, - { - "type": "string", - "enum": [ - "asia\/hovd" - ], - "title": "asia\/hovd" - }, - { - "type": "string", - "enum": [ - "asia\/irkutsk" - ], - "title": "asia\/irkutsk" - }, - { - "type": "string", - "enum": [ - "asia\/jakarta" - ], - "title": "asia\/jakarta" - }, - { - "type": "string", - "enum": [ - "asia\/jayapura" - ], - "title": "asia\/jayapura" - }, - { - "type": "string", - "enum": [ - "asia\/jerusalem" - ], - "title": "asia\/jerusalem" - }, - { - "type": "string", - "enum": [ - "asia\/kabul" - ], - "title": "asia\/kabul" - }, - { - "type": "string", - "enum": [ - "asia\/kamchatka" - ], - "title": "asia\/kamchatka" - }, - { - "type": "string", - "enum": [ - "asia\/karachi" - ], - "title": "asia\/karachi" - }, - { - "type": "string", - "enum": [ - "asia\/kathmandu" - ], - "title": "asia\/kathmandu" - }, - { - "type": "string", - "enum": [ - "asia\/khandyga" - ], - "title": "asia\/khandyga" - }, - { - "type": "string", - "enum": [ - "asia\/kolkata" - ], - "title": "asia\/kolkata" - }, - { - "type": "string", - "enum": [ - "asia\/krasnoyarsk" - ], - "title": "asia\/krasnoyarsk" - }, - { - "type": "string", - "enum": [ - "asia\/kuala_lumpur" - ], - "title": "asia\/kuala_lumpur" - }, - { - "type": "string", - "enum": [ - "asia\/kuching" - ], - "title": "asia\/kuching" - }, - { - "type": "string", - "enum": [ - "asia\/kuwait" - ], - "title": "asia\/kuwait" - }, - { - "type": "string", - "enum": [ - "asia\/macau" - ], - "title": "asia\/macau" - }, - { - "type": "string", - "enum": [ - "asia\/magadan" - ], - "title": "asia\/magadan" - }, - { - "type": "string", - "enum": [ - "asia\/makassar" - ], - "title": "asia\/makassar" - }, - { - "type": "string", - "enum": [ - "asia\/manila" - ], - "title": "asia\/manila" - }, - { - "type": "string", - "enum": [ - "asia\/muscat" - ], - "title": "asia\/muscat" - }, - { - "type": "string", - "enum": [ - "asia\/nicosia" - ], - "title": "asia\/nicosia" - }, - { - "type": "string", - "enum": [ - "asia\/novokuznetsk" - ], - "title": "asia\/novokuznetsk" - }, - { - "type": "string", - "enum": [ - "asia\/novosibirsk" - ], - "title": "asia\/novosibirsk" - }, - { - "type": "string", - "enum": [ - "asia\/omsk" - ], - "title": "asia\/omsk" - }, - { - "type": "string", - "enum": [ - "asia\/oral" - ], - "title": "asia\/oral" - }, - { - "type": "string", - "enum": [ - "asia\/phnom_penh" - ], - "title": "asia\/phnom_penh" - }, - { - "type": "string", - "enum": [ - "asia\/pontianak" - ], - "title": "asia\/pontianak" - }, - { - "type": "string", - "enum": [ - "asia\/pyongyang" - ], - "title": "asia\/pyongyang" - }, - { - "type": "string", - "enum": [ - "asia\/qatar" - ], - "title": "asia\/qatar" - }, - { - "type": "string", - "enum": [ - "asia\/qostanay" - ], - "title": "asia\/qostanay" - }, - { - "type": "string", - "enum": [ - "asia\/qyzylorda" - ], - "title": "asia\/qyzylorda" - }, - { - "type": "string", - "enum": [ - "asia\/riyadh" - ], - "title": "asia\/riyadh" - }, - { - "type": "string", - "enum": [ - "asia\/sakhalin" - ], - "title": "asia\/sakhalin" - }, - { - "type": "string", - "enum": [ - "asia\/samarkand" - ], - "title": "asia\/samarkand" - }, - { - "type": "string", - "enum": [ - "asia\/seoul" - ], - "title": "asia\/seoul" - }, - { - "type": "string", - "enum": [ - "asia\/shanghai" - ], - "title": "asia\/shanghai" - }, - { - "type": "string", - "enum": [ - "asia\/singapore" - ], - "title": "asia\/singapore" - }, - { - "type": "string", - "enum": [ - "asia\/srednekolymsk" - ], - "title": "asia\/srednekolymsk" - }, - { - "type": "string", - "enum": [ - "asia\/taipei" - ], - "title": "asia\/taipei" - }, - { - "type": "string", - "enum": [ - "asia\/tashkent" - ], - "title": "asia\/tashkent" - }, - { - "type": "string", - "enum": [ - "asia\/tbilisi" - ], - "title": "asia\/tbilisi" - }, - { - "type": "string", - "enum": [ - "asia\/tehran" - ], - "title": "asia\/tehran" - }, - { - "type": "string", - "enum": [ - "asia\/thimphu" - ], - "title": "asia\/thimphu" - }, - { - "type": "string", - "enum": [ - "asia\/tokyo" - ], - "title": "asia\/tokyo" - }, - { - "type": "string", - "enum": [ - "asia\/tomsk" - ], - "title": "asia\/tomsk" - }, - { - "type": "string", - "enum": [ - "asia\/ulaanbaatar" - ], - "title": "asia\/ulaanbaatar" - }, - { - "type": "string", - "enum": [ - "asia\/urumqi" - ], - "title": "asia\/urumqi" - }, - { - "type": "string", - "enum": [ - "asia\/ust-nera" - ], - "title": "asia\/ust-nera" - }, - { - "type": "string", - "enum": [ - "asia\/vientiane" - ], - "title": "asia\/vientiane" - }, - { - "type": "string", - "enum": [ - "asia\/vladivostok" - ], - "title": "asia\/vladivostok" - }, - { - "type": "string", - "enum": [ - "asia\/yakutsk" - ], - "title": "asia\/yakutsk" - }, - { - "type": "string", - "enum": [ - "asia\/yangon" - ], - "title": "asia\/yangon" - }, - { - "type": "string", - "enum": [ - "asia\/yekaterinburg" - ], - "title": "asia\/yekaterinburg" - }, - { - "type": "string", - "enum": [ - "asia\/yerevan" - ], - "title": "asia\/yerevan" - }, - { - "type": "string", - "enum": [ - "atlantic\/azores" - ], - "title": "atlantic\/azores" - }, - { - "type": "string", - "enum": [ - "atlantic\/bermuda" - ], - "title": "atlantic\/bermuda" - }, - { - "type": "string", - "enum": [ - "atlantic\/canary" - ], - "title": "atlantic\/canary" - }, - { - "type": "string", - "enum": [ - "atlantic\/cape_verde" - ], - "title": "atlantic\/cape_verde" - }, - { - "type": "string", - "enum": [ - "atlantic\/faroe" - ], - "title": "atlantic\/faroe" - }, - { - "type": "string", - "enum": [ - "atlantic\/madeira" - ], - "title": "atlantic\/madeira" - }, - { - "type": "string", - "enum": [ - "atlantic\/reykjavik" - ], - "title": "atlantic\/reykjavik" - }, - { - "type": "string", - "enum": [ - "atlantic\/south_georgia" - ], - "title": "atlantic\/south_georgia" - }, - { - "type": "string", - "enum": [ - "atlantic\/st_helena" - ], - "title": "atlantic\/st_helena" - }, - { - "type": "string", - "enum": [ - "atlantic\/stanley" - ], - "title": "atlantic\/stanley" - }, - { - "type": "string", - "enum": [ - "australia\/adelaide" - ], - "title": "australia\/adelaide" - }, - { - "type": "string", - "enum": [ - "australia\/brisbane" - ], - "title": "australia\/brisbane" - }, - { - "type": "string", - "enum": [ - "australia\/broken_hill" - ], - "title": "australia\/broken_hill" - }, - { - "type": "string", - "enum": [ - "australia\/darwin" - ], - "title": "australia\/darwin" - }, - { - "type": "string", - "enum": [ - "australia\/eucla" - ], - "title": "australia\/eucla" - }, - { - "type": "string", - "enum": [ - "australia\/hobart" - ], - "title": "australia\/hobart" - }, - { - "type": "string", - "enum": [ - "australia\/lindeman" - ], - "title": "australia\/lindeman" - }, - { - "type": "string", - "enum": [ - "australia\/lord_howe" - ], - "title": "australia\/lord_howe" - }, - { - "type": "string", - "enum": [ - "australia\/melbourne" - ], - "title": "australia\/melbourne" - }, - { - "type": "string", - "enum": [ - "australia\/perth" - ], - "title": "australia\/perth" - }, - { - "type": "string", - "enum": [ - "australia\/sydney" - ], - "title": "australia\/sydney" - }, - { - "type": "string", - "enum": [ - "europe\/amsterdam" - ], - "title": "europe\/amsterdam" - }, - { - "type": "string", - "enum": [ - "europe\/andorra" - ], - "title": "europe\/andorra" - }, - { - "type": "string", - "enum": [ - "europe\/astrakhan" - ], - "title": "europe\/astrakhan" - }, - { - "type": "string", - "enum": [ - "europe\/athens" - ], - "title": "europe\/athens" - }, - { - "type": "string", - "enum": [ - "europe\/belgrade" - ], - "title": "europe\/belgrade" - }, - { - "type": "string", - "enum": [ - "europe\/berlin" - ], - "title": "europe\/berlin" - }, - { - "type": "string", - "enum": [ - "europe\/bratislava" - ], - "title": "europe\/bratislava" - }, - { - "type": "string", - "enum": [ - "europe\/brussels" - ], - "title": "europe\/brussels" - }, - { - "type": "string", - "enum": [ - "europe\/bucharest" - ], - "title": "europe\/bucharest" - }, - { - "type": "string", - "enum": [ - "europe\/budapest" - ], - "title": "europe\/budapest" - }, - { - "type": "string", - "enum": [ - "europe\/busingen" - ], - "title": "europe\/busingen" - }, - { - "type": "string", - "enum": [ - "europe\/chisinau" - ], - "title": "europe\/chisinau" - }, - { - "type": "string", - "enum": [ - "europe\/copenhagen" - ], - "title": "europe\/copenhagen" - }, - { - "type": "string", - "enum": [ - "europe\/dublin" - ], - "title": "europe\/dublin" - }, - { - "type": "string", - "enum": [ - "europe\/gibraltar" - ], - "title": "europe\/gibraltar" - }, - { - "type": "string", - "enum": [ - "europe\/guernsey" - ], - "title": "europe\/guernsey" - }, - { - "type": "string", - "enum": [ - "europe\/helsinki" - ], - "title": "europe\/helsinki" - }, - { - "type": "string", - "enum": [ - "europe\/isle_of_man" - ], - "title": "europe\/isle_of_man" - }, - { - "type": "string", - "enum": [ - "europe\/istanbul" - ], - "title": "europe\/istanbul" - }, - { - "type": "string", - "enum": [ - "europe\/jersey" - ], - "title": "europe\/jersey" - }, - { - "type": "string", - "enum": [ - "europe\/kaliningrad" - ], - "title": "europe\/kaliningrad" - }, - { - "type": "string", - "enum": [ - "europe\/kirov" - ], - "title": "europe\/kirov" - }, - { - "type": "string", - "enum": [ - "europe\/kyiv" - ], - "title": "europe\/kyiv" - }, - { - "type": "string", - "enum": [ - "europe\/lisbon" - ], - "title": "europe\/lisbon" - }, - { - "type": "string", - "enum": [ - "europe\/ljubljana" - ], - "title": "europe\/ljubljana" - }, - { - "type": "string", - "enum": [ - "europe\/london" - ], - "title": "europe\/london" - }, - { - "type": "string", - "enum": [ - "europe\/luxembourg" - ], - "title": "europe\/luxembourg" - }, - { - "type": "string", - "enum": [ - "europe\/madrid" - ], - "title": "europe\/madrid" - }, - { - "type": "string", - "enum": [ - "europe\/malta" - ], - "title": "europe\/malta" - }, - { - "type": "string", - "enum": [ - "europe\/mariehamn" - ], - "title": "europe\/mariehamn" - }, - { - "type": "string", - "enum": [ - "europe\/minsk" - ], - "title": "europe\/minsk" - }, - { - "type": "string", - "enum": [ - "europe\/monaco" - ], - "title": "europe\/monaco" - }, - { - "type": "string", - "enum": [ - "europe\/moscow" - ], - "title": "europe\/moscow" - }, - { - "type": "string", - "enum": [ - "europe\/oslo" - ], - "title": "europe\/oslo" - }, - { - "type": "string", - "enum": [ - "europe\/paris" - ], - "title": "europe\/paris" - }, - { - "type": "string", - "enum": [ - "europe\/podgorica" - ], - "title": "europe\/podgorica" - }, - { - "type": "string", - "enum": [ - "europe\/prague" - ], - "title": "europe\/prague" - }, - { - "type": "string", - "enum": [ - "europe\/riga" - ], - "title": "europe\/riga" - }, - { - "type": "string", - "enum": [ - "europe\/rome" - ], - "title": "europe\/rome" - }, - { - "type": "string", - "enum": [ - "europe\/samara" - ], - "title": "europe\/samara" - }, - { - "type": "string", - "enum": [ - "europe\/san_marino" - ], - "title": "europe\/san_marino" - }, - { - "type": "string", - "enum": [ - "europe\/sarajevo" - ], - "title": "europe\/sarajevo" - }, - { - "type": "string", - "enum": [ - "europe\/saratov" - ], - "title": "europe\/saratov" - }, - { - "type": "string", - "enum": [ - "europe\/simferopol" - ], - "title": "europe\/simferopol" - }, - { - "type": "string", - "enum": [ - "europe\/skopje" - ], - "title": "europe\/skopje" - }, - { - "type": "string", - "enum": [ - "europe\/sofia" - ], - "title": "europe\/sofia" - }, - { - "type": "string", - "enum": [ - "europe\/stockholm" - ], - "title": "europe\/stockholm" - }, - { - "type": "string", - "enum": [ - "europe\/tallinn" - ], - "title": "europe\/tallinn" - }, - { - "type": "string", - "enum": [ - "europe\/tirane" - ], - "title": "europe\/tirane" - }, - { - "type": "string", - "enum": [ - "europe\/ulyanovsk" - ], - "title": "europe\/ulyanovsk" - }, - { - "type": "string", - "enum": [ - "europe\/vaduz" - ], - "title": "europe\/vaduz" - }, - { - "type": "string", - "enum": [ - "europe\/vatican" - ], - "title": "europe\/vatican" - }, - { - "type": "string", - "enum": [ - "europe\/vienna" - ], - "title": "europe\/vienna" - }, - { - "type": "string", - "enum": [ - "europe\/vilnius" - ], - "title": "europe\/vilnius" - }, - { - "type": "string", - "enum": [ - "europe\/volgograd" - ], - "title": "europe\/volgograd" - }, - { - "type": "string", - "enum": [ - "europe\/warsaw" - ], - "title": "europe\/warsaw" - }, - { - "type": "string", - "enum": [ - "europe\/zagreb" - ], - "title": "europe\/zagreb" - }, - { - "type": "string", - "enum": [ - "europe\/zurich" - ], - "title": "europe\/zurich" - }, - { - "type": "string", - "enum": [ - "indian\/antananarivo" - ], - "title": "indian\/antananarivo" - }, - { - "type": "string", - "enum": [ - "indian\/chagos" - ], - "title": "indian\/chagos" - }, - { - "type": "string", - "enum": [ - "indian\/christmas" - ], - "title": "indian\/christmas" - }, - { - "type": "string", - "enum": [ - "indian\/cocos" - ], - "title": "indian\/cocos" - }, - { - "type": "string", - "enum": [ - "indian\/comoro" - ], - "title": "indian\/comoro" - }, - { - "type": "string", - "enum": [ - "indian\/kerguelen" - ], - "title": "indian\/kerguelen" - }, - { - "type": "string", - "enum": [ - "indian\/mahe" - ], - "title": "indian\/mahe" - }, - { - "type": "string", - "enum": [ - "indian\/maldives" - ], - "title": "indian\/maldives" - }, - { - "type": "string", - "enum": [ - "indian\/mauritius" - ], - "title": "indian\/mauritius" - }, - { - "type": "string", - "enum": [ - "indian\/mayotte" - ], - "title": "indian\/mayotte" - }, - { - "type": "string", - "enum": [ - "indian\/reunion" - ], - "title": "indian\/reunion" - }, - { - "type": "string", - "enum": [ - "pacific\/apia" - ], - "title": "pacific\/apia" - }, - { - "type": "string", - "enum": [ - "pacific\/auckland" - ], - "title": "pacific\/auckland" - }, - { - "type": "string", - "enum": [ - "pacific\/bougainville" - ], - "title": "pacific\/bougainville" - }, - { - "type": "string", - "enum": [ - "pacific\/chatham" - ], - "title": "pacific\/chatham" - }, - { - "type": "string", - "enum": [ - "pacific\/chuuk" - ], - "title": "pacific\/chuuk" - }, - { - "type": "string", - "enum": [ - "pacific\/easter" - ], - "title": "pacific\/easter" - }, - { - "type": "string", - "enum": [ - "pacific\/efate" - ], - "title": "pacific\/efate" - }, - { - "type": "string", - "enum": [ - "pacific\/fakaofo" - ], - "title": "pacific\/fakaofo" - }, - { - "type": "string", - "enum": [ - "pacific\/fiji" - ], - "title": "pacific\/fiji" - }, - { - "type": "string", - "enum": [ - "pacific\/funafuti" - ], - "title": "pacific\/funafuti" - }, - { - "type": "string", - "enum": [ - "pacific\/galapagos" - ], - "title": "pacific\/galapagos" - }, - { - "type": "string", - "enum": [ - "pacific\/gambier" - ], - "title": "pacific\/gambier" - }, - { - "type": "string", - "enum": [ - "pacific\/guadalcanal" - ], - "title": "pacific\/guadalcanal" - }, - { - "type": "string", - "enum": [ - "pacific\/guam" - ], - "title": "pacific\/guam" - }, - { - "type": "string", - "enum": [ - "pacific\/honolulu" - ], - "title": "pacific\/honolulu" - }, - { - "type": "string", - "enum": [ - "pacific\/kanton" - ], - "title": "pacific\/kanton" - }, - { - "type": "string", - "enum": [ - "pacific\/kiritimati" - ], - "title": "pacific\/kiritimati" - }, - { - "type": "string", - "enum": [ - "pacific\/kosrae" - ], - "title": "pacific\/kosrae" - }, - { - "type": "string", - "enum": [ - "pacific\/kwajalein" - ], - "title": "pacific\/kwajalein" - }, - { - "type": "string", - "enum": [ - "pacific\/majuro" - ], - "title": "pacific\/majuro" - }, - { - "type": "string", - "enum": [ - "pacific\/marquesas" - ], - "title": "pacific\/marquesas" - }, - { - "type": "string", - "enum": [ - "pacific\/midway" - ], - "title": "pacific\/midway" - }, - { - "type": "string", - "enum": [ - "pacific\/nauru" - ], - "title": "pacific\/nauru" - }, - { - "type": "string", - "enum": [ - "pacific\/niue" - ], - "title": "pacific\/niue" - }, - { - "type": "string", - "enum": [ - "pacific\/norfolk" - ], - "title": "pacific\/norfolk" - }, - { - "type": "string", - "enum": [ - "pacific\/noumea" - ], - "title": "pacific\/noumea" - }, - { - "type": "string", - "enum": [ - "pacific\/pago_pago" - ], - "title": "pacific\/pago_pago" - }, - { - "type": "string", - "enum": [ - "pacific\/palau" - ], - "title": "pacific\/palau" - }, - { - "type": "string", - "enum": [ - "pacific\/pitcairn" - ], - "title": "pacific\/pitcairn" - }, - { - "type": "string", - "enum": [ - "pacific\/pohnpei" - ], - "title": "pacific\/pohnpei" - }, - { - "type": "string", - "enum": [ - "pacific\/port_moresby" - ], - "title": "pacific\/port_moresby" - }, - { - "type": "string", - "enum": [ - "pacific\/rarotonga" - ], - "title": "pacific\/rarotonga" - }, - { - "type": "string", - "enum": [ - "pacific\/saipan" - ], - "title": "pacific\/saipan" - }, - { - "type": "string", - "enum": [ - "pacific\/tahiti" - ], - "title": "pacific\/tahiti" - }, - { - "type": "string", - "enum": [ - "pacific\/tarawa" - ], - "title": "pacific\/tarawa" - }, - { - "type": "string", - "enum": [ - "pacific\/tongatapu" - ], - "title": "pacific\/tongatapu" - }, - { - "type": "string", - "enum": [ - "pacific\/wake" - ], - "title": "pacific\/wake" - }, - { - "type": "string", - "enum": [ - "pacific\/wallis" - ], - "title": "pacific\/wallis" - }, - { - "type": "string", - "enum": [ - "utc" - ], - "title": "utc" - } - ] - }, - "in": "query" - }, - { - "name": "latitude", - "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 37.7749, - "default": 0 - }, - "in": "query" - }, - { - "name": "longitude", - "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": -122.4194, - "default": 0 - }, - "in": "query" - }, - { - "name": "accuracy", - "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 100, - "default": 0 - }, - "in": "query" - }, - { - "name": "touch", - "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "permissions", - "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "BrowserPermission", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "geolocation" - ], - "title": "geolocation" - }, - { - "type": "string", - "enum": [ - "camera" - ], - "title": "camera" - }, - { - "type": "string", - "enum": [ - "microphone" - ], - "title": "microphone" - }, - { - "type": "string", - "enum": [ - "notifications" - ], - "title": "notifications" - }, - { - "type": "string", - "enum": [ - "midi" - ], - "title": "midi" - }, - { - "type": "string", - "enum": [ - "push" - ], - "title": "push" - }, - { - "type": "string", - "enum": [ - "clipboard-read" - ], - "title": "clipboard-read" - }, - { - "type": "string", - "enum": [ - "clipboard-write" - ], - "title": "clipboard-write" - }, - { - "type": "string", - "enum": [ - "payment-handler" - ], - "title": "payment-handler" - }, - { - "type": "string", - "enum": [ - "usb" - ], - "title": "usb" - }, - { - "type": "string", - "enum": [ - "bluetooth" - ], - "title": "bluetooth" - }, - { - "type": "string", - "enum": [ - "accelerometer" - ], - "title": "accelerometer" - }, - { - "type": "string", - "enum": [ - "gyroscope" - ], - "title": "gyroscope" - }, - { - "type": "string", - "enum": [ - "magnetometer" - ], - "title": "magnetometer" - }, - { - "type": "string", - "enum": [ - "ambient-light-sensor" - ], - "title": "ambient-light-sensor" - }, - { - "type": "string", - "enum": [ - "background-sync" - ], - "title": "background-sync" - }, - { - "type": "string", - "enum": [ - "persistent-storage" - ], - "title": "persistent-storage" - }, - { - "type": "string", - "enum": [ - "screen-wake-lock" - ], - "title": "screen-wake-lock" - }, - { - "type": "string", - "enum": [ - "web-share" - ], - "title": "web-share" - }, - { - "type": "string", - "enum": [ - "xr-spatial-tracking" - ], - "title": "xr-spatial-tracking" - } - ] - }, - "example": [ - "geolocation", - "notifications" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "sleep", - "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 3, - "default": 0 - }, - "in": "query" - }, - { - "name": "width", - "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 800, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 600, - "default": 0 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 85, - "default": -1 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpeg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/databases\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "databasesListTransactions", - "tags": [ - "databases" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTransactions" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "databasesCreateTransaction", - "tags": [ - "databases" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/databases\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "databasesGetTransaction", - "tags": [ - "databases" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "databasesUpdateTransaction", - "tags": [ - "databases" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "databasesDeleteTransaction", - "tags": [ - "databases" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "databasesCreateOperations", - "tags": [ - "databases" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createOperations" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "databasesListDocuments", - "tags": [ - "databases" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listRows" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "databasesCreateDocument", - "tags": [ - "databases" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - }, - "methods": [ - { - "name": "createDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "databasesGetDocument", - "tags": [ - "databases" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "databasesUpsertDocument", - "tags": [ - "databases" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" - }, - "methods": [ - { - "name": "upsertDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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#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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "databasesUpdateDocument", - "tags": [ - "databases" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "databasesDeleteDocument", - "tags": [ - "databases" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "databasesDecrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Decrement a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.decrementRowColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "databasesIncrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Increment a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.incrementRowColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/documentsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "documentsDBListTransactions", - "tags": [ - "documentsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "documentsDBCreateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/documentsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "documentsDBGetTransaction", - "tags": [ - "documentsDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "documentsDBUpdateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "documentsDBDeleteTransaction", - "tags": [ - "documentsDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "documentsDBCreateOperations", - "tags": [ - "documentsDB" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "documentsDBListDocuments", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "documentsDBCreateDocument", - "tags": [ - "documentsDB" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-documents.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "documentsDBGetDocument", - "tags": [ - "documentsDB" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "documentsDBUpsertDocument", - "tags": [ - "documentsDB" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "documentsDBUpdateDocument", - "tags": [ - "documentsDB" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "documentsDBDeleteDocument", - "tags": [ - "documentsDB" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "documentsDBDecrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Decrement a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to decrement the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "documentsDBIncrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Increment a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", - "tags": [ - "functions" - ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Executions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/executionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/list-executions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", - "tags": [ - "functions" - ], - "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", - "responses": { - "201": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "description": "HTTP body of execution. Default value is empty string.", - "type": "string", - "default": "", - "example": "<BODY>" - }, - "async": { - "description": "Execute code in the background. Default value is false.", - "type": "boolean", - "default": false, - "example": false - }, - "path": { - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "type": "string", - "default": "\/", - "example": "<PATH>" - }, - "method": { - "description": "HTTP method of execution. Default value is POST.", - "type": "string", - "default": "POST", - "example": "GET", - "title": "ExecutionMethod", - "oneOf": [ - { - "type": "string", - "enum": [ - "GET" - ], - "title": "GET" - }, - { - "type": "string", - "enum": [ - "POST" - ], - "title": "POST" - }, - { - "type": "string", - "enum": [ - "PUT" - ], - "title": "PUT" - }, - { - "type": "string", - "enum": [ - "PATCH" - ], - "title": "PATCH" - }, - { - "type": "string", - "enum": [ - "DELETE" - ], - "title": "DELETE" - }, - { - "type": "string", - "enum": [ - "OPTIONS" - ], - "title": "OPTIONS" - }, - { - "type": "string", - "enum": [ - "HEAD" - ], - "title": "HEAD" - } - ] - }, - "headers": { - "description": "HTTP headers of execution. Defaults to empty.", - "type": "object", - "default": {}, - "example": {} - }, - "scheduledAt": { - "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", - "type": "string", - "example": "<SCHEDULED_AT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", - "tags": [ - "functions" - ], - "description": "Get a function execution log by its unique ID.", - "responses": { - "200": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/get-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EXECUTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "query { localeGet { ip } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "tags": [ - "locale" - ], - "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", - "responses": { - "200": { - "description": "Locale", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/locale" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "tags": [ - "locale" - ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", - "responses": { - "200": { - "description": "Locale codes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "tags": [ - "locale" - ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Continents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/continentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-continents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "tags": [ - "locale" - ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "tags": [ - "locale" - ], - "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-eu.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", - "tags": [ - "locale" - ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Phones List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/phoneList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", - "tags": [ - "locale" - ], - "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Currencies List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/currencyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "tags": [ - "locale" - ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", - "responses": { - "200": { - "description": "Languages List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/languageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", - "tags": [ - "messaging" - ], - "description": "Create a new subscriber.", - "responses": { - "201": { - "description": "Subscriber", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subscriberId": { - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "type": "string", - "example": "<SUBSCRIBER_ID>" - }, - "targetId": { - "description": "Target ID. The target ID to link to the specified Topic ID.", - "type": "string", - "example": "<TARGET_ID>" - } - }, - "required": [ - "subscriberId", - "targetId" - ] - } - } - } - } - } - }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { - "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", - "tags": [ - "messaging" - ], - "description": "Delete a subscriber by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SUBSCRIBER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/oauth2\/{project_id}\/approve": { - "post": { - "summary": "Approve OAuth2", - "operationId": "oauth2Approve", - "tags": [ - "oauth2" - ], - "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Approve", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Approve" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/approve.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - }, - "authorization_details": { - "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "scope": { - "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", - "type": "string", - "default": "", - "example": "<SCOPE>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/authorize": { - "get": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "client_id", - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "required": false, - "schema": { - "type": "string", - "example": "<CLIENT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "redirect_uri", - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "response_type", - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "required": false, - "schema": { - "type": "string", - "example": "", - "default": "" - }, - "in": "query" - }, - { - "name": "scope", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "required": false, - "schema": { - "type": "string", - "example": "<SCOPE>", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "required": false, - "schema": { - "type": "string", - "example": "<STATE>", - "default": "" - }, - "in": "query" - }, - { - "name": "nonce", - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "required": false, - "schema": { - "type": "string", - "example": "<NONCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "<CODE_CHALLENGE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge_method", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "s256", - "default": "" - }, - "in": "query" - }, - { - "name": "prompt", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "required": false, - "schema": { - "type": "string", - "example": "<PROMPT>", - "default": "" - }, - "in": "query" - }, - { - "name": "max_age", - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "in": "query" - }, - { - "name": "authorization_details", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "required": false, - "schema": { - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "default": "" - }, - "in": "query" - }, - { - "name": "resource", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "required": false, - "schema": { - "type": "string", - "default": [] - }, - "in": "query" - }, - { - "name": "audience", - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "required": false, - "schema": { - "type": "string", - "example": "<AUDIENCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "request_uri", - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "required": false, - "schema": { - "type": "string", - "example": "<REQUEST_URI>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2AuthorizePost", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "type": "string", - "default": "", - "example": "" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - }, - "request_uri": { - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "type": "string", - "default": "", - "example": "<REQUEST_URI>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/device_authorization": { - "post": { - "summary": "OAuth2 Device Authorization", - "operationId": "oauth2CreateDeviceAuthorization", - "tags": [ - "oauth2" - ], - "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", - "responses": { - "200": { - "description": "OAuth2 Device Authorization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-device-authorization.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants": { - "post": { - "summary": "Create OAuth2 Grant", - "operationId": "oauth2CreateGrant", - "tags": [ - "oauth2" - ], - "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", - "responses": { - "201": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/create-grant.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "user_code": { - "description": "User code displayed on the device.", - "type": "string", - "example": "<USER_CODE>" - } - }, - "required": [ - "user_code" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants\/{grant_id}": { - "get": { - "summary": "Get OAuth2 Grant", - "operationId": "oauth2GetGrant", - "tags": [ - "oauth2" - ], - "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", - "responses": { - "200": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/get-grant.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client that created grant during authorization exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "grant_id", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "required": true, - "schema": { - "type": "string", - "example": "<GRANT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/oauth2\/{project_id}\/logout": { - "get": { - "summary": "OAuth2 Logout", - "operationId": "oauth2Logout", - "tags": [ - "oauth2" - ], - "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/logout.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "id_token_hint", - "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", - "required": false, - "schema": { - "type": "string", - "example": "<ID_TOKEN_HINT>", - "default": "" - }, - "in": "query" - }, - { - "name": "logout_hint", - "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", - "required": false, - "schema": { - "type": "string", - "example": "<LOGOUT_HINT>", - "default": "" - }, - "in": "query" - }, - { - "name": "client_id", - "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", - "required": false, - "schema": { - "type": "string", - "example": "<CLIENT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "post_logout_redirect_uri", - "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", - "required": false, - "schema": { - "type": "string", - "example": "<STATE>", - "default": "" - }, - "in": "query" - }, - { - "name": "ui_locales", - "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", - "required": false, - "schema": { - "type": "string", - "example": "<UI_LOCALES>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "OAuth2 Logout", - "operationId": "oauth2LogoutPost", - "tags": [ - "oauth2" - ], - "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/logout.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "id_token_hint": { - "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", - "type": "string", - "default": "", - "example": "<ID_TOKEN_HINT>" - }, - "logout_hint": { - "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", - "type": "string", - "default": "", - "example": "<LOGOUT_HINT>" - }, - "client_id": { - "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "post_logout_redirect_uri": { - "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "state": { - "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "ui_locales": { - "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", - "type": "string", - "default": "", - "example": "<UI_LOCALES>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/organizations": { - "get": { - "summary": "OAuth2 List Accessible Organizations", - "operationId": "oauth2ListOrganizations", - "tags": [ - "oauth2" - ], - "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible organizations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2OrganizationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-organizations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.organizations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of organizations to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of organizations to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/par": { - "post": { - "summary": "OAuth2 PAR", - "operationId": "oauth2CreatePAR", - "tags": [ - "oauth2" - ], - "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", - "responses": { - "201": { - "description": "OAuth2 PAR", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2PAR" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-par.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type.", - "type": "string", - "example": "code" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age parameter for customization of consent screen.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "client_id", - "redirect_uri", - "response_type" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/projects": { - "get": { - "summary": "OAuth2 List Accessible Projects", - "operationId": "oauth2ListProjects", - "tags": [ - "oauth2" - ], - "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible projects list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ProjectList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-projects.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.projects.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of projects to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of projects to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/reject": { - "post": { - "summary": "Reject OAuth2", - "operationId": "oauth2Reject", - "tags": [ - "oauth2" - ], - "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Reject", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Reject" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/reject.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/revoke": { - "post": { - "summary": "OAuth2 Revoke", - "operationId": "oauth2Revoke", - "tags": [ - "oauth2" - ], - "description": "Revoke an OAuth2 access token or refresh token.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/revoke.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "description": "The access or refresh token to revoke.", - "type": "string", - "example": "<TOKEN>" - }, - "token_type_hint": { - "description": "Type of token to revoke (access_token or refresh_token).", - "type": "string", - "default": "", - "example": "access_token" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - } - }, - "required": [ - "token" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/token": { - "post": { - "summary": "OAuth2 Token", - "operationId": "oauth2CreateToken", - "tags": [ - "oauth2" - ], - "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", - "responses": { - "200": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/create-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_type": { - "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", - "type": "string", - "example": "<GRANT_TYPE>" - }, - "code": { - "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "<CODE>" - }, - "refresh_token": { - "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", - "type": "string", - "default": "", - "example": "<REFRESH_TOKEN>" - }, - "device_code": { - "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", - "type": "string", - "default": "", - "example": "<DEVICE_CODE>" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - }, - "code_verifier": { - "description": "PKCE code verifier. Required for public apps.", - "type": "string", - "default": "", - "example": "<CODE_VERIFIER>" - }, - "redirect_uri": { - "description": "Redirect URI. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "grant_type" - ] - }, - "examples": { - "authorizationCode": { - "summary": "Exchange an authorization code", - "value": { - "grant_type": "authorization_code", - "code": "<CODE>", - "redirect_uri": "https:\/\/example.com\/callback", - "client_id": "<CLIENT_ID>", - "code_verifier": "<CODE_VERIFIER>" - } - }, - "refreshToken": { - "summary": "Refresh an access token", - "value": { - "grant_type": "refresh_token", - "refresh_token": "<REFRESH_TOKEN>", - "client_id": "<CLIENT_ID>" - } - }, - "deviceCode": { - "summary": "Exchange a device code", - "value": { - "grant_type": "urn:ietf:params:oauth:grant-type:device_code", - "device_code": "<DEVICE_CODE>", - "client_id": "<CLIENT_ID>" - } - } - } - } - } - } - } - }, - "\/organization\/installations": { - "get": { - "summary": "List Installations", - "operationId": "organizationListInstallations", - "tags": [ - "organization" - ], - "description": "List app installations on the organization. Any organization member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "organizationCreateInstallation", - "tags": [ - "organization" - ], - "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/organization\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "organizationGetInstallation", - "tags": [ - "organization" - ], - "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "organizationUpdateInstallation", - "tags": [ - "organization" - ], - "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "organizationDeleteInstallation", - "tags": [ - "organization" - ], - "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/ping": { - "get": { - "summary": "Test the connection between the Appwrite and the SDK.", - "operationId": "pingGet", - "tags": [ - "ping" - ], - "description": "Send a ping to project as part of onboarding.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "ping\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "global", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [] - } - ] - } - }, - "\/presences": { - "get": { - "summary": "List presences", - "operationId": "presencesList", - "tags": [ - "presences" - ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", - "responses": { - "200": { - "description": "Presences List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presenceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", - "tags": [ - "presences" - ], - "description": "Create or update a presence log by its user ID.\n", - "responses": { - "200": { - "description": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/upsert.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "platforms": [ - "client", - "console" - ], - "summary": "Upsert presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "status", - "permissions", - "expiresAt", - "metadata" - ], - "required": [ - "presenceId", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "status" - ] - } - } - } - } - }, - "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", - "tags": [ - "presences" - ], - "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": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "update", - "namespace": "presences", - "platforms": [ - "client", - "console" - ], - "summary": "Update presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "status", - "expiresAt", - "metadata", - "permissions", - "purge" - ], - "required": [ - "presenceId" - ], - "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.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "purge": { - "description": "When true, purge cached responses used by list presences endpoint.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", - "tags": [ - "presences" - ], - "description": "Delete a presence log by its unique ID.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", - "tags": [ - "storage" - ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Files List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/fileList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/list-files.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", - "tags": [ - "storage" - ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", - "responses": { - "201": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "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.", - "type": "string", - "example": "<FILE_ID>" - }, - "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).", - "type": "string", - "format": "binary" - }, - "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).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "folder": { - "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", - "type": "string", - "default": "", - "example": "photos\/2026" - } - }, - "required": [ - "fileId", - "file" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", - "tags": [ - "storage" - ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", - "tags": [ - "storage" - ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/update-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "File name.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - } - } - } - } - } - } - }, - "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": { - "group": "files", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", - "tags": [ - "storage" - ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-preview.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "example": "auto", - "title": "ImageGravity", - "oneOf": [ - { - "type": "string", - "enum": [ - "auto" - ], - "title": "auto" - }, - { - "type": "string", - "enum": [ - "center" - ], - "title": "center" - }, - { - "type": "string", - "enum": [ - "top-left" - ], - "title": "top-left" - }, - { - "type": "string", - "enum": [ - "top" - ], - "title": "top" - }, - { - "type": "string", - "enum": [ - "top-right" - ], - "title": "top-right" - }, - { - "type": "string", - "enum": [ - "left" - ], - "title": "left" - }, - { - "type": "string", - "enum": [ - "right" - ], - "title": "right" - }, - { - "type": "string", - "enum": [ - "bottom-left" - ], - "title": "bottom-left" - }, - { - "type": "string", - "enum": [ - "bottom" - ], - "title": "bottom" - }, - { - "type": "string", - "enum": [ - "bottom-right" - ], - "title": "bottom-right" - } - ], - "default": "center" - }, - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "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", - "example": "FFFFFF", - "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", - "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", - "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", - "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", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", - "tags": [ - "tablesDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create 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": { - "group": "transactions", - "demo": "tablesdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "tags": [ - "tablesDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", - "tags": [ - "tablesDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", - "tags": [ - "tablesDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", - "tags": [ - "tablesDB" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createRow": { - "summary": "Stage a row creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", - "tags": [ - "tablesDB" - ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/list-rows.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "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", - "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": { - "group": "rows", - "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, - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create row", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rowId": { - "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.", - "type": "string", - "example": "<ROW_ID>" - }, - "data": { - "description": "Row data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rows": { - "description": "Array of rows data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "rowId", - "data" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", - "tags": [ - "tablesDB" - ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", - "responses": { - "200": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/get-row.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", - "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.", - "responses": { - "201": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update row data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", - "tags": [ - "tablesDB" - ], - "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": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update row data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", - "tags": [ - "tablesDB" - ], - "description": "Delete a row by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", - "tags": [ - "tablesDB" - ], - "description": "Decrement 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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", - "tags": [ - "teams" - ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", - "responses": { - "200": { - "description": "Teams List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/teamList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "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: 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", - "tags": [ - "teams" - ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", - "responses": { - "201": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "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.", - "type": "string", - "example": "<TEAM_ID>" - }, - "name": { - "description": "Team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "roles": { - "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 81 characters long.", - "type": "array", - "default": [ - "owner" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", - "tags": [ - "teams" - ], - "description": "Get a team by its ID. All team members have read access for this resource.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", - "tags": [ - "teams" - ], - "description": "Update the team's name by its unique ID.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "New team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", - "tags": [ - "teams" - ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "teamsListInstallations", - "tags": [ - "teams" - ], - "description": "List app installations on a team. Any team member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "teamsCreateInstallation", - "tags": [ - "teams" - ], - "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "teamsGetInstallation", - "tags": [ - "teams" - ], - "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "teamsUpdateInstallation", - "tags": [ - "teams" - ], - "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "teamsDeleteInstallation", - "tags": [ - "teams" - ], - "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", - "tags": [ - "teams" - ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Email of the new team member.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "userId": { - "description": "ID of the user to be added to a team.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "items": { - "type": "string" - } - }, - "url": { - "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.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "description": "Name of the new team member. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", - "tags": [ - "teams" - ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/get-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update team membership", - "operationId": "teamsUpdateMembership", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "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": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/delete-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret key.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "tags": [ - "teams" - ], - "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": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update team preferences", - "operationId": "teamsUpdatePrefs", - "tags": [ - "teams" - ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/vectorsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", - "tags": [ - "vectorsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", - "tags": [ - "vectorsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "transactions", - "demo": "vectorsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "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": { - "group": "transactions", - "demo": "vectorsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation in a four-dimensional collection", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - ] - } - } - } - } - } - } - } - }, - "\/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": { - "group": "documents", - "demo": "vectorsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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 524288 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "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": { - "group": "documents", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-document.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "key": "value" - } - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { - "post": { - "summary": "Create query", - "operationId": "vectorsDBCreateQuery", - "tags": [ - "vectorsDB" - ], - "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "vectorsdb\/create-query.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID to read uncommitted changes within the transaction.", - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "total": { - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "type": "boolean", - "default": true, - "example": false - }, - "ttl": { - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "documents", - "demo": "vectorsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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": { - "group": "documents", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update a document in a four-dimensional collection", - "value": { - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document metadata", - "value": { - "data": { - "metadata": { - "name": "Updated document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - } - }, - "tags": [ - { - "name": "ping", - "description": "" - }, - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "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": "documentsDB", - "description": "" - }, - { - "name": "vectorsDB", - "description": "" - }, - { - "name": "presences", - "description": "The Presences service allows you to track and manage real-time user presence in your project." - }, - { - "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions." - }, - { - "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": "storage", - "description": "The Storage service allows you to manage your project files." - }, - { - "name": "apps", - "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." - }, - { - "name": "oauth2", - "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." - }, - { - "name": "organization", - "description": "The Organization service allows you to manage organization-level projects." - }, - { - "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." - }, - { - "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." - }, - { - "name": "analytics", - "description": "" - }, - { - "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": "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": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." - }, - { - "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." - } - ], - "components": { - "schemas": { - "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.", - "format": "int32", - "example": 5 - }, - "rows": { - "type": "array", - "description": "List of rows.", - "items": { - "$ref": "#\/components\/schemas\/row" - }, - "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.", - "format": "int32", - "example": 5 - }, - "documents": { - "type": "array", - "description": "List of documents.", - "items": { - "$ref": "#\/components\/schemas\/document" - }, - "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.", - "format": "int32", - "example": 5 - }, - "presences": { - "type": "array", - "description": "List of presences.", - "items": { - "$ref": "#\/components\/schemas\/presence" - }, - "example": [] - } - }, - "required": [ - "total", - "presences" - ], - "example": { - "total": 5, - "presences": "" - } - }, - "sessionList": { - "description": "Sessions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sessions that matched your query.", - "format": "int32", - "example": 5 - }, - "sessions": { - "type": "array", - "description": "List of sessions.", - "items": { - "$ref": "#\/components\/schemas\/session" - }, - "example": [] - } - }, - "required": [ - "total", - "sessions" - ], - "example": { - "total": 5, - "sessions": "" - } - }, - "identityList": { - "description": "Identities List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of identities that matched your query.", - "format": "int32", - "example": 5 - }, - "identities": { - "type": "array", - "description": "List of identities.", - "items": { - "$ref": "#\/components\/schemas\/identity" - }, - "example": [] - } - }, - "required": [ - "total", - "identities" - ], - "example": { - "total": 5, - "identities": "" - } - }, - "fileList": { - "description": "Files List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of files that matched your query.", - "format": "int32", - "example": 5 - }, - "files": { - "type": "array", - "description": "List of files.", - "items": { - "$ref": "#\/components\/schemas\/file" - }, - "example": [] - } - }, - "required": [ - "total", - "files" - ], - "example": { - "total": 5, - "files": "" - } - }, - "teamList": { - "description": "Teams List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of teams that matched your query.", - "format": "int32", - "example": 5 - }, - "teams": { - "type": "array", - "description": "List of teams.", - "items": { - "$ref": "#\/components\/schemas\/team" - }, - "example": [] - } - }, - "required": [ - "total", - "teams" - ], - "example": { - "total": 5, - "teams": "" - } - }, - "membershipList": { - "description": "Memberships List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of memberships that matched your query.", - "format": "int32", - "example": 5 - }, - "memberships": { - "type": "array", - "description": "List of memberships.", - "items": { - "$ref": "#\/components\/schemas\/membership" - }, - "example": [] - } - }, - "required": [ - "total", - "memberships" - ], - "example": { - "total": 5, - "memberships": "" - } - }, - "executionList": { - "description": "Executions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of executions that matched your query.", - "format": "int32", - "example": 5 - }, - "executions": { - "type": "array", - "description": "List of executions.", - "items": { - "$ref": "#\/components\/schemas\/execution" - }, - "example": [] - } - }, - "required": [ - "total", - "executions" - ], - "example": { - "total": 5, - "executions": "" - } - }, - "countryList": { - "description": "Countries List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of countries that matched your query.", - "format": "int32", - "example": 5 - }, - "countries": { - "type": "array", - "description": "List of countries.", - "items": { - "$ref": "#\/components\/schemas\/country" - }, - "example": [] - } - }, - "required": [ - "total", - "countries" - ], - "example": { - "total": 5, - "countries": "" - } - }, - "continentList": { - "description": "Continents List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of continents that matched your query.", - "format": "int32", - "example": 5 - }, - "continents": { - "type": "array", - "description": "List of continents.", - "items": { - "$ref": "#\/components\/schemas\/continent" - }, - "example": [] - } - }, - "required": [ - "total", - "continents" - ], - "example": { - "total": 5, - "continents": "" - } - }, - "languageList": { - "description": "Languages List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of languages that matched your query.", - "format": "int32", - "example": 5 - }, - "languages": { - "type": "array", - "description": "List of languages.", - "items": { - "$ref": "#\/components\/schemas\/language" - }, - "example": [] - } - }, - "required": [ - "total", - "languages" - ], - "example": { - "total": 5, - "languages": "" - } - }, - "currencyList": { - "description": "Currencies List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of currencies that matched your query.", - "format": "int32", - "example": 5 - }, - "currencies": { - "type": "array", - "description": "List of currencies.", - "items": { - "$ref": "#\/components\/schemas\/currency" - }, - "example": [] - } - }, - "required": [ - "total", - "currencies" - ], - "example": { - "total": 5, - "currencies": "" - } - }, - "phoneList": { - "description": "Phones List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of phones that matched your query.", - "format": "int32", - "example": 5 - }, - "phones": { - "type": "array", - "description": "List of phones.", - "items": { - "$ref": "#\/components\/schemas\/phone" - }, - "example": [] - } - }, - "required": [ - "total", - "phones" - ], - "example": { - "total": 5, - "phones": "" - } - }, - "localeCodeList": { - "description": "Locale codes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of localeCodes that matched your query.", - "format": "int32", - "example": 5 - }, - "localeCodes": { - "type": "array", - "description": "List of localeCodes.", - "items": { - "$ref": "#\/components\/schemas\/localeCode" - }, - "example": [] - } - }, - "required": [ - "total", - "localeCodes" - ], - "example": { - "total": 5, - "localeCodes": "" - } - }, - "transactionList": { - "description": "Transaction List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of transactions that matched your query.", - "format": "int32", - "example": 5 - }, - "transactions": { - "type": "array", - "description": "List of transactions.", - "items": { - "$ref": "#\/components\/schemas\/transaction" - }, - "example": [] - } - }, - "required": [ - "total", - "transactions" - ], - "example": { - "total": 5, - "transactions": "" - } - }, - "row": { - "description": "Row", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Row ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Row sequence ID.", - "readOnly": true, - "example": "1" - }, - "$tableId": { - "type": "string", - "description": "Table ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Row creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Row update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$tableId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$tableId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ] - } - }, - "document": { - "description": "Document", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Document ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Document sequence ID.", - "readOnly": true, - "example": "1" - }, - "$collectionId": { - "type": "string", - "description": "Collection ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Document creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Document update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$collectionId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$collectionId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "username": "john.doe", - "email": "john.doe@example.com", - "fullName": "John Doe", - "age": 30, - "isAdmin": false - } - }, - "presence": { - "description": "Presence", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Presence ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Presence creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Presence update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "674af8f3e12a5f9ac0be" - }, - "status": { - "type": "string", - "description": "Presence status.", - "example": "online", - "nullable": true - }, - "source": { - "type": "string", - "description": "Presence source.", - "example": "HTTP" - }, - "expiresAt": { - "type": "string", - "description": "Presence expiry date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "metadata": { - "type": "object", - "additionalProperties": true, - "description": "Presence metadata.", - "example": { - "key": "value" - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "userId", - "source" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "userId": "674af8f3e12a5f9ac0be", - "status": "online", - "source": "HTTP", - "expiresAt": "2020-10-15T06:38:00.000+00:00", - "metadata": { - "key": "value" - } - } - }, - "user": { - "description": "User", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "password": { - "type": "string", - "description": "Hashed user password.", - "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "nullable": true - }, - "hash": { - "type": "string", - "description": "Password hashing algorithm.", - "example": "argon2", - "nullable": true - }, - "hashOptions": { - "type": "object", - "description": "Password hashing algorithm configuration.", - "example": {}, - "allOf": [ - { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/algoArgon2" - }, - { - "$ref": "#\/components\/schemas\/algoScrypt" - }, - { - "$ref": "#\/components\/schemas\/algoScryptModified" - }, - { - "$ref": "#\/components\/schemas\/algoBcrypt" - }, - { - "$ref": "#\/components\/schemas\/algoPhpass" - }, - { - "$ref": "#\/components\/schemas\/algoSha" - }, - { - "$ref": "#\/components\/schemas\/algoMd5" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "argon2": "#\/components\/schemas\/algoArgon2", - "scrypt": "#\/components\/schemas\/algoScrypt", - "scryptMod": "#\/components\/schemas\/algoScryptModified", - "bcrypt": "#\/components\/schemas\/algoBcrypt", - "phpass": "#\/components\/schemas\/algoPhpass", - "sha": "#\/components\/schemas\/algoSha", - "md5": "#\/components\/schemas\/algoMd5" - } - } - } - ], - "nullable": true - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "hash": "argon2", - "hashOptions": {}, - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "algoMd5": { - "description": "AlgoMD5", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "md5" - } - }, - "required": [ - "type" - ], - "example": { - "type": "md5" - } - }, - "algoSha": { - "description": "AlgoSHA", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "sha" - } - }, - "required": [ - "type" - ], - "example": { - "type": "sha" - } - }, - "algoPhpass": { - "description": "AlgoPHPass", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "phpass" - } - }, - "required": [ - "type" - ], - "example": { - "type": "phpass" - } - }, - "algoBcrypt": { - "description": "AlgoBcrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "bcrypt" - } - }, - "required": [ - "type" - ], - "example": { - "type": "bcrypt" - } - }, - "algoScrypt": { - "description": "AlgoScrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scrypt" - }, - "costCpu": { - "type": "integer", - "description": "CPU complexity of computed hash.", - "format": "int32", - "example": 8 - }, - "costMemory": { - "type": "integer", - "description": "Memory complexity of computed hash.", - "format": "int32", - "example": 14 - }, - "costParallel": { - "type": "integer", - "description": "Parallelization of computed hash.", - "format": "int32", - "example": 1 - }, - "length": { - "type": "integer", - "description": "Length used to compute hash.", - "format": "int32", - "example": 64 - } - }, - "required": [ - "type", - "costCpu", - "costMemory", - "costParallel", - "length" - ], - "example": { - "type": "scrypt", - "costCpu": 8, - "costMemory": 14, - "costParallel": 1, - "length": 64 - } - }, - "algoScryptModified": { - "description": "AlgoScryptModified", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scryptMod" - }, - "salt": { - "type": "string", - "description": "Salt used to compute hash.", - "example": "UxLMreBr6tYyjQ==" - }, - "saltSeparator": { - "type": "string", - "description": "Separator used to compute hash.", - "example": "Bw==" - }, - "signerKey": { - "type": "string", - "description": "Key used to compute hash.", - "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "required": [ - "type", - "salt", - "saltSeparator", - "signerKey" - ], - "example": { - "type": "scryptMod", - "salt": "UxLMreBr6tYyjQ==", - "saltSeparator": "Bw==", - "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "algoArgon2": { - "description": "AlgoArgon2", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "argon2" - }, - "memoryCost": { - "type": "integer", - "description": "Memory used to compute hash.", - "format": "int32", - "example": 65536 - }, - "timeCost": { - "type": "integer", - "description": "Amount of time consumed to compute hash", - "format": "int32", - "example": 4 - }, - "threads": { - "type": "integer", - "description": "Number of threads used to compute hash.", - "format": "int32", - "example": 3 - } - }, - "required": [ - "type", - "memoryCost", - "timeCost", - "threads" - ], - "example": { - "type": "argon2", - "memoryCost": 65536, - "timeCost": 4, - "threads": 3 - } - }, - "account": { - "description": "Account", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "preferences": { - "description": "Preferences", - "type": "object", - "additionalProperties": true, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - }, - "session": { - "description": "Session", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Session ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Session creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Session update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "expire": { - "type": "string", - "description": "Session expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "provider": { - "type": "string", - "description": "Session Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "Session Provider User ID.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Session Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Session Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "ip": { - "type": "string", - "description": "IP in use when the session was created.", - "example": "127.0.0.1" - }, - "osCode": { - "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "example": "Mac" - }, - "osName": { - "type": "string", - "description": "Operating system name.", - "example": "Mac" - }, - "osVersion": { - "type": "string", - "description": "Operating system version.", - "example": "Mac" - }, - "clientType": { - "type": "string", - "description": "Client type.", - "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).", - "example": "CM" - }, - "clientName": { - "type": "string", - "description": "Client name.", - "example": "Chrome Mobile iOS" - }, - "clientVersion": { - "type": "string", - "description": "Client version.", - "example": "84.0" - }, - "clientEngine": { - "type": "string", - "description": "Client engine name.", - "example": "WebKit" - }, - "clientEngineVersion": { - "type": "string", - "description": "Client engine name.", - "example": "605.1.15" - }, - "deviceName": { - "type": "string", - "description": "Device name.", - "example": "smartphone" - }, - "deviceBrand": { - "type": "string", - "description": "Device brand name.", - "example": "Google" - }, - "deviceModel": { - "type": "string", - "description": "Device model name.", - "example": "Nexus 5" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "current": { - "type": "boolean", - "description": "Returns true if this the current user session.", - "example": true - }, - "factors": { - "type": "array", - "description": "Returns a list of active session factors.", - "items": { - "type": "string" - }, - "example": [ - "email" - ] - }, - "secret": { - "type": "string", - "description": "Secret used to authenticate the user. Only included if the request was made with an API key", - "example": "5e5bb8c16897e" - }, - "mfaUpdatedAt": { - "type": "string", - "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "expire", - "provider", - "providerUid", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "ip", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName", - "current", - "factors", - "secret", - "mfaUpdatedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "expire": "2020-10-15T06:38:00.000+00:00", - "provider": "email", - "providerUid": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "ip": "127.0.0.1", - "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", - "current": true, - "factors": [ - "email" - ], - "secret": "5e5bb8c16897e", - "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "identity": { - "description": "Identity", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Identity ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Identity creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Identity update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "provider": { - "type": "string", - "description": "Identity Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "ID of the User in the Identity Provider.", - "example": "5e5bb8c16897e" - }, - "providerEmail": { - "type": "string", - "description": "Email of the User in the Identity Provider.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Identity Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Identity Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerIdToken": { - "type": "string", - "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", - "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "provider", - "providerUid", - "providerEmail", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "providerIdToken" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "provider": "email", - "providerUid": "5e5bb8c16897e", - "providerEmail": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "token": { - "description": "Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "secret": { - "type": "string", - "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "phrase": { - "type": "string", - "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", - "example": "Golden Fox" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "secret", - "expire", - "phrase" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "secret": "", - "expire": "2020-10-15T06:38:00.000+00:00", - "phrase": "Golden Fox" - } - }, - "jwt": { - "description": "JWT", - "type": "object", - "properties": { - "jwt": { - "type": "string", - "description": "JWT encoded string.", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "jwt" - ], - "example": { - "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "locale": { - "description": "Locale", - "type": "object", - "properties": { - "ip": { - "type": "string", - "description": "User IP address.", - "example": "127.0.0.1" - }, - "countryCode": { - "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", - "example": "US" - }, - "country": { - "type": "string", - "description": "Country name. This field support localization.", - "example": "United States" - }, - "continentCode": { - "type": "string", - "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", - "example": "NA" - }, - "continent": { - "type": "string", - "description": "Continent name. This field support localization.", - "example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "example": false - }, - "currency": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "example": "USD" - }, - "city": { - "type": "string", - "description": "City", - "example": "Kathmandu", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Name of timezone", - "example": "Asia\/Kathmandu", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Postal code", - "example": "44600", - "nullable": true - }, - "latitude": { - "type": "number", - "description": "Latitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "longitude": { - "type": "number", - "description": "Longitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) of the IP", - "example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN", - "example": "GOOGLE", - "nullable": true - }, - "isp": { - "type": "string", - "description": "Internet service provider of the IP", - "example": "Google", - "nullable": true - }, - "connectionType": { - "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "example": "cable", - "nullable": true - }, - "connectionUsageType": { - "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "example": "residential", - "nullable": true - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP", - "example": "Google LLC", - "nullable": true - } - }, - "required": [ - "ip", - "countryCode", - "country", - "continentCode", - "continent", - "eu", - "currency" - ], - "example": { - "ip": "127.0.0.1", - "countryCode": "US", - "country": "United States", - "continentCode": "NA", - "continent": "North America", - "eu": false, - "currency": "USD", - "city": "Kathmandu", - "timeZone": "Asia\/Kathmandu", - "postalCode": "44600", - "latitude": "82.345", - "longitude": "82.345", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "isp": "Google", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC" - } - }, - "localeCode": { - "description": "LocaleCode", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", - "example": "en-us" - }, - "name": { - "type": "string", - "description": "Locale name", - "example": "US" - } - }, - "required": [ - "code", - "name" - ], - "example": { - "code": "en-us", - "name": "US" - } - }, - "file": { - "description": "File", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "File ID.", - "example": "5e5ea5c16897e" - }, - "bucketId": { - "type": "string", - "description": "Bucket ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "File creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "File update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "name": { - "type": "string", - "description": "File name.", - "example": "Pink.png" - }, - "folder": { - "type": "string", - "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", - "example": "photos\/2026\/" - }, - "key": { - "type": "string", - "description": "Full virtual path of the file: the folder followed by the file name.", - "example": "photos\/2026\/Pink.png" - }, - "signature": { - "type": "string", - "description": "File MD5 signature.", - "example": "5d529fd02b544198ae075bd57c1762bb" - }, - "mimeType": { - "type": "string", - "description": "File mime type.", - "example": "image\/png" - }, - "sizeOriginal": { - "type": "integer", - "description": "File original size in bytes.", - "format": "int32", - "example": 17890 - }, - "sizeActual": { - "type": "integer", - "description": "File actual stored size in bytes after compression and\/or encryption.", - "format": "int32", - "example": 12345 - }, - "chunksTotal": { - "type": "integer", - "description": "Total number of chunks available", - "format": "int32", - "example": 17890 - }, - "chunksUploaded": { - "type": "integer", - "description": "Total number of chunks uploaded", - "format": "int32", - "example": 17890 - }, - "encryption": { - "type": "boolean", - "description": "Whether file contents are encrypted at rest.", - "example": true - }, - "compression": { - "type": "string", - "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", - "example": "gzip" - } - }, - "required": [ - "$id", - "bucketId", - "$createdAt", - "$updatedAt", - "$permissions", - "name", - "folder", - "key", - "signature", - "mimeType", - "sizeOriginal", - "sizeActual", - "chunksTotal", - "chunksUploaded", - "encryption", - "compression" - ], - "example": { - "$id": "5e5ea5c16897e", - "bucketId": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "name": "Pink.png", - "folder": "photos\/2026\/", - "key": "photos\/2026\/Pink.png", - "signature": "5d529fd02b544198ae075bd57c1762bb", - "mimeType": "image\/png", - "sizeOriginal": 17890, - "sizeActual": 12345, - "chunksTotal": 17890, - "chunksUploaded": 17890, - "encryption": true, - "compression": "gzip" - } - }, - "team": { - "description": "Team", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Team creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "total": { - "type": "integer", - "description": "Total number of team members.", - "format": "int32", - "example": 7 - }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "total", - "prefs" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "VIP", - "total": 7, - "prefs": { - "theme": "pink", - "timezone": "UTC" - } - } - }, - "membership": { - "description": "Membership", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Membership ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Membership creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Membership update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User name. Hide this attribute by toggling membership privacy in the Console.", - "example": "John Doe" - }, - "userEmail": { - "type": "string", - "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", - "example": "john@appwrite.io" - }, - "userPhone": { - "type": "string", - "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", - "example": "+1 555 555 5555" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "teamName": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "invited": { - "type": "string", - "description": "Date, the user has been invited to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "joined": { - "type": "string", - "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "confirm": { - "type": "boolean", - "description": "User confirmation status, true if the user has joined the team or false otherwise.", - "example": false - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", - "example": false - }, - "userAccessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "roles": { - "type": "array", - "description": "User list of roles", - "items": { - "type": "string" - }, - "example": [ - "owner" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "userName", - "userEmail", - "userPhone", - "teamId", - "teamName", - "invited", - "joined", - "confirm", - "mfa", - "userAccessedAt", - "roles" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "userName": "John Doe", - "userEmail": "john@appwrite.io", - "userPhone": "+1 555 555 5555", - "teamId": "5e5ea5c16897e", - "teamName": "VIP", - "invited": "2020-10-15T06:38:00.000+00:00", - "joined": "2020-10-15T06:38:00.000+00:00", - "confirm": false, - "mfa": false, - "userAccessedAt": "2020-10-15T06:38:00.000+00:00", - "roles": [ - "owner" - ] - } - }, - "execution": { - "description": "Execution", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Execution ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Execution creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Execution update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Execution roles.", - "items": { - "type": "string" - }, - "example": [ - "any" - ] - }, - "resourceId": { - "type": "string", - "description": "Function or site ID.", - "example": "5e5ea6g16897e" - }, - "resourceType": { - "description": "Execution resource type.", - "example": "functions", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - } - ] - }, - "deploymentId": { - "type": "string", - "description": "Deployment ID used to create the execution.", - "example": "5e5ea5c16897e" - }, - "trigger": { - "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", - "example": "http", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "http" - ], - "title": "http" - }, - { - "type": "string", - "enum": [ - "schedule" - ], - "title": "schedule" - }, - { - "type": "string", - "enum": [ - "event" - ], - "title": "event" - } - ] - }, - "status": { - "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", - "example": "processing", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "waiting" - ], - "title": "waiting" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "scheduled" - ], - "title": "scheduled" - } - ] - }, - "requestMethod": { - "type": "string", - "description": "HTTP request method type.", - "example": "GET" - }, - "requestPath": { - "type": "string", - "description": "HTTP request path and query.", - "example": "\/articles?id=5" - }, - "requestHeaders": { - "type": "array", - "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "responseStatusCode": { - "type": "integer", - "description": "HTTP response status code.", - "format": "int32", - "example": 200 - }, - "responseBody": { - "type": "string", - "description": "HTTP response body. This will return empty unless execution is created as synchronous.", - "example": "" - }, - "responseHeaders": { - "type": "array", - "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "logs": { - "type": "string", - "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "errors": { - "type": "string", - "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "duration": { - "type": "number", - "description": "Total time the resource(function\/site) took to respond, in seconds.", - "format": "double", - "example": 1.23 - }, - "scheduledAt": { - "type": "string", - "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "resourceId", - "resourceType", - "deploymentId", - "trigger", - "status", - "requestMethod", - "requestPath", - "requestHeaders", - "responseStatusCode", - "responseBody", - "responseHeaders", - "logs", - "errors", - "duration" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "any" - ], - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", - "deploymentId": "5e5ea5c16897e", - "trigger": "http", - "status": "processing", - "requestMethod": "GET", - "requestPath": "\/articles?id=5", - "requestHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "responseStatusCode": 200, - "responseBody": "", - "responseHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "logs": "", - "errors": "", - "duration": 1.23, - "scheduledAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "country": { - "description": "Country", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "code": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "United States", - "code": "US" - } - }, - "continent": { - "description": "Continent", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Continent name.", - "example": "Europe" - }, - "code": { - "type": "string", - "description": "Continent two letter code.", - "example": "EU" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "Europe", - "code": "EU" - } - }, - "language": { - "description": "Language", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Language name.", - "example": "Italian" - }, - "code": { - "type": "string", - "description": "Language two-character ISO 639-1 codes.", - "example": "it" - }, - "nativeName": { - "type": "string", - "description": "Language native name.", - "example": "Italiano" - } - }, - "required": [ - "name", - "code", - "nativeName" - ], - "example": { - "name": "Italian", - "code": "it", - "nativeName": "Italiano" - } - }, - "currency": { - "description": "Currency", - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "Currency symbol.", - "example": "$" - }, - "name": { - "type": "string", - "description": "Currency name.", - "example": "US dollar" - }, - "symbolNative": { - "type": "string", - "description": "Currency native symbol.", - "example": "$" - }, - "decimalDigits": { - "type": "integer", - "description": "Number of decimal digits.", - "format": "int32", - "example": 2 - }, - "rounding": { - "type": "number", - "description": "Currency digit rounding.", - "format": "double", - "example": 0 - }, - "code": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", - "example": "USD" - }, - "namePlural": { - "type": "string", - "description": "Currency plural name", - "example": "US dollars" - } - }, - "required": [ - "symbol", - "name", - "symbolNative", - "decimalDigits", - "rounding", - "code", - "namePlural" - ], - "example": { - "symbol": "$", - "name": "US dollar", - "symbolNative": "$", - "decimalDigits": 2, - "rounding": 0, - "code": "USD", - "namePlural": "US dollars" - } - }, - "phone": { - "description": "Phone", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Phone code.", - "example": "+1" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - } - }, - "required": [ - "code", - "countryCode", - "countryName" - ], - "example": { - "code": "+1", - "countryCode": "US", - "countryName": "United States" - } - }, - "headers": { - "description": "Headers", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Header name.", - "example": "Content-Type" - }, - "value": { - "type": "string", - "description": "Header value.", - "example": "application\/json" - } - }, - "required": [ - "name", - "value" - ], - "example": { - "name": "Content-Type", - "value": "application\/json" - } - }, - "mfaChallenge": { - "description": "MFA Challenge", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "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": "Recovery codes.", - "items": { - "type": "string" - }, - "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.", - "example": "[SHARED_SECRET]" - }, - "uri": { - "type": "string", - "description": "URI for authenticator apps.", - "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.", - "example": true - }, - "phone": { - "type": "boolean", - "description": "Can phone (SMS) be used for MFA challenge for this account.", - "example": true - }, - "email": { - "type": "boolean", - "description": "Can email be used for MFA challenge for this account.", - "example": true - }, - "recoveryCode": { - "type": "boolean", - "description": "Can recovery code be used for MFA challenge for this account.", - "example": true - }, - "custom": { - "type": "boolean", - "description": "Can custom factor be used for MFA challenge for this account.", - "example": true - } - }, - "required": [ - "totp", - "phone", - "email", - "recoveryCode", - "custom" - ], - "example": { - "totp": true, - "phone": true, - "email": true, - "recoveryCode": true, - "custom": true - } - }, - "transaction": { - "description": "Transaction", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Transaction ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Transaction creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Transaction update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "string", - "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", - "example": "pending" - }, - "operations": { - "type": "integer", - "description": "Number of operations in the transaction.", - "format": "int32", - "example": 5 - }, - "expiresAt": { - "type": "string", - "description": "Expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "status", - "operations", - "expiresAt" - ], - "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" - } - }, - "subscriber": { - "description": "Subscriber", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Subscriber ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Subscriber creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Subscriber update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "targetId": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "target": { - "type": "object", - "description": "Target.", - "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" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/target" - } - ] - }, - "userId": { - "type": "string", - "description": "Topic ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User Name.", - "example": "Aegon Targaryen" - }, - "topicId": { - "type": "string", - "description": "Topic ID.", - "example": "259125845563242502" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "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" - }, - "userId": "5e5ea5c16897e", - "userName": "Aegon Targaryen", - "topicId": "259125845563242502", - "providerType": "email" - } - }, - "target": { - "description": "Target", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Target creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Target update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Target Name.", - "example": "Apple iPhone 12" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "259125845563242502" - }, - "providerId": { - "type": "string", - "description": "Provider ID.", - "example": "259125845563242502", - "nullable": true - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "example": "email" - }, - "identifier": { - "type": "string", - "description": "The target identifier.", - "example": "token" - }, - "expired": { - "type": "boolean", - "description": "Is the target expired.", - "example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "userId", - "providerType", - "identifier", - "expired" - ], - "example": { - "$id": "259125845563242502", - "$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 - } - }, - "app": { - "description": "App", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Application name.", - "example": "My Application" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "example": "Connect your workspace to My Application." - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com" - }, - "logoUri": { - "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/logo.png" - }, - "privacyPolicyUrl": { - "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/privacy" - }, - "termsUrl": { - "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/terms" - }, - "contacts": { - "type": "array", - "description": "Application support or security contact emails.", - "items": { - "type": "string" - }, - "example": [ - "support@example.com" - ] - }, - "tagline": { - "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "example": "Automate your workspace." - }, - "tags": { - "type": "array", - "description": "Application tags shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "productivity", - "automation" - ] - }, - "labels": { - "type": "array", - "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", - "items": { - "type": "string" - }, - "example": [ - "featured" - ] - }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/screenshot.png" - ] - }, - "supportUrl": { - "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/support" - }, - "dataDeletionUrl": { - "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/data-deletion" - }, - "redirectUris": { - "type": "array", - "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/callback" - ] - }, - "postLogoutRedirectUris": { - "type": "array", - "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/logged-out" - ] - }, - "enabled": { - "type": "boolean", - "description": "Whether the app is enabled or not.", - "example": true - }, - "type": { - "type": "string", - "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", - "example": "confidential" - }, - "deviceFlow": { - "type": "boolean", - "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", - "example": false - }, - "teamId": { - "type": "string", - "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", - "example": "5e5ea5c16897e" - }, - "installationScopes": { - "type": "array", - "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "installationRedirectUrl": { - "type": "string", - "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", - "example": "https:\/\/example.com\/setup" - }, - "secrets": { - "type": "array", - "description": "List of application secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "clientUri", - "logoUri", - "privacyPolicyUrl", - "termsUrl", - "contacts", - "tagline", - "tags", - "labels", - "images", - "supportUrl", - "dataDeletionUrl", - "redirectUris", - "postLogoutRedirectUris", - "enabled", - "type", - "deviceFlow", - "teamId", - "userId", - "installationScopes", - "installationRedirectUrl", - "secrets" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Application", - "description": "Connect your workspace to My Application.", - "clientUri": "https:\/\/example.com", - "logoUri": "https:\/\/example.com\/logo.png", - "privacyPolicyUrl": "https:\/\/example.com\/privacy", - "termsUrl": "https:\/\/example.com\/terms", - "contacts": [ - "support@example.com" - ], - "tagline": "Automate your workspace.", - "tags": [ - "productivity", - "automation" - ], - "labels": [ - "featured" - ], - "images": [ - "https:\/\/example.com\/screenshot.png" - ], - "supportUrl": "https:\/\/example.com\/support", - "dataDeletionUrl": "https:\/\/example.com\/data-deletion", - "redirectUris": [ - "https:\/\/example.com\/callback" - ], - "postLogoutRedirectUris": [ - "https:\/\/example.com\/logged-out" - ], - "enabled": true, - "type": "confidential", - "deviceFlow": false, - "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "installationScopes": [ - "organization:organization.read" - ], - "installationRedirectUrl": "https:\/\/example.com\/setup", - "secrets": [] - } - }, - "appSecret": { - "description": "AppSecret", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", - "example": "" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appSecretPlaintext": { - "description": "AppSecretPlaintext", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appScope": { - "description": "AppScope", - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Scope value as requested by apps.", - "example": "organization:organization.read" - }, - "description": { - "type": "string", - "description": "Human-readable description of what the scope grants.", - "example": "Access to read the organization" - }, - "type": { - "type": "string", - "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", - "example": "organization" - }, - "category": { - "type": "string", - "description": "Scope category, used to group scopes on consent and installation screens.", - "example": "Organization" - }, - "deprecated": { - "type": "boolean", - "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", - "example": false - } - }, - "required": [ - "value", - "description", - "type", - "category", - "deprecated" - ], - "example": { - "value": "organization:organization.read", - "description": "Access to read the organization", - "type": "organization", - "category": "Organization", - "deprecated": false - } - }, - "appInstallation": { - "description": "AppInstallation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Installation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Installation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Installation update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the installed application.", - "example": "5e5ea5c16897e" - }, - "teamId": { - "type": "string", - "description": "ID of the team the application is installed on.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "authorizationDetails": { - "type": "array", - "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", - "items": { - "type": "object" - }, - "example": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ] - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the installation.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the installation.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "teamId", - "scopes", - "authorizationDetails", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "teamId": "5e5ea5c16897e", - "scopes": [ - "organization:organization.read" - ], - "authorizationDetails": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ], - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appKey": { - "description": "AppKey", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App key creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App key update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this app key belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "App key secret.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the app key secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the app key.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the app key.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2Authorize": { - "description": "OAuth2 Authorize", - "type": "object", - "properties": { - "grantId": { - "type": "string", - "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", - "example": "5e5ea5c16897e" - }, - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "grantId", - "redirectUrl" - ], - "example": { - "grantId": "5e5ea5c16897e", - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Approve": { - "description": "OAuth2 Approve", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Reject": { - "description": "OAuth2 Reject", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", - "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "oauth2Grant": { - "description": "OAuth2 Grant", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Grant ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Grant creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Grant update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the grant belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the OAuth2 client (app) the grant was requested for.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Requested OAuth2 scopes the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "prompt": { - "type": "string", - "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", - "example": "login" - }, - "redirectUri": { - "type": "string", - "description": "Redirect URI the user will be sent to after the flow completes.", - "example": "https:\/\/example.com\/callback" - }, - "authTime": { - "type": "integer", - "description": "Unix timestamp of when the user last authenticated.", - "format": "int32", - "example": 1592981250 - }, - "expire": { - "type": "string", - "description": "Grant expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "scopes", - "resources", - "authorizationDetails", - "prompt", - "redirectUri", - "authTime", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "prompt": "login", - "redirectUri": "https:\/\/example.com\/callback", - "authTime": 1592981250, - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2DeviceAuthorization": { - "description": "OAuth2 Device Authorization", - "type": "object", - "properties": { - "device_code": { - "type": "string", - "description": "Device verification code used by the client to poll the token endpoint.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "user_code": { - "type": "string", - "description": "Short code the end user enters on the verification page.", - "example": "ABCD-EFGH" - }, - "verification_uri": { - "type": "string", - "description": "URL where the end user enters the user code.", - "example": "https:\/\/appwrite.io\/oauth2\/device" - }, - "verification_uri_complete": { - "type": "string", - "description": "Verification URL with the user code prefilled as a query parameter.", - "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the device code and user code in seconds.", - "format": "int32", - "example": 900 - }, - "interval": { - "type": "integer", - "description": "Minimum polling interval for the token endpoint in seconds.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "device_code", - "user_code", - "verification_uri", - "verification_uri_complete", - "expires_in", - "interval" - ], - "example": { - "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", - "expires_in": 900, - "interval": 5 - } - }, - "oauth2PAR": { - "description": "OAuth2 PAR", - "type": "object", - "properties": { - "request_uri": { - "type": "string", - "description": "Authorization request handle to pass to the authorize endpoint.", - "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the authorization request handle in seconds.", - "format": "int32", - "example": 600 - } - }, - "required": [ - "request_uri", - "expires_in" - ], - "example": { - "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", - "expires_in": 600 - } - }, - "oauth2Token": { - "description": "OAuth2 Token", - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "OAuth2 access token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "example": "Bearer" - }, - "expires_in": { - "type": "integer", - "description": "Access token lifetime in seconds.", - "format": "int32", - "example": 3600 - }, - "refresh_token": { - "type": "string", - "description": "OAuth2 refresh token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the access token.", - "example": "openid email profile" - }, - "authorization_details": { - "type": "string", - "description": "Granted RFC 9396 authorization details as a JSON string.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "nullable": true - }, - "id_token": { - "type": "string", - "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "nullable": true - } - }, - "required": [ - "access_token", - "token_type", - "expires_in", - "refresh_token", - "scope" - ], - "example": { - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "token_type": "Bearer", - "expires_in": 3600, - "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", - "scope": "openid email profile", - "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - } - }, - "oauth2Consent": { - "description": "OAuth2 Consent", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Consent ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Consent creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Consent update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the consent belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2ConsentToken": { - "description": "OAuth2 Consent Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token family ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "consentId": { - "type": "string", - "description": "ID of the consent the token family was issued under.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of the user the token family belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Expiration time of the current access token of this family in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "consentId", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "consentId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2Project": { - "description": "OAuth2 Project", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "region": { - "type": "string", - "description": "Region ID the project is deployed in.", - "example": "fra" - }, - "endpoint": { - "type": "string", - "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", - "example": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "required": [ - "$id", - "region", - "endpoint" - ], - "example": { - "$id": "5e5ea5c16897e", - "region": "fra", - "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "oauth2Organization": { - "description": "OAuth2 Organization", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Organization ID.", - "example": "5e5ea5c16897e" - } - }, - "required": [ - "$id" - ], - "example": { - "$id": "5e5ea5c16897e" - } - }, - "oauth2ProjectList": { - "description": "OAuth2 accessible projects list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of projects that matched your query.", - "format": "int32", - "example": 5 - }, - "projects": { - "type": "array", - "description": "List of projects.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Project" - }, - "example": [] - } - }, - "required": [ - "total", - "projects" - ], - "example": { - "total": 5, - "projects": "" - } - }, - "oauth2OrganizationList": { - "description": "OAuth2 accessible organizations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of organizations that matched your query.", - "format": "int32", - "example": 5 - }, - "organizations": { - "type": "array", - "description": "List of organizations.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Organization" - }, - "example": [] - } - }, - "required": [ - "total", - "organizations" - ], - "example": { - "total": 5, - "organizations": "" - } - }, - "oauth2ConsentList": { - "description": "OAuth2 consents list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of consents that matched your query.", - "format": "int32", - "example": 5 - }, - "consents": { - "type": "array", - "description": "List of consents.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Consent" - }, - "example": [] - } - }, - "required": [ - "total", - "consents" - ], - "example": { - "total": 5, - "consents": "" - } - }, - "oauth2ConsentTokenList": { - "description": "OAuth2 consent tokens list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "format": "int32", - "example": 5 - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - }, - "example": [] - } - }, - "required": [ - "total", - "tokens" - ], - "example": { - "total": 5, - "tokens": "" - } - }, - "appsList": { - "description": "Apps list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of apps that matched your query.", - "format": "int32", - "example": 5 - }, - "apps": { - "type": "array", - "description": "List of apps.", - "items": { - "$ref": "#\/components\/schemas\/app" - }, - "example": [] - } - }, - "required": [ - "total", - "apps" - ], - "example": { - "total": 5, - "apps": "" - } - }, - "appSecretList": { - "description": "App secrets list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of secrets that matched your query.", - "format": "int32", - "example": 5 - }, - "secrets": { - "type": "array", - "description": "List of secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "total", - "secrets" - ], - "example": { - "total": 5, - "secrets": "" - } - }, - "appScopeList": { - "description": "App scopes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of scopes that matched your query.", - "format": "int32", - "example": 5 - }, - "scopes": { - "type": "array", - "description": "List of scopes.", - "items": { - "$ref": "#\/components\/schemas\/appScope" - }, - "example": [] - } - }, - "required": [ - "total", - "scopes" - ], - "example": { - "total": 5, - "scopes": "" - } - }, - "appInstallationList": { - "description": "App installations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of installations that matched your query.", - "format": "int32", - "example": 5 - }, - "installations": { - "type": "array", - "description": "List of installations.", - "items": { - "$ref": "#\/components\/schemas\/appInstallation" - }, - "example": [] - } - }, - "required": [ - "total", - "installations" - ], - "example": { - "total": 5, - "installations": "" - } - }, - "appKeyList": { - "description": "App keys list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of keys that matched your query.", - "format": "int32", - "example": 5 - }, - "keys": { - "type": "array", - "description": "List of keys.", - "items": { - "$ref": "#\/components\/schemas\/appKey" - }, - "example": [] - } - }, - "required": [ - "total", - "keys" - ], - "example": { - "total": 5, - "keys": "" - } - } - }, - "securitySchemes": { - "Project": { - "type": "apiKey", - "name": "X-Appwrite-Project", - "description": "Your project ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ], - "demo": "<YOUR_PROJECT_ID>" - } - }, - "JWT": { - "type": "apiKey", - "name": "X-Appwrite-JWT", - "description": "Your secret JSON Web Token", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ], - "demo": "<YOUR_JWT>" - } - }, - "Bearer": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with", - "x-appwrite": { - "platforms": [ - "client" - ] - } - }, - "Locale": { - "type": "apiKey", - "name": "X-Appwrite-Locale", - "description": "", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ], - "demo": "en" - } - }, - "Session": { - "type": "apiKey", - "name": "X-Appwrite-Session", - "description": "The user session to authenticate with", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ] - } - }, - "Cookie": { - "type": "apiKey", - "name": "Cookie", - "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ] - } - }, - "ImpersonateUserId": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Id", - "description": "Impersonate a user by ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ] - } - }, - "ImpersonateUserEmail": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Email", - "description": "Impersonate a user by email", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ] - } - }, - "ImpersonateUserPhone": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Phone", - "description": "Impersonate a user by phone", - "in": "header", - "x-appwrite": { - "platforms": [ - "client" - ] - } - } - } - }, - "externalDocs": { - "description": "Full API docs, specs and tutorials", - "url": "https:\/\/appwrite.io\/docs" - } -} \ No newline at end of file diff --git a/specs/2.3.x/open-api3-2.3.x-console.json b/specs/2.3.x/open-api3-2.3.x-console.json deleted file mode 100644 index 8e8268b2a..000000000 --- a/specs/2.3.x/open-api3-2.3.x-console.json +++ /dev/null @@ -1,149070 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "version": "2.3.0", - "title": "Appwrite", - "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", - "termsOfService": "https:\/\/appwrite.io\/policy\/terms", - "contact": { - "name": "Appwrite Team", - "url": "https:\/\/appwrite.io\/support", - "email": "team@appwrite.io" - }, - "license": { - "name": "BSD-3-Clause", - "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" - } - }, - "servers": [ - { - "url": "https:\/\/cloud.appwrite.io\/v1", - "description": "Appwrite Cloud endpoint." - }, - { - "url": "https:\/\/{region}.cloud.appwrite.io\/v1", - "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", - "variables": { - "region": { - "default": "fra", - "description": "Appwrite Cloud region." - } - } - } - ], - "paths": { - "\/account": { - "get": { - "summary": "Get account", - "operationId": "accountGet", - "tags": [ - "account" - ], - "description": "Get the currently logged in user.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create account", - "operationId": "accountCreate", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/create.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete account", - "operationId": "accountDelete", - "tags": [ - "account" - ], - "description": "Delete the currently logged in user.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ] - } - }, - "\/account\/billing-addresses": { - "get": { - "summary": "List billing addresses", - "operationId": "accountListBillingAddresses", - "tags": [ - "account" - ], - "description": "List all billing addresses for a user.", - "responses": { - "200": { - "description": "Billing address list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingAddressList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/list-billing-addresses.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create billing address", - "operationId": "accountCreateBillingAddress", - "tags": [ - "account" - ], - "description": "Add a new billing address to a user's account.", - "responses": { - "201": { - "description": "Address", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingAddress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/create-billing-address.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "country": { - "description": "Country", - "type": "string", - "example": "<COUNTRY>" - }, - "city": { - "description": "City", - "type": "string", - "example": "<CITY>" - }, - "streetAddress": { - "description": "Street address", - "type": "string", - "example": "<STREET_ADDRESS>" - }, - "addressLine2": { - "description": "Address line 2", - "type": "string", - "default": "", - "example": "<ADDRESS_LINE2>", - "nullable": true - }, - "state": { - "description": "State or province", - "type": "string", - "default": "", - "example": "<STATE>", - "nullable": true - }, - "postalCode": { - "description": "Postal code", - "type": "string", - "default": "", - "example": "<POSTAL_CODE>", - "nullable": true - } - }, - "required": [ - "country", - "city", - "streetAddress" - ] - } - } - } - } - } - }, - "\/account\/billing-addresses\/{billingAddressId}": { - "get": { - "summary": "Get billing address", - "operationId": "accountGetBillingAddress", - "tags": [ - "account" - ], - "description": "Get a specific billing address for a user using it's ID.", - "responses": { - "200": { - "description": "Address", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingAddress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/get-billing-address.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, - "schema": { - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update billing address", - "operationId": "accountUpdateBillingAddress", - "tags": [ - "account" - ], - "description": "Update a specific billing address using it's ID.", - "responses": { - "200": { - "description": "Address", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingAddress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/update-billing-address.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, - "schema": { - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "country": { - "description": "Country", - "type": "string", - "example": "<COUNTRY>" - }, - "city": { - "description": "City", - "type": "string", - "example": "<CITY>" - }, - "streetAddress": { - "description": "Street address", - "type": "string", - "example": "<STREET_ADDRESS>" - }, - "addressLine2": { - "description": "Address line 2", - "type": "string", - "default": "", - "example": "<ADDRESS_LINE2>", - "nullable": true - }, - "state": { - "description": "State or province", - "type": "string", - "default": "", - "example": "<STATE>", - "nullable": true - }, - "postalCode": { - "description": "Postal code", - "type": "string", - "default": "", - "example": "<POSTAL_CODE>", - "nullable": true - } - }, - "required": [ - "country", - "city", - "streetAddress" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete billing address", - "operationId": "accountDeleteBillingAddress", - "tags": [ - "account" - ], - "description": "Delete a specific billing address using it's ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/delete-billing-address.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "billingAddressId", - "description": "Billing address unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/consents": { - "get": { - "summary": "List consents", - "operationId": "accountListConsents", - "tags": [ - "account" - ], - "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", - "responses": { - "200": { - "description": "OAuth2 consents list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}": { - "get": { - "summary": "Get consent", - "operationId": "accountGetConsent", - "tags": [ - "account" - ], - "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", - "responses": { - "200": { - "description": "OAuth2 Consent", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Consent" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent", - "operationId": "accountDeleteConsent", - "tags": [ - "account" - ], - "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens": { - "get": { - "summary": "List consent tokens", - "operationId": "accountListConsentTokens", - "tags": [ - "account" - ], - "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 consent tokens list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consent-tokens.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { - "get": { - "summary": "Get consent token", - "operationId": "accountGetConsentToken", - "tags": [ - "account" - ], - "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 Consent Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent token", - "operationId": "accountDeleteConsentToken", - "tags": [ - "account" - ], - "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/coupons\/{couponId}": { - "get": { - "summary": "Get coupon details", - "operationId": "accountGetCoupon", - "tags": [ - "account" - ], - "description": "Get coupon details for an account.", - "responses": { - "200": { - "description": "Coupon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/coupon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/get-coupon.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "couponId", - "description": "ID of the coupon", - "required": true, - "schema": { - "type": "string", - "example": "<COUPON_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/email": { - "patch": { - "summary": "Update email", - "operationId": "accountUpdateEmail", - "tags": [ - "account" - ], - "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/identities": { - "get": { - "summary": "List identities", - "operationId": "accountListIdentities", - "tags": [ - "account" - ], - "description": "Get the list of identities for the currently logged in user.", - "responses": { - "200": { - "description": "Identities List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/identityList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "accountDeleteIdentity", - "tags": [ - "account" - ], - "description": "Delete an identity by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/delete-identity.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "identityId", - "description": "Identity ID.", - "required": true, - "schema": { - "type": "string", - "example": "<IDENTITY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/invoices": { - "get": { - "summary": "List invoices", - "operationId": "accountListInvoices", - "tags": [ - "account" - ], - "description": "List all invoices tied to an account.", - "responses": { - "200": { - "description": "Billing invoices list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoiceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/list-invoices.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/jwts": { - "post": { - "summary": "Create JWT", - "operationId": "accountCreateJWT", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", - "responses": { - "201": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-jwt.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "type": "integer", - "default": 900, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/account\/keys": { - "get": { - "summary": "List account key", - "operationId": "accountListKeys", - "tags": [ - "account" - ], - "description": "Get a list of all API keys from the current account.", - "responses": { - "200": { - "description": "API Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/keyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "account\/list-keys.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create account key", - "operationId": "accountCreateKey", - "tags": [ - "account" - ], - "description": "Create a new account API key.", - "responses": { - "201": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "account\/create-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "AccountKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - } - }, - "\/account\/keys\/{keyId}": { - "get": { - "summary": "Get account key", - "operationId": "accountGetKey", - "tags": [ - "account" - ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your account including it's scopes.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "account\/get-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update account key", - "operationId": "accountUpdateKey", - "tags": [ - "account" - ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "account\/update-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "AccountKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete account key", - "operationId": "accountDeleteKey", - "tags": [ - "account" - ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "account\/delete-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "accountUpdateMFA", - "tags": [ - "account" - ], - "description": "Enable or disable MFA on an account.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "description": "Enable or disable MFA.", - "type": "boolean", - "example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } - } - }, - "\/account\/mfa\/authenticators\/{type}": { - "post": { - "summary": "Create authenticator", - "operationId": "accountCreateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "responses": { - "200": { - "description": "MFAType", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaType" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - }, - "methods": [ - { - "name": "createMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - } - }, - { - "name": "createMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator. Must be `totp`", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update authenticator (confirmation)", - "operationId": "accountUpdateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - }, - "methods": [ - { - "name": "updateMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - } - }, - { - "name": "updateMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "otp" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete authenticator", - "operationId": "accountDeleteMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Delete an authenticator for a user by ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/account\/mfa\/challenges": { - "post": { - "summary": "Create MFA challenge", - "operationId": "accountCreateMfaChallenge", - "tags": [ - "account" - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Challenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaChallenge" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - }, - "methods": [ - { - "name": "createMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - } - }, - { - "name": "createMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "factor": { - "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", - "type": "string", - "example": "email", - "title": "AuthenticationFactor", - "oneOf": [ - { - "type": "string", - "enum": [ - "email" - ], - "title": "email" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - }, - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - }, - { - "type": "string", - "enum": [ - "recoverycode" - ], - "title": "recoverycode" - }, - { - "type": "string", - "enum": [ - "custom" - ], - "title": "custom" - } - ] - } - }, - "required": [ - "factor" - ] - } - } - } - } - }, - "put": { - "summary": "Update MFA challenge (confirmation)", - "operationId": "accountUpdateMfaChallenge", - "tags": [ - "account" - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},challengeId:{param-challengeId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - }, - "methods": [ - { - "name": "updateMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - } - }, - { - "name": "updateMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "challengeId": { - "description": "ID of the challenge.", - "type": "string", - "example": "<CHALLENGE_ID>" - }, - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "challengeId", - "otp" - ] - } - } - } - } - } - }, - "\/account\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "accountListMfaFactors", - "tags": [ - "account" - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "responses": { - "200": { - "description": "MFAFactors", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/mfa\/recovery-codes": { - "get": { - "summary": "List MFA recovery codes", - "operationId": "accountGetMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/get-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create MFA recovery codes", - "operationId": "accountCreateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "accountUpdateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/name": { - "patch": { - "summary": "Update name", - "operationId": "accountUpdateName", - "tags": [ - "account" - ], - "description": "Update currently logged in user account name.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/account\/password": { - "patch": { - "summary": "Update password", - "operationId": "accountUpdatePassword", - "tags": [ - "account" - ], - "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-password.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "description": "New user password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "oldPassword": { - "description": "Current user password. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/account\/payment-methods": { - "get": { - "summary": "List payment methods", - "operationId": "accountListPaymentMethods", - "tags": [ - "account" - ], - "description": "List payment methods for this account.", - "responses": { - "200": { - "description": "Payment methods list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethodList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/list-payment-methods.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create new payment method", - "operationId": "accountCreatePaymentMethod", - "tags": [ - "account" - ], - "description": "Create a new payment method for the current user account.", - "responses": { - "201": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/create-payment-method.md", - "rate-limit": 10, - "rate-time": 86400, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ] - } - }, - "\/account\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "accountGetPaymentMethod", - "tags": [ - "account" - ], - "description": "Get a specific payment method for the user.", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/get-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update payment method", - "operationId": "accountUpdatePaymentMethod", - "tags": [ - "account" - ], - "description": "Update a new payment method for the current user account.", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/update-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expiryMonth": { - "description": "Payment expiry month", - "type": "integer", - "example": 1, - "format": "int32" - }, - "expiryYear": { - "description": "Expiry year", - "type": "integer", - "example": 2026, - "format": "int32" - }, - "state": { - "description": "State of the payment method country", - "type": "string", - "example": "<STATE>" - } - }, - "required": [ - "expiryMonth", - "expiryYear" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete payment method", - "operationId": "accountDeletePaymentMethod", - "tags": [ - "account" - ], - "description": "Delete a specific payment method from a user's account.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/delete-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/payment-methods\/{paymentMethodId}\/provider": { - "patch": { - "summary": "Update payment method provider id", - "operationId": "accountUpdatePaymentMethodProvider", - "tags": [ - "account" - ], - "description": "Update payment method provider.", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/update-payment-method-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerMethodId": { - "description": "Payment method ID from the payment provider", - "type": "string", - "example": "<PROVIDER_METHOD_ID>" - }, - "name": { - "description": "Name in the payment method", - "type": "string", - "example": "<NAME>" - }, - "state": { - "description": "State of the payment method country", - "type": "string", - "example": "<STATE>", - "nullable": true - } - }, - "required": [ - "providerMethodId", - "name" - ] - } - } - } - } - } - }, - "\/account\/payment-methods\/{paymentMethodId}\/setup": { - "patch": { - "summary": "Update payment method with new setup with mandates for indian cards", - "operationId": "accountUpdatePaymentMethodMandateOptions", - "tags": [ - "account" - ], - "description": "Update payment method mandate options.", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "account\/update-payment-method-mandate-options.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "accountUpdatePhone", - "tags": [ - "account" - ], - "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "phone", - "password" - ] - } - } - } - } - } - }, - "\/account\/prefs": { - "get": { - "summary": "Get account preferences", - "operationId": "accountGetPrefs", - "tags": [ - "account" - ], - "description": "Get the preferences as a key-value object for the currently logged in user.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update preferences", - "operationId": "accountUpdatePrefs", - "tags": [ - "account" - ], - "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/account\/recovery": { - "post": { - "summary": "Create password recovery", - "operationId": "accountCreateRecovery", - "tags": [ - "account" - ], - "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "email", - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (confirmation)", - "operationId": "accountUpdateRecovery", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid reset token.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/recovery\/otp": { - "post": { - "summary": "Create password recovery (OTP)", - "operationId": "accountCreateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "email" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (OTP)", - "operationId": "accountUpdateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid recovery OTP code.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions": { - "get": { - "summary": "List sessions", - "operationId": "accountListSessions", - "tags": [ - "account" - ], - "description": "Get the list of active sessions across different devices for the currently logged in user.", - "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "delete": { - "summary": "Delete sessions", - "operationId": "accountDeleteSessions", - "tags": [ - "account" - ], - "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-sessions.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "current", - "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/sessions\/anonymous": { - "post": { - "summary": "Create anonymous session", - "operationId": "accountCreateAnonymousSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-anonymous-session.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/sessions\/email": { - "post": { - "summary": "Create email password session", - "operationId": "accountCreateEmailPasswordSession", - "tags": [ - "account" - ], - "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-email-password-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "duration": { - "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions\/id-token": { - "post": { - "summary": "Create ID token session", - "operationId": "accountCreateIdTokenSession", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-id-token-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", - "type": "string", - "example": "apple", - "title": "IdTokenProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - } - ] - }, - "idToken": { - "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", - "type": "string", - "example": "<ID_TOKEN>" - }, - "nonce": { - "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "accessToken": { - "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", - "type": "string", - "default": "", - "example": "<ACCESS_TOKEN>" - }, - "accessTokenExpiry": { - "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "name": { - "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "provider", - "idToken" - ] - } - } - } - } - } - }, - "\/account\/sessions\/magic-url": { - "put": { - "summary": "Update magic URL session", - "operationId": "accountUpdateMagicURLSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-magic-url-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/oauth2\/{provider}": { - "get": { - "summary": "Create OAuth2 session", - "operationId": "accountCreateOAuth2Session", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "301": { - "description": "No content", - "content": { - "text\/html": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-o-auth-2-session.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "OAuthProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - }, - { - "name": "success", - "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "failure", - "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "scopes", - "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/sessions\/phone": { - "put": { - "summary": "Update phone session", - "operationId": "accountUpdatePhoneSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-phone-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/token": { - "post": { - "summary": "Create session", - "operationId": "accountCreateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/{sessionId}": { - "get": { - "summary": "Get session", - "operationId": "accountGetSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/get-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to get the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update session", - "operationId": "accountUpdateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to update the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete session", - "operationId": "accountDeleteSession", - "tags": [ - "account" - ], - "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-session.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to delete the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - } - }, - "\/account\/status": { - "patch": { - "summary": "Update status", - "operationId": "accountUpdateStatus", - "tags": [ - "account" - ], - "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/targets\/push": { - "post": { - "summary": "Create push target", - "operationId": "accountCreatePushTarget", - "tags": [ - "account" - ], - "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", - "responses": { - "201": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/create-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetId": { - "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TARGET_ID>" - }, - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - } - }, - "required": [ - "targetId", - "identifier" - ] - } - } - } - } - } - }, - "\/account\/targets\/{targetId}\/push": { - "put": { - "summary": "Update push target", - "operationId": "accountUpdatePushTarget", - "tags": [ - "account" - ], - "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", - "responses": { - "200": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/update-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - } - }, - "required": [ - "identifier" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete push target", - "operationId": "accountDeletePushTarget", - "tags": [ - "account" - ], - "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pushTargets", - "demo": "account\/delete-push-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/tokens\/email": { - "post": { - "summary": "Create email token (OTP)", - "operationId": "accountCreateEmailToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-email-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/magic-url": { - "post": { - "summary": "Create magic URL token", - "operationId": "accountCreateMagicURLToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-magic-url-token.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/oauth2\/{provider}": { - "get": { - "summary": "Create OAuth2 token", - "operationId": "accountCreateOAuth2Token", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "301": { - "description": "No content", - "content": { - "text\/html": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-o-auth-2-token.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "OAuthProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - }, - { - "name": "success", - "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "failure", - "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "scopes", - "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/tokens\/phone": { - "post": { - "summary": "Create phone token", - "operationId": "accountCreatePhoneToken", - "tags": [ - "account" - ], - "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-phone-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},phone:{param-phone}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "userId", - "phone" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email": { - "post": { - "summary": "Create email verification", - "operationId": "accountCreateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-email-verification.md", - "public": true - }, - { - "name": "createVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createEmailVerification" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "url": { - "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update email verification (confirmation)", - "operationId": "accountUpdateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "updateEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-email-verification.md", - "public": true - }, - { - "name": "updateVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateEmailVerification" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email\/otp": { - "post": { - "summary": "Create email verification (OTP)", - "operationId": "accountCreateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "put": { - "summary": "Update email verification (OTP)", - "operationId": "accountUpdateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification OTP code.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/phone": { - "post": { - "summary": "Create phone verification", - "operationId": "accountCreatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},userId:{userId}", - "url:{url},ip:{ip}" - ], - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "put": { - "summary": "Update phone verification (confirmation)", - "operationId": "accountUpdatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/activities\/events": { - "get": { - "summary": "List events", - "operationId": "activitiesListEvents", - "tags": [ - "activities" - ], - "description": "List all events for selected filters.", - "responses": { - "200": { - "description": "Activity event list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/activityEventList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "activities\/list-events.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "events.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/activities\/events\/{eventId}": { - "get": { - "summary": "Get event", - "operationId": "activitiesGetEvent", - "tags": [ - "activities" - ], - "description": "Get event by ID.\n", - "responses": { - "200": { - "description": "ActivityEvent", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/activityEvent" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "activities\/get-event.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "events.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "eventId", - "description": "Event ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EVENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/affiliates\/links": { - "get": { - "summary": "List affiliate links", - "operationId": "affiliatesListLinks", - "tags": [ - "affiliates" - ], - "description": "List affiliate links for the current account.\n", - "responses": { - "200": { - "description": "Affiliate links list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateLinkList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "links", - "demo": "affiliates\/list-links.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, status", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create affiliate link", - "operationId": "affiliatesCreateLink", - "tags": [ - "affiliates" - ], - "description": "Create a shareable affiliate link for the current account. Every console user is automatically in the affiliates program.\n", - "responses": { - "201": { - "description": "AffiliateLink", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateLink" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "links", - "demo": "affiliates\/create-link.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "linkId": { - "description": "Link ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. This ID is the shareable referral code.", - "type": "string", - "example": "<LINK_ID>" - }, - "name": { - "description": "Link name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "linkId" - ] - } - } - } - } - } - }, - "\/affiliates\/links\/{linkId}": { - "get": { - "summary": "Get affiliate link", - "operationId": "affiliatesGetLink", - "tags": [ - "affiliates" - ], - "description": "Get a single affiliate link owned by the current account.\n", - "responses": { - "200": { - "description": "AffiliateLink", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateLink" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "links", - "demo": "affiliates\/get-link.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "linkId", - "description": "Link ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LINK_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete affiliate link", - "operationId": "affiliatesDeleteLink", - "tags": [ - "affiliates" - ], - "description": "Delete an affiliate link owned by the current account. Existing referrals and rewards keep their stored link IDs for history.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "links", - "demo": "affiliates\/delete-link.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "linkId", - "description": "Link ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LINK_ID>" - }, - "in": "path" - } - ] - } - }, - "\/affiliates\/referrals": { - "get": { - "summary": "List affiliate referrals", - "operationId": "affiliatesListReferrals", - "tags": [ - "affiliates" - ], - "description": "List referrals attributed to the current account's affiliate links. Responses include privacy-safe metadata only (truncated user ID and signup country), never email or name. Referrals are created automatically on signup when the invite cookie is present.\n", - "responses": { - "200": { - "description": "Affiliate referrals list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateReferralList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "referrals", - "demo": "affiliates\/list-referrals.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referredUserMaskedId, referredUserCountry, status, attributedAt, expiresAt, convertedAt", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/affiliates\/rewards": { - "get": { - "summary": "List affiliate rewards", - "operationId": "affiliatesListRewards", - "tags": [ - "affiliates" - ], - "description": "List rewards earned by the current account from affiliate link conversions.\n", - "responses": { - "200": { - "description": "Affiliate rewards list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateRewardList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rewards", - "demo": "affiliates\/list-rewards.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referralId, amount, status, teamId, creditId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/affiliates\/rewards\/{rewardId}": { - "patch": { - "summary": "Update affiliate reward", - "operationId": "affiliatesUpdateReward", - "tags": [ - "affiliates" - ], - "description": "Claim a pending affiliate reward by setting its status to `claimed`. Creates organization credits for the target organization. The current user must be an owner of that organization.\n", - "responses": { - "200": { - "description": "AffiliateReward", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/affiliateReward" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rewards", - "demo": "affiliates\/update-reward.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "rewardId", - "description": "Reward ID", - "required": true, - "schema": { - "type": "string", - "example": "<REWARD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "description": "New reward status. Use `claimed` to claim the reward as organization credits.", - "type": "string", - "example": "claimed" - }, - "organizationId": { - "description": "Organization ID to apply credits to when claiming.", - "type": "string", - "example": "<ORGANIZATION_ID>" - } - }, - "required": [ - "status", - "organizationId" - ] - } - } - } - } - } - }, - "\/analytics\/properties": { - "get": { - "summary": "List analytics properties", - "operationId": "analyticsListProperties", - "tags": [ - "analytics" - ], - "description": "List analytics properties for the current project.", - "responses": { - "200": { - "description": "Analytics properties list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsPropertyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/list-properties.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.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, domain, timezone, enabled, public, snippetId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create analytics property", - "operationId": "analyticsCreateProperty", - "tags": [ - "analytics" - ], - "description": "Create a new analytics property to track a website or application.", - "responses": { - "201": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/create-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "propertyId": { - "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", - "type": "string", - "example": "<PROPERTY_ID>" - }, - "name": { - "description": "Human-readable name for this property.", - "type": "string", - "example": "<NAME>" - }, - "domain": { - "description": "Primary domain to track (e.g. example.com). Optional for native apps.", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "timezone": { - "description": "IANA timezone used for daily boundaries.", - "type": "string", - "default": "UTC", - "example": "<TIMEZONE>" - }, - "enabled": { - "description": "Whether tracking is enabled.", - "type": "boolean", - "default": true, - "example": false - }, - "public": { - "description": "Whether stats are publicly viewable.", - "type": "boolean", - "default": false, - "example": false - }, - "allowedOrigins": { - "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", - "type": "array", - "default": [ - "*" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "propertyId", - "name" - ] - } - } - } - } - } - }, - "\/analytics\/properties\/{propertyId}": { - "get": { - "summary": "Get analytics property", - "operationId": "analyticsGetProperty", - "tags": [ - "analytics" - ], - "description": "Get an analytics property by ID.", - "responses": { - "200": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/get-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update analytics property", - "operationId": "analyticsUpdateProperty", - "tags": [ - "analytics" - ], - "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", - "responses": { - "200": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/update-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Human-readable name for this property.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "domain": { - "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", - "type": "string", - "example": "<DOMAIN>", - "nullable": true - }, - "timezone": { - "description": "IANA timezone used for daily boundaries.", - "type": "string", - "example": "<TIMEZONE>", - "nullable": true - }, - "enabled": { - "description": "Whether tracking is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "public": { - "description": "Whether stats are publicly viewable.", - "type": "boolean", - "example": false, - "nullable": true - }, - "allowedOrigins": { - "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete analytics property", - "operationId": "analyticsDeleteProperty", - "tags": [ - "analytics" - ], - "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/delete-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/analytics\/properties\/{propertyId}\/events": { - "post": { - "summary": "Track analytics event", - "operationId": "analyticsCreateEvent", - "tags": [ - "analytics" - ], - "description": "Send a tracking event from a browser, native app, or server-side SDK.", - "responses": { - "202": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "analytics\/create-event.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "global" - ], - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property ID or snippet ID identifying the property.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", - "type": "string", - "example": "<NAME>" - }, - "url": { - "description": "Full page URL or screen identifier.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "domain": { - "description": "Hostname (e.g. example.com).", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "referrer": { - "description": "Referrer URL.", - "type": "string", - "default": "", - "example": "<REFERRER>" - }, - "screenWidth": { - "description": "Viewport width in CSS pixels.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "sessionHash": { - "description": "Optional session hash (provided by SDK).", - "type": "string", - "default": "", - "example": "<SESSION_HASH>" - }, - "scrollDepth": { - "description": "Scroll depth percentage 0-100.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "engagementTime": { - "description": "Engagement time in seconds.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "props": { - "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "userId": { - "description": "Override user ID. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "ip": { - "description": "Override IP address. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<IP>" - }, - "userAgent": { - "description": "Override user agent. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_AGENT>" - } - }, - "required": [ - "name", - "url" - ] - } - } - } - } - } - }, - "\/analytics\/properties\/{propertyId}\/metrics": { - "get": { - "summary": "List analytics metrics for a property", - "operationId": "analyticsListMetrics", - "tags": [ - "analytics" - ], - "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", - "responses": { - "200": { - "description": "AnalyticsMetricList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsMetricList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "metrics", - "demo": "analytics\/list-metrics.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "interval", - "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", - "required": false, - "schema": { - "type": "string", - "example": "1h", - "title": "AnalyticsInterval", - "oneOf": [ - { - "type": "string", - "enum": [ - "1h" - ], - "title": "One Hour" - }, - { - "type": "string", - "enum": [ - "1d" - ], - "title": "One Day" - }, - { - "type": "string", - "enum": [ - "1w" - ], - "title": "One Week" - }, - { - "type": "string", - "enum": [ - "1m" - ], - "title": "One Month" - } - ] - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "AnalyticsDimension", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "country" - ], - "title": "country" - }, - { - "type": "string", - "enum": [ - "region" - ], - "title": "region" - }, - { - "type": "string", - "enum": [ - "city" - ], - "title": "city" - }, - { - "type": "string", - "enum": [ - "browser" - ], - "title": "browser" - }, - { - "type": "string", - "enum": [ - "operatingSystem" - ], - "title": "operatingSystem" - }, - { - "type": "string", - "enum": [ - "device" - ], - "title": "device" - }, - { - "type": "string", - "enum": [ - "screenSize" - ], - "title": "screenSize" - }, - { - "type": "string", - "enum": [ - "referrerSource" - ], - "title": "referrerSource" - }, - { - "type": "string", - "enum": [ - "channel" - ], - "title": "channel" - }, - { - "type": "string", - "enum": [ - "utmSource" - ], - "title": "utmSource" - }, - { - "type": "string", - "enum": [ - "utmMedium" - ], - "title": "utmMedium" - }, - { - "type": "string", - "enum": [ - "utmCampaign" - ], - "title": "utmCampaign" - }, - { - "type": "string", - "enum": [ - "utmContent" - ], - "title": "utmContent" - }, - { - "type": "string", - "enum": [ - "utmTerm" - ], - "title": "utmTerm" - }, - { - "type": "string", - "enum": [ - "page" - ], - "title": "page" - }, - { - "type": "string", - "enum": [ - "hostname" - ], - "title": "hostname" - }, - { - "type": "string", - "enum": [ - "entryPage" - ], - "title": "entryPage" - }, - { - "type": "string", - "enum": [ - "exitPage" - ], - "title": "exitPage" - }, - { - "type": "string", - "enum": [ - "trafficType" - ], - "title": "trafficType" - }, - { - "type": "string", - "enum": [ - "botName" - ], - "title": "botName" - }, - { - "type": "string", - "enum": [ - "botCategory" - ], - "title": "botCategory" - }, - { - "type": "string", - "enum": [ - "eventName" - ], - "title": "eventName" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "dateRange", - "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", - "required": false, - "schema": { - "type": "string", - "example": "<DATE_RANGE>", - "default": "30d" - }, - "in": "query" - }, - { - "name": "startAt", - "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "endAt", - "description": "Explicit window end in ISO 8601. Defaults to the current time.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of ranked values to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 100 - }, - "in": "query" - } - ] - } - }, - "\/apps": { - "get": { - "summary": "List Applications", - "operationId": "appsList", - "tags": [ - "apps" - ], - "description": "List applications.", - "responses": { - "200": { - "description": "Apps list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/list.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Application", - "operationId": "appsCreate", - "tags": [ - "apps" - ], - "description": "Create a new application.", - "responses": { - "201": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/create.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<APP_ID>" - }, - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "teamId": { - "description": "Team unique ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - } - }, - "required": [ - "appId", - "name", - "redirectUris" - ] - } - } - } - } - } - }, - "\/apps\/scopes\/installations": { - "get": { - "summary": "List Installation Scopes", - "operationId": "appsListInstallationScopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request when installed on a team.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-installation-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/apps\/scopes\/oauth2": { - "get": { - "summary": "List OAuth2 Scopes", - "operationId": "appsListOAuth2Scopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request during the OAuth2 flow.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-o-auth-2-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/apps\/{appId}": { - "get": { - "summary": "Get Application", - "operationId": "appsGet", - "tags": [ - "apps" - ], - "description": "Get an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/get.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Application", - "operationId": "appsUpdate", - "tags": [ - "apps" - ], - "description": "Update an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "installationScopes": { - "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "installationRedirectUrl": { - "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete Application", - "operationId": "appsDelete", - "tags": [ - "apps" - ], - "description": "Delete an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "appsListInstallations", - "tags": [ - "apps" - ], - "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "appsGetInstallation", - "tags": [ - "apps" - ], - "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Installation", - "operationId": "appsDeleteInstallation", - "tags": [ - "apps" - ], - "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}\/tokens": { - "post": { - "summary": "Create Installation Token", - "operationId": "appsCreateInstallationToken", - "tags": [ - "apps" - ], - "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", - "responses": { - "201": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/create-installation-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.write", - "apps.tokens.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys": { - "get": { - "summary": "List App Keys", - "operationId": "appsListKeys", - "tags": [ - "apps" - ], - "description": "List app keys for an application.", - "responses": { - "200": { - "description": "App keys list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKeyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/list-keys.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create App Key", - "operationId": "appsCreateKey", - "tags": [ - "apps" - ], - "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", - "responses": { - "201": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/create-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys\/{keyId}": { - "get": { - "summary": "Get App Key", - "operationId": "appsGetKey", - "tags": [ - "apps" - ], - "description": "Get an app key by its unique ID.", - "responses": { - "200": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/get-key.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete App Key", - "operationId": "appsDeleteKey", - "tags": [ - "apps" - ], - "description": "Delete an app key by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/delete-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/labels": { - "put": { - "summary": "Update Application Labels", - "operationId": "appsUpdateLabels", - "tags": [ - "apps" - ], - "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update-labels.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/apps\/{appId}\/secrets": { - "get": { - "summary": "List Secrets", - "operationId": "appsListSecrets", - "tags": [ - "apps" - ], - "description": "List client secrets for an application.", - "responses": { - "200": { - "description": "App secrets list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/list-secrets.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Secret", - "operationId": "appsCreateSecret", - "tags": [ - "apps" - ], - "description": "Create a new client secret for an application.", - "responses": { - "201": { - "description": "AppSecretPlaintext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretPlaintext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/create-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/secrets\/{secretId}": { - "get": { - "summary": "Get Secret", - "operationId": "appsGetSecret", - "tags": [ - "apps" - ], - "description": "Get an application client secret by its unique ID.", - "responses": { - "200": { - "description": "AppSecret", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecret" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/get-secret.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Secret", - "operationId": "appsDeleteSecret", - "tags": [ - "apps" - ], - "description": "Delete an application client secret by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/delete-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/team": { - "patch": { - "summary": "Update Team", - "operationId": "appsUpdateTeam", - "tags": [ - "apps" - ], - "description": "Transfer an application to another team by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update-team.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team ID of the team to transfer application to.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/apps\/{appId}\/tokens": { - "delete": { - "summary": "Delete Tokens", - "operationId": "appsDeleteTokens", - "tags": [ - "apps" - ], - "description": "Revoke all tokens for an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete-tokens.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/avatars\/browsers\/{code}": { - "get": { - "summary": "Get browser icon", - "operationId": "avatarsGetBrowser", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-browser.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Browser Code.", - "required": true, - "schema": { - "type": "string", - "example": "aa", - "title": "Browser", - "oneOf": [ - { - "type": "string", - "enum": [ - "aa" - ], - "title": "Avant Browser" - }, - { - "type": "string", - "enum": [ - "an" - ], - "title": "Android WebView Beta" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Google Chrome" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "Google Chrome (iOS)" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Google Chrome (Mobile)" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Chromium" - }, - { - "type": "string", - "enum": [ - "ff" - ], - "title": "Mozilla Firefox" - }, - { - "type": "string", - "enum": [ - "sf" - ], - "title": "Safari" - }, - { - "type": "string", - "enum": [ - "mf" - ], - "title": "Mobile Safari" - }, - { - "type": "string", - "enum": [ - "ps" - ], - "title": "Microsoft Edge" - }, - { - "type": "string", - "enum": [ - "oi" - ], - "title": "Microsoft Edge (iOS)" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Opera Mini" - }, - { - "type": "string", - "enum": [ - "op" - ], - "title": "Opera" - }, - { - "type": "string", - "enum": [ - "on" - ], - "title": "Opera (Next)" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/credit-cards\/{code}": { - "get": { - "summary": "Get credit card icon", - "operationId": "avatarsGetCreditCard", - "tags": [ - "avatars" - ], - "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-credit-card.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", - "required": true, - "schema": { - "type": "string", - "example": "amex", - "title": "CreditCard", - "oneOf": [ - { - "type": "string", - "enum": [ - "amex" - ], - "title": "American Express" - }, - { - "type": "string", - "enum": [ - "argencard" - ], - "title": "Argencard" - }, - { - "type": "string", - "enum": [ - "cabal" - ], - "title": "Cabal" - }, - { - "type": "string", - "enum": [ - "cencosud" - ], - "title": "Cencosud" - }, - { - "type": "string", - "enum": [ - "diners" - ], - "title": "Diners Club" - }, - { - "type": "string", - "enum": [ - "discover" - ], - "title": "Discover" - }, - { - "type": "string", - "enum": [ - "elo" - ], - "title": "Elo" - }, - { - "type": "string", - "enum": [ - "hipercard" - ], - "title": "Hipercard" - }, - { - "type": "string", - "enum": [ - "jcb" - ], - "title": "JCB" - }, - { - "type": "string", - "enum": [ - "mastercard" - ], - "title": "Mastercard" - }, - { - "type": "string", - "enum": [ - "naranja" - ], - "title": "Naranja" - }, - { - "type": "string", - "enum": [ - "targeta-shopping" - ], - "title": "Tarjeta Shopping" - }, - { - "type": "string", - "enum": [ - "unionpay" - ], - "title": "Union Pay" - }, - { - "type": "string", - "enum": [ - "visa" - ], - "title": "Visa" - }, - { - "type": "string", - "enum": [ - "mir" - ], - "title": "MIR" - }, - { - "type": "string", - "enum": [ - "maestro" - ], - "title": "Maestro" - }, - { - "type": "string", - "enum": [ - "rupay" - ], - "title": "Rupay" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/favicon": { - "get": { - "summary": "Get favicon", - "operationId": "avatarsGetFavicon", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-favicon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to fetch the favicon from.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/flags\/{code}": { - "get": { - "summary": "Get country flag", - "operationId": "avatarsGetFlag", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-flag.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Country Code. ISO Alpha-2 country code format.", - "required": true, - "schema": { - "type": "string", - "example": "af", - "title": "Flag", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "Afghanistan" - }, - { - "type": "string", - "enum": [ - "ao" - ], - "title": "Angola" - }, - { - "type": "string", - "enum": [ - "al" - ], - "title": "Albania" - }, - { - "type": "string", - "enum": [ - "ad" - ], - "title": "Andorra" - }, - { - "type": "string", - "enum": [ - "ae" - ], - "title": "United Arab Emirates" - }, - { - "type": "string", - "enum": [ - "ar" - ], - "title": "Argentina" - }, - { - "type": "string", - "enum": [ - "am" - ], - "title": "Armenia" - }, - { - "type": "string", - "enum": [ - "ag" - ], - "title": "Antigua and Barbuda" - }, - { - "type": "string", - "enum": [ - "au" - ], - "title": "Australia" - }, - { - "type": "string", - "enum": [ - "at" - ], - "title": "Austria" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "Azerbaijan" - }, - { - "type": "string", - "enum": [ - "bi" - ], - "title": "Burundi" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "Belgium" - }, - { - "type": "string", - "enum": [ - "bj" - ], - "title": "Benin" - }, - { - "type": "string", - "enum": [ - "bf" - ], - "title": "Burkina Faso" - }, - { - "type": "string", - "enum": [ - "bd" - ], - "title": "Bangladesh" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "Bulgaria" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "Bahrain" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "Bahamas" - }, - { - "type": "string", - "enum": [ - "ba" - ], - "title": "Bosnia and Herzegovina" - }, - { - "type": "string", - "enum": [ - "by" - ], - "title": "Belarus" - }, - { - "type": "string", - "enum": [ - "bz" - ], - "title": "Belize" - }, - { - "type": "string", - "enum": [ - "bo" - ], - "title": "Bolivia" - }, - { - "type": "string", - "enum": [ - "br" - ], - "title": "Brazil" - }, - { - "type": "string", - "enum": [ - "bb" - ], - "title": "Barbados" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "Brunei Darussalam" - }, - { - "type": "string", - "enum": [ - "bt" - ], - "title": "Bhutan" - }, - { - "type": "string", - "enum": [ - "bw" - ], - "title": "Botswana" - }, - { - "type": "string", - "enum": [ - "cf" - ], - "title": "Central African Republic" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "Canada" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Switzerland" - }, - { - "type": "string", - "enum": [ - "cl" - ], - "title": "Chile" - }, - { - "type": "string", - "enum": [ - "cn" - ], - "title": "China" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "C\u00f4te d'Ivoire" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Cameroon" - }, - { - "type": "string", - "enum": [ - "cd" - ], - "title": "Democratic Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "cg" - ], - "title": "Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "co" - ], - "title": "Colombia" - }, - { - "type": "string", - "enum": [ - "km" - ], - "title": "Comoros" - }, - { - "type": "string", - "enum": [ - "cv" - ], - "title": "Cape Verde" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Costa Rica" - }, - { - "type": "string", - "enum": [ - "cu" - ], - "title": "Cuba" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "Cyprus" - }, - { - "type": "string", - "enum": [ - "cz" - ], - "title": "Czech Republic" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "Germany" - }, - { - "type": "string", - "enum": [ - "dj" - ], - "title": "Djibouti" - }, - { - "type": "string", - "enum": [ - "dm" - ], - "title": "Dominica" - }, - { - "type": "string", - "enum": [ - "dk" - ], - "title": "Denmark" - }, - { - "type": "string", - "enum": [ - "do" - ], - "title": "Dominican Republic" - }, - { - "type": "string", - "enum": [ - "dz" - ], - "title": "Algeria" - }, - { - "type": "string", - "enum": [ - "ec" - ], - "title": "Ecuador" - }, - { - "type": "string", - "enum": [ - "eg" - ], - "title": "Egypt" - }, - { - "type": "string", - "enum": [ - "er" - ], - "title": "Eritrea" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "Spain" - }, - { - "type": "string", - "enum": [ - "ee" - ], - "title": "Estonia" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "Ethiopia" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "Finland" - }, - { - "type": "string", - "enum": [ - "fj" - ], - "title": "Fiji" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "France" - }, - { - "type": "string", - "enum": [ - "fm" - ], - "title": "Micronesia (Federated States of)" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "Gabon" - }, - { - "type": "string", - "enum": [ - "gb" - ], - "title": "United Kingdom" - }, - { - "type": "string", - "enum": [ - "ge" - ], - "title": "Georgia" - }, - { - "type": "string", - "enum": [ - "gh" - ], - "title": "Ghana" - }, - { - "type": "string", - "enum": [ - "gn" - ], - "title": "Guinea" - }, - { - "type": "string", - "enum": [ - "gm" - ], - "title": "Gambia" - }, - { - "type": "string", - "enum": [ - "gw" - ], - "title": "Guinea-Bissau" - }, - { - "type": "string", - "enum": [ - "gq" - ], - "title": "Equatorial Guinea" - }, - { - "type": "string", - "enum": [ - "gr" - ], - "title": "Greece" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "Grenada" - }, - { - "type": "string", - "enum": [ - "gt" - ], - "title": "Guatemala" - }, - { - "type": "string", - "enum": [ - "gy" - ], - "title": "Guyana" - }, - { - "type": "string", - "enum": [ - "hn" - ], - "title": "Honduras" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "Croatia" - }, - { - "type": "string", - "enum": [ - "ht" - ], - "title": "Haiti" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "Hungary" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "Indonesia" - }, - { - "type": "string", - "enum": [ - "in" - ], - "title": "India" - }, - { - "type": "string", - "enum": [ - "ie" - ], - "title": "Ireland" - }, - { - "type": "string", - "enum": [ - "ir" - ], - "title": "Iran (Islamic Republic of)" - }, - { - "type": "string", - "enum": [ - "iq" - ], - "title": "Iraq" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "Iceland" - }, - { - "type": "string", - "enum": [ - "il" - ], - "title": "Israel" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "Italy" - }, - { - "type": "string", - "enum": [ - "jm" - ], - "title": "Jamaica" - }, - { - "type": "string", - "enum": [ - "jo" - ], - "title": "Jordan" - }, - { - "type": "string", - "enum": [ - "jp" - ], - "title": "Japan" - }, - { - "type": "string", - "enum": [ - "kz" - ], - "title": "Kazakhstan" - }, - { - "type": "string", - "enum": [ - "ke" - ], - "title": "Kenya" - }, - { - "type": "string", - "enum": [ - "kg" - ], - "title": "Kyrgyzstan" - }, - { - "type": "string", - "enum": [ - "kh" - ], - "title": "Cambodia" - }, - { - "type": "string", - "enum": [ - "ki" - ], - "title": "Kiribati" - }, - { - "type": "string", - "enum": [ - "kn" - ], - "title": "Saint Kitts and Nevis" - }, - { - "type": "string", - "enum": [ - "kr" - ], - "title": "South Korea" - }, - { - "type": "string", - "enum": [ - "kw" - ], - "title": "Kuwait" - }, - { - "type": "string", - "enum": [ - "la" - ], - "title": "Lao People's Democratic Republic" - }, - { - "type": "string", - "enum": [ - "lb" - ], - "title": "Lebanon" - }, - { - "type": "string", - "enum": [ - "lr" - ], - "title": "Liberia" - }, - { - "type": "string", - "enum": [ - "ly" - ], - "title": "Libya" - }, - { - "type": "string", - "enum": [ - "lc" - ], - "title": "Saint Lucia" - }, - { - "type": "string", - "enum": [ - "li" - ], - "title": "Liechtenstein" - }, - { - "type": "string", - "enum": [ - "lk" - ], - "title": "Sri Lanka" - }, - { - "type": "string", - "enum": [ - "ls" - ], - "title": "Lesotho" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "Lithuania" - }, - { - "type": "string", - "enum": [ - "lu" - ], - "title": "Luxembourg" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "Latvia" - }, - { - "type": "string", - "enum": [ - "ma" - ], - "title": "Morocco" - }, - { - "type": "string", - "enum": [ - "mc" - ], - "title": "Monaco" - }, - { - "type": "string", - "enum": [ - "md" - ], - "title": "Moldova" - }, - { - "type": "string", - "enum": [ - "mg" - ], - "title": "Madagascar" - }, - { - "type": "string", - "enum": [ - "mv" - ], - "title": "Maldives" - }, - { - "type": "string", - "enum": [ - "mx" - ], - "title": "Mexico" - }, - { - "type": "string", - "enum": [ - "mh" - ], - "title": "Marshall Islands" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "North Macedonia" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "Mali" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "Malta" - }, - { - "type": "string", - "enum": [ - "mm" - ], - "title": "Myanmar" - }, - { - "type": "string", - "enum": [ - "me" - ], - "title": "Montenegro" - }, - { - "type": "string", - "enum": [ - "mn" - ], - "title": "Mongolia" - }, - { - "type": "string", - "enum": [ - "mz" - ], - "title": "Mozambique" - }, - { - "type": "string", - "enum": [ - "mr" - ], - "title": "Mauritania" - }, - { - "type": "string", - "enum": [ - "mu" - ], - "title": "Mauritius" - }, - { - "type": "string", - "enum": [ - "mw" - ], - "title": "Malawi" - }, - { - "type": "string", - "enum": [ - "my" - ], - "title": "Malaysia" - }, - { - "type": "string", - "enum": [ - "na" - ], - "title": "Namibia" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "Niger" - }, - { - "type": "string", - "enum": [ - "ng" - ], - "title": "Nigeria" - }, - { - "type": "string", - "enum": [ - "ni" - ], - "title": "Nicaragua" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "Netherlands" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "Norway" - }, - { - "type": "string", - "enum": [ - "np" - ], - "title": "Nepal" - }, - { - "type": "string", - "enum": [ - "nr" - ], - "title": "Nauru" - }, - { - "type": "string", - "enum": [ - "nz" - ], - "title": "New Zealand" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Oman" - }, - { - "type": "string", - "enum": [ - "pk" - ], - "title": "Pakistan" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "Panama" - }, - { - "type": "string", - "enum": [ - "pe" - ], - "title": "Peru" - }, - { - "type": "string", - "enum": [ - "ph" - ], - "title": "Philippines" - }, - { - "type": "string", - "enum": [ - "pw" - ], - "title": "Palau" - }, - { - "type": "string", - "enum": [ - "pg" - ], - "title": "Papua New Guinea" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "Poland" - }, - { - "type": "string", - "enum": [ - "pf" - ], - "title": "French Polynesia" - }, - { - "type": "string", - "enum": [ - "kp" - ], - "title": "North Korea" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "Portugal" - }, - { - "type": "string", - "enum": [ - "py" - ], - "title": "Paraguay" - }, - { - "type": "string", - "enum": [ - "qa" - ], - "title": "Qatar" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "Romania" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "Russia" - }, - { - "type": "string", - "enum": [ - "rw" - ], - "title": "Rwanda" - }, - { - "type": "string", - "enum": [ - "sa" - ], - "title": "Saudi Arabia" - }, - { - "type": "string", - "enum": [ - "sd" - ], - "title": "Sudan" - }, - { - "type": "string", - "enum": [ - "sn" - ], - "title": "Senegal" - }, - { - "type": "string", - "enum": [ - "sg" - ], - "title": "Singapore" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "Solomon Islands" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "Sierra Leone" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "El Salvador" - }, - { - "type": "string", - "enum": [ - "sm" - ], - "title": "San Marino" - }, - { - "type": "string", - "enum": [ - "so" - ], - "title": "Somalia" - }, - { - "type": "string", - "enum": [ - "rs" - ], - "title": "Serbia" - }, - { - "type": "string", - "enum": [ - "ss" - ], - "title": "South Sudan" - }, - { - "type": "string", - "enum": [ - "st" - ], - "title": "Sao Tome and Principe" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "Suriname" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "Slovakia" - }, - { - "type": "string", - "enum": [ - "si" - ], - "title": "Slovenia" - }, - { - "type": "string", - "enum": [ - "se" - ], - "title": "Sweden" - }, - { - "type": "string", - "enum": [ - "sz" - ], - "title": "Eswatini" - }, - { - "type": "string", - "enum": [ - "sc" - ], - "title": "Seychelles" - }, - { - "type": "string", - "enum": [ - "sy" - ], - "title": "Syria" - }, - { - "type": "string", - "enum": [ - "td" - ], - "title": "Chad" - }, - { - "type": "string", - "enum": [ - "tg" - ], - "title": "Togo" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "Thailand" - }, - { - "type": "string", - "enum": [ - "tj" - ], - "title": "Tajikistan" - }, - { - "type": "string", - "enum": [ - "tm" - ], - "title": "Turkmenistan" - }, - { - "type": "string", - "enum": [ - "tl" - ], - "title": "Timor-Leste" - }, - { - "type": "string", - "enum": [ - "to" - ], - "title": "Tonga" - }, - { - "type": "string", - "enum": [ - "tt" - ], - "title": "Trinidad and Tobago" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "Tunisia" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "Turkey" - }, - { - "type": "string", - "enum": [ - "tv" - ], - "title": "Tuvalu" - }, - { - "type": "string", - "enum": [ - "tz" - ], - "title": "Tanzania" - }, - { - "type": "string", - "enum": [ - "ug" - ], - "title": "Uganda" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "Ukraine" - }, - { - "type": "string", - "enum": [ - "uy" - ], - "title": "Uruguay" - }, - { - "type": "string", - "enum": [ - "us" - ], - "title": "United States" - }, - { - "type": "string", - "enum": [ - "uz" - ], - "title": "Uzbekistan" - }, - { - "type": "string", - "enum": [ - "va" - ], - "title": "Vatican City" - }, - { - "type": "string", - "enum": [ - "vc" - ], - "title": "Saint Vincent and the Grenadines" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "Venezuela" - }, - { - "type": "string", - "enum": [ - "vn" - ], - "title": "Vietnam" - }, - { - "type": "string", - "enum": [ - "vu" - ], - "title": "Vanuatu" - }, - { - "type": "string", - "enum": [ - "ws" - ], - "title": "Samoa" - }, - { - "type": "string", - "enum": [ - "ye" - ], - "title": "Yemen" - }, - { - "type": "string", - "enum": [ - "za" - ], - "title": "South Africa" - }, - { - "type": "string", - "enum": [ - "zm" - ], - "title": "Zambia" - }, - { - "type": "string", - "enum": [ - "zw" - ], - "title": "Zimbabwe" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/image": { - "get": { - "summary": "Get image from URL", - "operationId": "avatarsGetImage", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-image.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Image URL which you want to crop.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/initials": { - "get": { - "summary": "Get user initials", - "operationId": "avatarsGetInitials", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-initials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "name", - "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "background", - "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", - "required": false, - "schema": { - "type": "string", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/photo": { - "get": { - "summary": "Get user photo", - "operationId": "avatarsGetPhoto", - "tags": [ - "avatars" - ], - "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-photo.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "width", - "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Output image quality between 0 and 100. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output image format. Defaults to 'png'.", - "required": false, - "schema": { - "type": "string", - "example": "png", - "default": "png" - }, - "in": "query" - }, - { - "name": "rating", - "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", - "required": false, - "schema": { - "type": "string", - "example": "g", - "default": "g" - }, - "in": "query" - }, - { - "name": "userId", - "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", - "required": false, - "schema": { - "type": "string", - "example": "current()", - "default": "" - }, - "in": "query" - }, - { - "name": "emailHash", - "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", - "required": false, - "schema": { - "type": "string", - "example": "<EMAIL_HASH>", - "default": "" - }, - "in": "query" - }, - { - "name": "name", - "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Update photo", - "operationId": "avatarsUpdatePhoto", - "tags": [ - "avatars" - ], - "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", - "responses": { - "200": { - "description": "Account", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/account" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/update-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "file": { - "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", - "type": "string", - "format": "binary" - } - }, - "required": [ - "file" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete photo", - "operationId": "avatarsDeletePhoto", - "tags": [ - "avatars" - ], - "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/delete-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/avatars\/qr": { - "get": { - "summary": "Get QR code", - "operationId": "avatarsGetQR", - "tags": [ - "avatars" - ], - "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-qr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "text", - "description": "Plain text to be converted to QR code image.", - "required": true, - "schema": { - "type": "string", - "example": "<TEXT>" - }, - "in": "query" - }, - { - "name": "size", - "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 400 - }, - "in": "query" - }, - { - "name": "margin", - "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "download", - "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": false - }, - "in": "query" - } - ] - } - }, - "\/avatars\/screenshots": { - "get": { - "summary": "Get webpage screenshot", - "operationId": "avatarsGetScreenshot", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-screenshot.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to capture.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "headers", - "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", - "required": false, - "schema": { - "type": "object", - "default": {}, - "example": { - "Accept-Language": "en-US,en;q=0.9" - } - }, - "in": "query" - }, - { - "name": "viewportWidth", - "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1920, - "default": 1280 - }, - "in": "query" - }, - { - "name": "viewportHeight", - "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1080, - "default": 720 - }, - "in": "query" - }, - { - "name": "scale", - "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 2, - "default": 1 - }, - "in": "query" - }, - { - "name": "theme", - "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", - "required": false, - "schema": { - "type": "string", - "example": "dark", - "title": "BrowserTheme", - "oneOf": [ - { - "type": "string", - "enum": [ - "light" - ], - "title": "light" - }, - { - "type": "string", - "enum": [ - "dark" - ], - "title": "dark" - } - ], - "default": "light" - }, - "in": "query" - }, - { - "name": "userAgent", - "description": "Custom user agent string. Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", - "default": "" - }, - "in": "query" - }, - { - "name": "fullpage", - "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "locale", - "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "en-US", - "default": "" - }, - "in": "query" - }, - { - "name": "timezone", - "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "America\/New_York", - "title": "Timezone", - "oneOf": [ - { - "type": "string", - "enum": [ - "africa\/abidjan" - ], - "title": "africa\/abidjan" - }, - { - "type": "string", - "enum": [ - "africa\/accra" - ], - "title": "africa\/accra" - }, - { - "type": "string", - "enum": [ - "africa\/addis_ababa" - ], - "title": "africa\/addis_ababa" - }, - { - "type": "string", - "enum": [ - "africa\/algiers" - ], - "title": "africa\/algiers" - }, - { - "type": "string", - "enum": [ - "africa\/asmara" - ], - "title": "africa\/asmara" - }, - { - "type": "string", - "enum": [ - "africa\/bamako" - ], - "title": "africa\/bamako" - }, - { - "type": "string", - "enum": [ - "africa\/bangui" - ], - "title": "africa\/bangui" - }, - { - "type": "string", - "enum": [ - "africa\/banjul" - ], - "title": "africa\/banjul" - }, - { - "type": "string", - "enum": [ - "africa\/bissau" - ], - "title": "africa\/bissau" - }, - { - "type": "string", - "enum": [ - "africa\/blantyre" - ], - "title": "africa\/blantyre" - }, - { - "type": "string", - "enum": [ - "africa\/brazzaville" - ], - "title": "africa\/brazzaville" - }, - { - "type": "string", - "enum": [ - "africa\/bujumbura" - ], - "title": "africa\/bujumbura" - }, - { - "type": "string", - "enum": [ - "africa\/cairo" - ], - "title": "africa\/cairo" - }, - { - "type": "string", - "enum": [ - "africa\/casablanca" - ], - "title": "africa\/casablanca" - }, - { - "type": "string", - "enum": [ - "africa\/ceuta" - ], - "title": "africa\/ceuta" - }, - { - "type": "string", - "enum": [ - "africa\/conakry" - ], - "title": "africa\/conakry" - }, - { - "type": "string", - "enum": [ - "africa\/dakar" - ], - "title": "africa\/dakar" - }, - { - "type": "string", - "enum": [ - "africa\/dar_es_salaam" - ], - "title": "africa\/dar_es_salaam" - }, - { - "type": "string", - "enum": [ - "africa\/djibouti" - ], - "title": "africa\/djibouti" - }, - { - "type": "string", - "enum": [ - "africa\/douala" - ], - "title": "africa\/douala" - }, - { - "type": "string", - "enum": [ - "africa\/el_aaiun" - ], - "title": "africa\/el_aaiun" - }, - { - "type": "string", - "enum": [ - "africa\/freetown" - ], - "title": "africa\/freetown" - }, - { - "type": "string", - "enum": [ - "africa\/gaborone" - ], - "title": "africa\/gaborone" - }, - { - "type": "string", - "enum": [ - "africa\/harare" - ], - "title": "africa\/harare" - }, - { - "type": "string", - "enum": [ - "africa\/johannesburg" - ], - "title": "africa\/johannesburg" - }, - { - "type": "string", - "enum": [ - "africa\/juba" - ], - "title": "africa\/juba" - }, - { - "type": "string", - "enum": [ - "africa\/kampala" - ], - "title": "africa\/kampala" - }, - { - "type": "string", - "enum": [ - "africa\/khartoum" - ], - "title": "africa\/khartoum" - }, - { - "type": "string", - "enum": [ - "africa\/kigali" - ], - "title": "africa\/kigali" - }, - { - "type": "string", - "enum": [ - "africa\/kinshasa" - ], - "title": "africa\/kinshasa" - }, - { - "type": "string", - "enum": [ - "africa\/lagos" - ], - "title": "africa\/lagos" - }, - { - "type": "string", - "enum": [ - "africa\/libreville" - ], - "title": "africa\/libreville" - }, - { - "type": "string", - "enum": [ - "africa\/lome" - ], - "title": "africa\/lome" - }, - { - "type": "string", - "enum": [ - "africa\/luanda" - ], - "title": "africa\/luanda" - }, - { - "type": "string", - "enum": [ - "africa\/lubumbashi" - ], - "title": "africa\/lubumbashi" - }, - { - "type": "string", - "enum": [ - "africa\/lusaka" - ], - "title": "africa\/lusaka" - }, - { - "type": "string", - "enum": [ - "africa\/malabo" - ], - "title": "africa\/malabo" - }, - { - "type": "string", - "enum": [ - "africa\/maputo" - ], - "title": "africa\/maputo" - }, - { - "type": "string", - "enum": [ - "africa\/maseru" - ], - "title": "africa\/maseru" - }, - { - "type": "string", - "enum": [ - "africa\/mbabane" - ], - "title": "africa\/mbabane" - }, - { - "type": "string", - "enum": [ - "africa\/mogadishu" - ], - "title": "africa\/mogadishu" - }, - { - "type": "string", - "enum": [ - "africa\/monrovia" - ], - "title": "africa\/monrovia" - }, - { - "type": "string", - "enum": [ - "africa\/nairobi" - ], - "title": "africa\/nairobi" - }, - { - "type": "string", - "enum": [ - "africa\/ndjamena" - ], - "title": "africa\/ndjamena" - }, - { - "type": "string", - "enum": [ - "africa\/niamey" - ], - "title": "africa\/niamey" - }, - { - "type": "string", - "enum": [ - "africa\/nouakchott" - ], - "title": "africa\/nouakchott" - }, - { - "type": "string", - "enum": [ - "africa\/ouagadougou" - ], - "title": "africa\/ouagadougou" - }, - { - "type": "string", - "enum": [ - "africa\/porto-novo" - ], - "title": "africa\/porto-novo" - }, - { - "type": "string", - "enum": [ - "africa\/sao_tome" - ], - "title": "africa\/sao_tome" - }, - { - "type": "string", - "enum": [ - "africa\/tripoli" - ], - "title": "africa\/tripoli" - }, - { - "type": "string", - "enum": [ - "africa\/tunis" - ], - "title": "africa\/tunis" - }, - { - "type": "string", - "enum": [ - "africa\/windhoek" - ], - "title": "africa\/windhoek" - }, - { - "type": "string", - "enum": [ - "america\/adak" - ], - "title": "america\/adak" - }, - { - "type": "string", - "enum": [ - "america\/anchorage" - ], - "title": "america\/anchorage" - }, - { - "type": "string", - "enum": [ - "america\/anguilla" - ], - "title": "america\/anguilla" - }, - { - "type": "string", - "enum": [ - "america\/antigua" - ], - "title": "america\/antigua" - }, - { - "type": "string", - "enum": [ - "america\/araguaina" - ], - "title": "america\/araguaina" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/buenos_aires" - ], - "title": "america\/argentina\/buenos_aires" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/catamarca" - ], - "title": "america\/argentina\/catamarca" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/cordoba" - ], - "title": "america\/argentina\/cordoba" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/jujuy" - ], - "title": "america\/argentina\/jujuy" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/la_rioja" - ], - "title": "america\/argentina\/la_rioja" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/mendoza" - ], - "title": "america\/argentina\/mendoza" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/rio_gallegos" - ], - "title": "america\/argentina\/rio_gallegos" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/salta" - ], - "title": "america\/argentina\/salta" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_juan" - ], - "title": "america\/argentina\/san_juan" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_luis" - ], - "title": "america\/argentina\/san_luis" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/tucuman" - ], - "title": "america\/argentina\/tucuman" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/ushuaia" - ], - "title": "america\/argentina\/ushuaia" - }, - { - "type": "string", - "enum": [ - "america\/aruba" - ], - "title": "america\/aruba" - }, - { - "type": "string", - "enum": [ - "america\/asuncion" - ], - "title": "america\/asuncion" - }, - { - "type": "string", - "enum": [ - "america\/atikokan" - ], - "title": "america\/atikokan" - }, - { - "type": "string", - "enum": [ - "america\/bahia" - ], - "title": "america\/bahia" - }, - { - "type": "string", - "enum": [ - "america\/bahia_banderas" - ], - "title": "america\/bahia_banderas" - }, - { - "type": "string", - "enum": [ - "america\/barbados" - ], - "title": "america\/barbados" - }, - { - "type": "string", - "enum": [ - "america\/belem" - ], - "title": "america\/belem" - }, - { - "type": "string", - "enum": [ - "america\/belize" - ], - "title": "america\/belize" - }, - { - "type": "string", - "enum": [ - "america\/blanc-sablon" - ], - "title": "america\/blanc-sablon" - }, - { - "type": "string", - "enum": [ - "america\/boa_vista" - ], - "title": "america\/boa_vista" - }, - { - "type": "string", - "enum": [ - "america\/bogota" - ], - "title": "america\/bogota" - }, - { - "type": "string", - "enum": [ - "america\/boise" - ], - "title": "america\/boise" - }, - { - "type": "string", - "enum": [ - "america\/cambridge_bay" - ], - "title": "america\/cambridge_bay" - }, - { - "type": "string", - "enum": [ - "america\/campo_grande" - ], - "title": "america\/campo_grande" - }, - { - "type": "string", - "enum": [ - "america\/cancun" - ], - "title": "america\/cancun" - }, - { - "type": "string", - "enum": [ - "america\/caracas" - ], - "title": "america\/caracas" - }, - { - "type": "string", - "enum": [ - "america\/cayenne" - ], - "title": "america\/cayenne" - }, - { - "type": "string", - "enum": [ - "america\/cayman" - ], - "title": "america\/cayman" - }, - { - "type": "string", - "enum": [ - "america\/chicago" - ], - "title": "america\/chicago" - }, - { - "type": "string", - "enum": [ - "america\/chihuahua" - ], - "title": "america\/chihuahua" - }, - { - "type": "string", - "enum": [ - "america\/ciudad_juarez" - ], - "title": "america\/ciudad_juarez" - }, - { - "type": "string", - "enum": [ - "america\/costa_rica" - ], - "title": "america\/costa_rica" - }, - { - "type": "string", - "enum": [ - "america\/coyhaique" - ], - "title": "america\/coyhaique" - }, - { - "type": "string", - "enum": [ - "america\/creston" - ], - "title": "america\/creston" - }, - { - "type": "string", - "enum": [ - "america\/cuiaba" - ], - "title": "america\/cuiaba" - }, - { - "type": "string", - "enum": [ - "america\/curacao" - ], - "title": "america\/curacao" - }, - { - "type": "string", - "enum": [ - "america\/danmarkshavn" - ], - "title": "america\/danmarkshavn" - }, - { - "type": "string", - "enum": [ - "america\/dawson" - ], - "title": "america\/dawson" - }, - { - "type": "string", - "enum": [ - "america\/dawson_creek" - ], - "title": "america\/dawson_creek" - }, - { - "type": "string", - "enum": [ - "america\/denver" - ], - "title": "america\/denver" - }, - { - "type": "string", - "enum": [ - "america\/detroit" - ], - "title": "america\/detroit" - }, - { - "type": "string", - "enum": [ - "america\/dominica" - ], - "title": "america\/dominica" - }, - { - "type": "string", - "enum": [ - "america\/edmonton" - ], - "title": "america\/edmonton" - }, - { - "type": "string", - "enum": [ - "america\/eirunepe" - ], - "title": "america\/eirunepe" - }, - { - "type": "string", - "enum": [ - "america\/el_salvador" - ], - "title": "america\/el_salvador" - }, - { - "type": "string", - "enum": [ - "america\/fort_nelson" - ], - "title": "america\/fort_nelson" - }, - { - "type": "string", - "enum": [ - "america\/fortaleza" - ], - "title": "america\/fortaleza" - }, - { - "type": "string", - "enum": [ - "america\/glace_bay" - ], - "title": "america\/glace_bay" - }, - { - "type": "string", - "enum": [ - "america\/goose_bay" - ], - "title": "america\/goose_bay" - }, - { - "type": "string", - "enum": [ - "america\/grand_turk" - ], - "title": "america\/grand_turk" - }, - { - "type": "string", - "enum": [ - "america\/grenada" - ], - "title": "america\/grenada" - }, - { - "type": "string", - "enum": [ - "america\/guadeloupe" - ], - "title": "america\/guadeloupe" - }, - { - "type": "string", - "enum": [ - "america\/guatemala" - ], - "title": "america\/guatemala" - }, - { - "type": "string", - "enum": [ - "america\/guayaquil" - ], - "title": "america\/guayaquil" - }, - { - "type": "string", - "enum": [ - "america\/guyana" - ], - "title": "america\/guyana" - }, - { - "type": "string", - "enum": [ - "america\/halifax" - ], - "title": "america\/halifax" - }, - { - "type": "string", - "enum": [ - "america\/havana" - ], - "title": "america\/havana" - }, - { - "type": "string", - "enum": [ - "america\/hermosillo" - ], - "title": "america\/hermosillo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/indianapolis" - ], - "title": "america\/indiana\/indianapolis" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/knox" - ], - "title": "america\/indiana\/knox" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/marengo" - ], - "title": "america\/indiana\/marengo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/petersburg" - ], - "title": "america\/indiana\/petersburg" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/tell_city" - ], - "title": "america\/indiana\/tell_city" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vevay" - ], - "title": "america\/indiana\/vevay" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vincennes" - ], - "title": "america\/indiana\/vincennes" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/winamac" - ], - "title": "america\/indiana\/winamac" - }, - { - "type": "string", - "enum": [ - "america\/inuvik" - ], - "title": "america\/inuvik" - }, - { - "type": "string", - "enum": [ - "america\/iqaluit" - ], - "title": "america\/iqaluit" - }, - { - "type": "string", - "enum": [ - "america\/jamaica" - ], - "title": "america\/jamaica" - }, - { - "type": "string", - "enum": [ - "america\/juneau" - ], - "title": "america\/juneau" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/louisville" - ], - "title": "america\/kentucky\/louisville" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/monticello" - ], - "title": "america\/kentucky\/monticello" - }, - { - "type": "string", - "enum": [ - "america\/kralendijk" - ], - "title": "america\/kralendijk" - }, - { - "type": "string", - "enum": [ - "america\/la_paz" - ], - "title": "america\/la_paz" - }, - { - "type": "string", - "enum": [ - "america\/lima" - ], - "title": "america\/lima" - }, - { - "type": "string", - "enum": [ - "america\/los_angeles" - ], - "title": "america\/los_angeles" - }, - { - "type": "string", - "enum": [ - "america\/lower_princes" - ], - "title": "america\/lower_princes" - }, - { - "type": "string", - "enum": [ - "america\/maceio" - ], - "title": "america\/maceio" - }, - { - "type": "string", - "enum": [ - "america\/managua" - ], - "title": "america\/managua" - }, - { - "type": "string", - "enum": [ - "america\/manaus" - ], - "title": "america\/manaus" - }, - { - "type": "string", - "enum": [ - "america\/marigot" - ], - "title": "america\/marigot" - }, - { - "type": "string", - "enum": [ - "america\/martinique" - ], - "title": "america\/martinique" - }, - { - "type": "string", - "enum": [ - "america\/matamoros" - ], - "title": "america\/matamoros" - }, - { - "type": "string", - "enum": [ - "america\/mazatlan" - ], - "title": "america\/mazatlan" - }, - { - "type": "string", - "enum": [ - "america\/menominee" - ], - "title": "america\/menominee" - }, - { - "type": "string", - "enum": [ - "america\/merida" - ], - "title": "america\/merida" - }, - { - "type": "string", - "enum": [ - "america\/metlakatla" - ], - "title": "america\/metlakatla" - }, - { - "type": "string", - "enum": [ - "america\/mexico_city" - ], - "title": "america\/mexico_city" - }, - { - "type": "string", - "enum": [ - "america\/miquelon" - ], - "title": "america\/miquelon" - }, - { - "type": "string", - "enum": [ - "america\/moncton" - ], - "title": "america\/moncton" - }, - { - "type": "string", - "enum": [ - "america\/monterrey" - ], - "title": "america\/monterrey" - }, - { - "type": "string", - "enum": [ - "america\/montevideo" - ], - "title": "america\/montevideo" - }, - { - "type": "string", - "enum": [ - "america\/montserrat" - ], - "title": "america\/montserrat" - }, - { - "type": "string", - "enum": [ - "america\/nassau" - ], - "title": "america\/nassau" - }, - { - "type": "string", - "enum": [ - "america\/new_york" - ], - "title": "america\/new_york" - }, - { - "type": "string", - "enum": [ - "america\/nome" - ], - "title": "america\/nome" - }, - { - "type": "string", - "enum": [ - "america\/noronha" - ], - "title": "america\/noronha" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/beulah" - ], - "title": "america\/north_dakota\/beulah" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/center" - ], - "title": "america\/north_dakota\/center" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/new_salem" - ], - "title": "america\/north_dakota\/new_salem" - }, - { - "type": "string", - "enum": [ - "america\/nuuk" - ], - "title": "america\/nuuk" - }, - { - "type": "string", - "enum": [ - "america\/ojinaga" - ], - "title": "america\/ojinaga" - }, - { - "type": "string", - "enum": [ - "america\/panama" - ], - "title": "america\/panama" - }, - { - "type": "string", - "enum": [ - "america\/paramaribo" - ], - "title": "america\/paramaribo" - }, - { - "type": "string", - "enum": [ - "america\/phoenix" - ], - "title": "america\/phoenix" - }, - { - "type": "string", - "enum": [ - "america\/port-au-prince" - ], - "title": "america\/port-au-prince" - }, - { - "type": "string", - "enum": [ - "america\/port_of_spain" - ], - "title": "america\/port_of_spain" - }, - { - "type": "string", - "enum": [ - "america\/porto_velho" - ], - "title": "america\/porto_velho" - }, - { - "type": "string", - "enum": [ - "america\/puerto_rico" - ], - "title": "america\/puerto_rico" - }, - { - "type": "string", - "enum": [ - "america\/punta_arenas" - ], - "title": "america\/punta_arenas" - }, - { - "type": "string", - "enum": [ - "america\/rankin_inlet" - ], - "title": "america\/rankin_inlet" - }, - { - "type": "string", - "enum": [ - "america\/recife" - ], - "title": "america\/recife" - }, - { - "type": "string", - "enum": [ - "america\/regina" - ], - "title": "america\/regina" - }, - { - "type": "string", - "enum": [ - "america\/resolute" - ], - "title": "america\/resolute" - }, - { - "type": "string", - "enum": [ - "america\/rio_branco" - ], - "title": "america\/rio_branco" - }, - { - "type": "string", - "enum": [ - "america\/santarem" - ], - "title": "america\/santarem" - }, - { - "type": "string", - "enum": [ - "america\/santiago" - ], - "title": "america\/santiago" - }, - { - "type": "string", - "enum": [ - "america\/santo_domingo" - ], - "title": "america\/santo_domingo" - }, - { - "type": "string", - "enum": [ - "america\/sao_paulo" - ], - "title": "america\/sao_paulo" - }, - { - "type": "string", - "enum": [ - "america\/scoresbysund" - ], - "title": "america\/scoresbysund" - }, - { - "type": "string", - "enum": [ - "america\/sitka" - ], - "title": "america\/sitka" - }, - { - "type": "string", - "enum": [ - "america\/st_barthelemy" - ], - "title": "america\/st_barthelemy" - }, - { - "type": "string", - "enum": [ - "america\/st_johns" - ], - "title": "america\/st_johns" - }, - { - "type": "string", - "enum": [ - "america\/st_kitts" - ], - "title": "america\/st_kitts" - }, - { - "type": "string", - "enum": [ - "america\/st_lucia" - ], - "title": "america\/st_lucia" - }, - { - "type": "string", - "enum": [ - "america\/st_thomas" - ], - "title": "america\/st_thomas" - }, - { - "type": "string", - "enum": [ - "america\/st_vincent" - ], - "title": "america\/st_vincent" - }, - { - "type": "string", - "enum": [ - "america\/swift_current" - ], - "title": "america\/swift_current" - }, - { - "type": "string", - "enum": [ - "america\/tegucigalpa" - ], - "title": "america\/tegucigalpa" - }, - { - "type": "string", - "enum": [ - "america\/thule" - ], - "title": "america\/thule" - }, - { - "type": "string", - "enum": [ - "america\/tijuana" - ], - "title": "america\/tijuana" - }, - { - "type": "string", - "enum": [ - "america\/toronto" - ], - "title": "america\/toronto" - }, - { - "type": "string", - "enum": [ - "america\/tortola" - ], - "title": "america\/tortola" - }, - { - "type": "string", - "enum": [ - "america\/vancouver" - ], - "title": "america\/vancouver" - }, - { - "type": "string", - "enum": [ - "america\/whitehorse" - ], - "title": "america\/whitehorse" - }, - { - "type": "string", - "enum": [ - "america\/winnipeg" - ], - "title": "america\/winnipeg" - }, - { - "type": "string", - "enum": [ - "america\/yakutat" - ], - "title": "america\/yakutat" - }, - { - "type": "string", - "enum": [ - "antarctica\/casey" - ], - "title": "antarctica\/casey" - }, - { - "type": "string", - "enum": [ - "antarctica\/davis" - ], - "title": "antarctica\/davis" - }, - { - "type": "string", - "enum": [ - "antarctica\/dumontdurville" - ], - "title": "antarctica\/dumontdurville" - }, - { - "type": "string", - "enum": [ - "antarctica\/macquarie" - ], - "title": "antarctica\/macquarie" - }, - { - "type": "string", - "enum": [ - "antarctica\/mawson" - ], - "title": "antarctica\/mawson" - }, - { - "type": "string", - "enum": [ - "antarctica\/mcmurdo" - ], - "title": "antarctica\/mcmurdo" - }, - { - "type": "string", - "enum": [ - "antarctica\/palmer" - ], - "title": "antarctica\/palmer" - }, - { - "type": "string", - "enum": [ - "antarctica\/rothera" - ], - "title": "antarctica\/rothera" - }, - { - "type": "string", - "enum": [ - "antarctica\/syowa" - ], - "title": "antarctica\/syowa" - }, - { - "type": "string", - "enum": [ - "antarctica\/troll" - ], - "title": "antarctica\/troll" - }, - { - "type": "string", - "enum": [ - "antarctica\/vostok" - ], - "title": "antarctica\/vostok" - }, - { - "type": "string", - "enum": [ - "arctic\/longyearbyen" - ], - "title": "arctic\/longyearbyen" - }, - { - "type": "string", - "enum": [ - "asia\/aden" - ], - "title": "asia\/aden" - }, - { - "type": "string", - "enum": [ - "asia\/almaty" - ], - "title": "asia\/almaty" - }, - { - "type": "string", - "enum": [ - "asia\/amman" - ], - "title": "asia\/amman" - }, - { - "type": "string", - "enum": [ - "asia\/anadyr" - ], - "title": "asia\/anadyr" - }, - { - "type": "string", - "enum": [ - "asia\/aqtau" - ], - "title": "asia\/aqtau" - }, - { - "type": "string", - "enum": [ - "asia\/aqtobe" - ], - "title": "asia\/aqtobe" - }, - { - "type": "string", - "enum": [ - "asia\/ashgabat" - ], - "title": "asia\/ashgabat" - }, - { - "type": "string", - "enum": [ - "asia\/atyrau" - ], - "title": "asia\/atyrau" - }, - { - "type": "string", - "enum": [ - "asia\/baghdad" - ], - "title": "asia\/baghdad" - }, - { - "type": "string", - "enum": [ - "asia\/bahrain" - ], - "title": "asia\/bahrain" - }, - { - "type": "string", - "enum": [ - "asia\/baku" - ], - "title": "asia\/baku" - }, - { - "type": "string", - "enum": [ - "asia\/bangkok" - ], - "title": "asia\/bangkok" - }, - { - "type": "string", - "enum": [ - "asia\/barnaul" - ], - "title": "asia\/barnaul" - }, - { - "type": "string", - "enum": [ - "asia\/beirut" - ], - "title": "asia\/beirut" - }, - { - "type": "string", - "enum": [ - "asia\/bishkek" - ], - "title": "asia\/bishkek" - }, - { - "type": "string", - "enum": [ - "asia\/brunei" - ], - "title": "asia\/brunei" - }, - { - "type": "string", - "enum": [ - "asia\/chita" - ], - "title": "asia\/chita" - }, - { - "type": "string", - "enum": [ - "asia\/colombo" - ], - "title": "asia\/colombo" - }, - { - "type": "string", - "enum": [ - "asia\/damascus" - ], - "title": "asia\/damascus" - }, - { - "type": "string", - "enum": [ - "asia\/dhaka" - ], - "title": "asia\/dhaka" - }, - { - "type": "string", - "enum": [ - "asia\/dili" - ], - "title": "asia\/dili" - }, - { - "type": "string", - "enum": [ - "asia\/dubai" - ], - "title": "asia\/dubai" - }, - { - "type": "string", - "enum": [ - "asia\/dushanbe" - ], - "title": "asia\/dushanbe" - }, - { - "type": "string", - "enum": [ - "asia\/famagusta" - ], - "title": "asia\/famagusta" - }, - { - "type": "string", - "enum": [ - "asia\/gaza" - ], - "title": "asia\/gaza" - }, - { - "type": "string", - "enum": [ - "asia\/hebron" - ], - "title": "asia\/hebron" - }, - { - "type": "string", - "enum": [ - "asia\/ho_chi_minh" - ], - "title": "asia\/ho_chi_minh" - }, - { - "type": "string", - "enum": [ - "asia\/hong_kong" - ], - "title": "asia\/hong_kong" - }, - { - "type": "string", - "enum": [ - "asia\/hovd" - ], - "title": "asia\/hovd" - }, - { - "type": "string", - "enum": [ - "asia\/irkutsk" - ], - "title": "asia\/irkutsk" - }, - { - "type": "string", - "enum": [ - "asia\/jakarta" - ], - "title": "asia\/jakarta" - }, - { - "type": "string", - "enum": [ - "asia\/jayapura" - ], - "title": "asia\/jayapura" - }, - { - "type": "string", - "enum": [ - "asia\/jerusalem" - ], - "title": "asia\/jerusalem" - }, - { - "type": "string", - "enum": [ - "asia\/kabul" - ], - "title": "asia\/kabul" - }, - { - "type": "string", - "enum": [ - "asia\/kamchatka" - ], - "title": "asia\/kamchatka" - }, - { - "type": "string", - "enum": [ - "asia\/karachi" - ], - "title": "asia\/karachi" - }, - { - "type": "string", - "enum": [ - "asia\/kathmandu" - ], - "title": "asia\/kathmandu" - }, - { - "type": "string", - "enum": [ - "asia\/khandyga" - ], - "title": "asia\/khandyga" - }, - { - "type": "string", - "enum": [ - "asia\/kolkata" - ], - "title": "asia\/kolkata" - }, - { - "type": "string", - "enum": [ - "asia\/krasnoyarsk" - ], - "title": "asia\/krasnoyarsk" - }, - { - "type": "string", - "enum": [ - "asia\/kuala_lumpur" - ], - "title": "asia\/kuala_lumpur" - }, - { - "type": "string", - "enum": [ - "asia\/kuching" - ], - "title": "asia\/kuching" - }, - { - "type": "string", - "enum": [ - "asia\/kuwait" - ], - "title": "asia\/kuwait" - }, - { - "type": "string", - "enum": [ - "asia\/macau" - ], - "title": "asia\/macau" - }, - { - "type": "string", - "enum": [ - "asia\/magadan" - ], - "title": "asia\/magadan" - }, - { - "type": "string", - "enum": [ - "asia\/makassar" - ], - "title": "asia\/makassar" - }, - { - "type": "string", - "enum": [ - "asia\/manila" - ], - "title": "asia\/manila" - }, - { - "type": "string", - "enum": [ - "asia\/muscat" - ], - "title": "asia\/muscat" - }, - { - "type": "string", - "enum": [ - "asia\/nicosia" - ], - "title": "asia\/nicosia" - }, - { - "type": "string", - "enum": [ - "asia\/novokuznetsk" - ], - "title": "asia\/novokuznetsk" - }, - { - "type": "string", - "enum": [ - "asia\/novosibirsk" - ], - "title": "asia\/novosibirsk" - }, - { - "type": "string", - "enum": [ - "asia\/omsk" - ], - "title": "asia\/omsk" - }, - { - "type": "string", - "enum": [ - "asia\/oral" - ], - "title": "asia\/oral" - }, - { - "type": "string", - "enum": [ - "asia\/phnom_penh" - ], - "title": "asia\/phnom_penh" - }, - { - "type": "string", - "enum": [ - "asia\/pontianak" - ], - "title": "asia\/pontianak" - }, - { - "type": "string", - "enum": [ - "asia\/pyongyang" - ], - "title": "asia\/pyongyang" - }, - { - "type": "string", - "enum": [ - "asia\/qatar" - ], - "title": "asia\/qatar" - }, - { - "type": "string", - "enum": [ - "asia\/qostanay" - ], - "title": "asia\/qostanay" - }, - { - "type": "string", - "enum": [ - "asia\/qyzylorda" - ], - "title": "asia\/qyzylorda" - }, - { - "type": "string", - "enum": [ - "asia\/riyadh" - ], - "title": "asia\/riyadh" - }, - { - "type": "string", - "enum": [ - "asia\/sakhalin" - ], - "title": "asia\/sakhalin" - }, - { - "type": "string", - "enum": [ - "asia\/samarkand" - ], - "title": "asia\/samarkand" - }, - { - "type": "string", - "enum": [ - "asia\/seoul" - ], - "title": "asia\/seoul" - }, - { - "type": "string", - "enum": [ - "asia\/shanghai" - ], - "title": "asia\/shanghai" - }, - { - "type": "string", - "enum": [ - "asia\/singapore" - ], - "title": "asia\/singapore" - }, - { - "type": "string", - "enum": [ - "asia\/srednekolymsk" - ], - "title": "asia\/srednekolymsk" - }, - { - "type": "string", - "enum": [ - "asia\/taipei" - ], - "title": "asia\/taipei" - }, - { - "type": "string", - "enum": [ - "asia\/tashkent" - ], - "title": "asia\/tashkent" - }, - { - "type": "string", - "enum": [ - "asia\/tbilisi" - ], - "title": "asia\/tbilisi" - }, - { - "type": "string", - "enum": [ - "asia\/tehran" - ], - "title": "asia\/tehran" - }, - { - "type": "string", - "enum": [ - "asia\/thimphu" - ], - "title": "asia\/thimphu" - }, - { - "type": "string", - "enum": [ - "asia\/tokyo" - ], - "title": "asia\/tokyo" - }, - { - "type": "string", - "enum": [ - "asia\/tomsk" - ], - "title": "asia\/tomsk" - }, - { - "type": "string", - "enum": [ - "asia\/ulaanbaatar" - ], - "title": "asia\/ulaanbaatar" - }, - { - "type": "string", - "enum": [ - "asia\/urumqi" - ], - "title": "asia\/urumqi" - }, - { - "type": "string", - "enum": [ - "asia\/ust-nera" - ], - "title": "asia\/ust-nera" - }, - { - "type": "string", - "enum": [ - "asia\/vientiane" - ], - "title": "asia\/vientiane" - }, - { - "type": "string", - "enum": [ - "asia\/vladivostok" - ], - "title": "asia\/vladivostok" - }, - { - "type": "string", - "enum": [ - "asia\/yakutsk" - ], - "title": "asia\/yakutsk" - }, - { - "type": "string", - "enum": [ - "asia\/yangon" - ], - "title": "asia\/yangon" - }, - { - "type": "string", - "enum": [ - "asia\/yekaterinburg" - ], - "title": "asia\/yekaterinburg" - }, - { - "type": "string", - "enum": [ - "asia\/yerevan" - ], - "title": "asia\/yerevan" - }, - { - "type": "string", - "enum": [ - "atlantic\/azores" - ], - "title": "atlantic\/azores" - }, - { - "type": "string", - "enum": [ - "atlantic\/bermuda" - ], - "title": "atlantic\/bermuda" - }, - { - "type": "string", - "enum": [ - "atlantic\/canary" - ], - "title": "atlantic\/canary" - }, - { - "type": "string", - "enum": [ - "atlantic\/cape_verde" - ], - "title": "atlantic\/cape_verde" - }, - { - "type": "string", - "enum": [ - "atlantic\/faroe" - ], - "title": "atlantic\/faroe" - }, - { - "type": "string", - "enum": [ - "atlantic\/madeira" - ], - "title": "atlantic\/madeira" - }, - { - "type": "string", - "enum": [ - "atlantic\/reykjavik" - ], - "title": "atlantic\/reykjavik" - }, - { - "type": "string", - "enum": [ - "atlantic\/south_georgia" - ], - "title": "atlantic\/south_georgia" - }, - { - "type": "string", - "enum": [ - "atlantic\/st_helena" - ], - "title": "atlantic\/st_helena" - }, - { - "type": "string", - "enum": [ - "atlantic\/stanley" - ], - "title": "atlantic\/stanley" - }, - { - "type": "string", - "enum": [ - "australia\/adelaide" - ], - "title": "australia\/adelaide" - }, - { - "type": "string", - "enum": [ - "australia\/brisbane" - ], - "title": "australia\/brisbane" - }, - { - "type": "string", - "enum": [ - "australia\/broken_hill" - ], - "title": "australia\/broken_hill" - }, - { - "type": "string", - "enum": [ - "australia\/darwin" - ], - "title": "australia\/darwin" - }, - { - "type": "string", - "enum": [ - "australia\/eucla" - ], - "title": "australia\/eucla" - }, - { - "type": "string", - "enum": [ - "australia\/hobart" - ], - "title": "australia\/hobart" - }, - { - "type": "string", - "enum": [ - "australia\/lindeman" - ], - "title": "australia\/lindeman" - }, - { - "type": "string", - "enum": [ - "australia\/lord_howe" - ], - "title": "australia\/lord_howe" - }, - { - "type": "string", - "enum": [ - "australia\/melbourne" - ], - "title": "australia\/melbourne" - }, - { - "type": "string", - "enum": [ - "australia\/perth" - ], - "title": "australia\/perth" - }, - { - "type": "string", - "enum": [ - "australia\/sydney" - ], - "title": "australia\/sydney" - }, - { - "type": "string", - "enum": [ - "europe\/amsterdam" - ], - "title": "europe\/amsterdam" - }, - { - "type": "string", - "enum": [ - "europe\/andorra" - ], - "title": "europe\/andorra" - }, - { - "type": "string", - "enum": [ - "europe\/astrakhan" - ], - "title": "europe\/astrakhan" - }, - { - "type": "string", - "enum": [ - "europe\/athens" - ], - "title": "europe\/athens" - }, - { - "type": "string", - "enum": [ - "europe\/belgrade" - ], - "title": "europe\/belgrade" - }, - { - "type": "string", - "enum": [ - "europe\/berlin" - ], - "title": "europe\/berlin" - }, - { - "type": "string", - "enum": [ - "europe\/bratislava" - ], - "title": "europe\/bratislava" - }, - { - "type": "string", - "enum": [ - "europe\/brussels" - ], - "title": "europe\/brussels" - }, - { - "type": "string", - "enum": [ - "europe\/bucharest" - ], - "title": "europe\/bucharest" - }, - { - "type": "string", - "enum": [ - "europe\/budapest" - ], - "title": "europe\/budapest" - }, - { - "type": "string", - "enum": [ - "europe\/busingen" - ], - "title": "europe\/busingen" - }, - { - "type": "string", - "enum": [ - "europe\/chisinau" - ], - "title": "europe\/chisinau" - }, - { - "type": "string", - "enum": [ - "europe\/copenhagen" - ], - "title": "europe\/copenhagen" - }, - { - "type": "string", - "enum": [ - "europe\/dublin" - ], - "title": "europe\/dublin" - }, - { - "type": "string", - "enum": [ - "europe\/gibraltar" - ], - "title": "europe\/gibraltar" - }, - { - "type": "string", - "enum": [ - "europe\/guernsey" - ], - "title": "europe\/guernsey" - }, - { - "type": "string", - "enum": [ - "europe\/helsinki" - ], - "title": "europe\/helsinki" - }, - { - "type": "string", - "enum": [ - "europe\/isle_of_man" - ], - "title": "europe\/isle_of_man" - }, - { - "type": "string", - "enum": [ - "europe\/istanbul" - ], - "title": "europe\/istanbul" - }, - { - "type": "string", - "enum": [ - "europe\/jersey" - ], - "title": "europe\/jersey" - }, - { - "type": "string", - "enum": [ - "europe\/kaliningrad" - ], - "title": "europe\/kaliningrad" - }, - { - "type": "string", - "enum": [ - "europe\/kirov" - ], - "title": "europe\/kirov" - }, - { - "type": "string", - "enum": [ - "europe\/kyiv" - ], - "title": "europe\/kyiv" - }, - { - "type": "string", - "enum": [ - "europe\/lisbon" - ], - "title": "europe\/lisbon" - }, - { - "type": "string", - "enum": [ - "europe\/ljubljana" - ], - "title": "europe\/ljubljana" - }, - { - "type": "string", - "enum": [ - "europe\/london" - ], - "title": "europe\/london" - }, - { - "type": "string", - "enum": [ - "europe\/luxembourg" - ], - "title": "europe\/luxembourg" - }, - { - "type": "string", - "enum": [ - "europe\/madrid" - ], - "title": "europe\/madrid" - }, - { - "type": "string", - "enum": [ - "europe\/malta" - ], - "title": "europe\/malta" - }, - { - "type": "string", - "enum": [ - "europe\/mariehamn" - ], - "title": "europe\/mariehamn" - }, - { - "type": "string", - "enum": [ - "europe\/minsk" - ], - "title": "europe\/minsk" - }, - { - "type": "string", - "enum": [ - "europe\/monaco" - ], - "title": "europe\/monaco" - }, - { - "type": "string", - "enum": [ - "europe\/moscow" - ], - "title": "europe\/moscow" - }, - { - "type": "string", - "enum": [ - "europe\/oslo" - ], - "title": "europe\/oslo" - }, - { - "type": "string", - "enum": [ - "europe\/paris" - ], - "title": "europe\/paris" - }, - { - "type": "string", - "enum": [ - "europe\/podgorica" - ], - "title": "europe\/podgorica" - }, - { - "type": "string", - "enum": [ - "europe\/prague" - ], - "title": "europe\/prague" - }, - { - "type": "string", - "enum": [ - "europe\/riga" - ], - "title": "europe\/riga" - }, - { - "type": "string", - "enum": [ - "europe\/rome" - ], - "title": "europe\/rome" - }, - { - "type": "string", - "enum": [ - "europe\/samara" - ], - "title": "europe\/samara" - }, - { - "type": "string", - "enum": [ - "europe\/san_marino" - ], - "title": "europe\/san_marino" - }, - { - "type": "string", - "enum": [ - "europe\/sarajevo" - ], - "title": "europe\/sarajevo" - }, - { - "type": "string", - "enum": [ - "europe\/saratov" - ], - "title": "europe\/saratov" - }, - { - "type": "string", - "enum": [ - "europe\/simferopol" - ], - "title": "europe\/simferopol" - }, - { - "type": "string", - "enum": [ - "europe\/skopje" - ], - "title": "europe\/skopje" - }, - { - "type": "string", - "enum": [ - "europe\/sofia" - ], - "title": "europe\/sofia" - }, - { - "type": "string", - "enum": [ - "europe\/stockholm" - ], - "title": "europe\/stockholm" - }, - { - "type": "string", - "enum": [ - "europe\/tallinn" - ], - "title": "europe\/tallinn" - }, - { - "type": "string", - "enum": [ - "europe\/tirane" - ], - "title": "europe\/tirane" - }, - { - "type": "string", - "enum": [ - "europe\/ulyanovsk" - ], - "title": "europe\/ulyanovsk" - }, - { - "type": "string", - "enum": [ - "europe\/vaduz" - ], - "title": "europe\/vaduz" - }, - { - "type": "string", - "enum": [ - "europe\/vatican" - ], - "title": "europe\/vatican" - }, - { - "type": "string", - "enum": [ - "europe\/vienna" - ], - "title": "europe\/vienna" - }, - { - "type": "string", - "enum": [ - "europe\/vilnius" - ], - "title": "europe\/vilnius" - }, - { - "type": "string", - "enum": [ - "europe\/volgograd" - ], - "title": "europe\/volgograd" - }, - { - "type": "string", - "enum": [ - "europe\/warsaw" - ], - "title": "europe\/warsaw" - }, - { - "type": "string", - "enum": [ - "europe\/zagreb" - ], - "title": "europe\/zagreb" - }, - { - "type": "string", - "enum": [ - "europe\/zurich" - ], - "title": "europe\/zurich" - }, - { - "type": "string", - "enum": [ - "indian\/antananarivo" - ], - "title": "indian\/antananarivo" - }, - { - "type": "string", - "enum": [ - "indian\/chagos" - ], - "title": "indian\/chagos" - }, - { - "type": "string", - "enum": [ - "indian\/christmas" - ], - "title": "indian\/christmas" - }, - { - "type": "string", - "enum": [ - "indian\/cocos" - ], - "title": "indian\/cocos" - }, - { - "type": "string", - "enum": [ - "indian\/comoro" - ], - "title": "indian\/comoro" - }, - { - "type": "string", - "enum": [ - "indian\/kerguelen" - ], - "title": "indian\/kerguelen" - }, - { - "type": "string", - "enum": [ - "indian\/mahe" - ], - "title": "indian\/mahe" - }, - { - "type": "string", - "enum": [ - "indian\/maldives" - ], - "title": "indian\/maldives" - }, - { - "type": "string", - "enum": [ - "indian\/mauritius" - ], - "title": "indian\/mauritius" - }, - { - "type": "string", - "enum": [ - "indian\/mayotte" - ], - "title": "indian\/mayotte" - }, - { - "type": "string", - "enum": [ - "indian\/reunion" - ], - "title": "indian\/reunion" - }, - { - "type": "string", - "enum": [ - "pacific\/apia" - ], - "title": "pacific\/apia" - }, - { - "type": "string", - "enum": [ - "pacific\/auckland" - ], - "title": "pacific\/auckland" - }, - { - "type": "string", - "enum": [ - "pacific\/bougainville" - ], - "title": "pacific\/bougainville" - }, - { - "type": "string", - "enum": [ - "pacific\/chatham" - ], - "title": "pacific\/chatham" - }, - { - "type": "string", - "enum": [ - "pacific\/chuuk" - ], - "title": "pacific\/chuuk" - }, - { - "type": "string", - "enum": [ - "pacific\/easter" - ], - "title": "pacific\/easter" - }, - { - "type": "string", - "enum": [ - "pacific\/efate" - ], - "title": "pacific\/efate" - }, - { - "type": "string", - "enum": [ - "pacific\/fakaofo" - ], - "title": "pacific\/fakaofo" - }, - { - "type": "string", - "enum": [ - "pacific\/fiji" - ], - "title": "pacific\/fiji" - }, - { - "type": "string", - "enum": [ - "pacific\/funafuti" - ], - "title": "pacific\/funafuti" - }, - { - "type": "string", - "enum": [ - "pacific\/galapagos" - ], - "title": "pacific\/galapagos" - }, - { - "type": "string", - "enum": [ - "pacific\/gambier" - ], - "title": "pacific\/gambier" - }, - { - "type": "string", - "enum": [ - "pacific\/guadalcanal" - ], - "title": "pacific\/guadalcanal" - }, - { - "type": "string", - "enum": [ - "pacific\/guam" - ], - "title": "pacific\/guam" - }, - { - "type": "string", - "enum": [ - "pacific\/honolulu" - ], - "title": "pacific\/honolulu" - }, - { - "type": "string", - "enum": [ - "pacific\/kanton" - ], - "title": "pacific\/kanton" - }, - { - "type": "string", - "enum": [ - "pacific\/kiritimati" - ], - "title": "pacific\/kiritimati" - }, - { - "type": "string", - "enum": [ - "pacific\/kosrae" - ], - "title": "pacific\/kosrae" - }, - { - "type": "string", - "enum": [ - "pacific\/kwajalein" - ], - "title": "pacific\/kwajalein" - }, - { - "type": "string", - "enum": [ - "pacific\/majuro" - ], - "title": "pacific\/majuro" - }, - { - "type": "string", - "enum": [ - "pacific\/marquesas" - ], - "title": "pacific\/marquesas" - }, - { - "type": "string", - "enum": [ - "pacific\/midway" - ], - "title": "pacific\/midway" - }, - { - "type": "string", - "enum": [ - "pacific\/nauru" - ], - "title": "pacific\/nauru" - }, - { - "type": "string", - "enum": [ - "pacific\/niue" - ], - "title": "pacific\/niue" - }, - { - "type": "string", - "enum": [ - "pacific\/norfolk" - ], - "title": "pacific\/norfolk" - }, - { - "type": "string", - "enum": [ - "pacific\/noumea" - ], - "title": "pacific\/noumea" - }, - { - "type": "string", - "enum": [ - "pacific\/pago_pago" - ], - "title": "pacific\/pago_pago" - }, - { - "type": "string", - "enum": [ - "pacific\/palau" - ], - "title": "pacific\/palau" - }, - { - "type": "string", - "enum": [ - "pacific\/pitcairn" - ], - "title": "pacific\/pitcairn" - }, - { - "type": "string", - "enum": [ - "pacific\/pohnpei" - ], - "title": "pacific\/pohnpei" - }, - { - "type": "string", - "enum": [ - "pacific\/port_moresby" - ], - "title": "pacific\/port_moresby" - }, - { - "type": "string", - "enum": [ - "pacific\/rarotonga" - ], - "title": "pacific\/rarotonga" - }, - { - "type": "string", - "enum": [ - "pacific\/saipan" - ], - "title": "pacific\/saipan" - }, - { - "type": "string", - "enum": [ - "pacific\/tahiti" - ], - "title": "pacific\/tahiti" - }, - { - "type": "string", - "enum": [ - "pacific\/tarawa" - ], - "title": "pacific\/tarawa" - }, - { - "type": "string", - "enum": [ - "pacific\/tongatapu" - ], - "title": "pacific\/tongatapu" - }, - { - "type": "string", - "enum": [ - "pacific\/wake" - ], - "title": "pacific\/wake" - }, - { - "type": "string", - "enum": [ - "pacific\/wallis" - ], - "title": "pacific\/wallis" - }, - { - "type": "string", - "enum": [ - "utc" - ], - "title": "utc" - } - ] - }, - "in": "query" - }, - { - "name": "latitude", - "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 37.7749, - "default": 0 - }, - "in": "query" - }, - { - "name": "longitude", - "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": -122.4194, - "default": 0 - }, - "in": "query" - }, - { - "name": "accuracy", - "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 100, - "default": 0 - }, - "in": "query" - }, - { - "name": "touch", - "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "permissions", - "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "BrowserPermission", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "geolocation" - ], - "title": "geolocation" - }, - { - "type": "string", - "enum": [ - "camera" - ], - "title": "camera" - }, - { - "type": "string", - "enum": [ - "microphone" - ], - "title": "microphone" - }, - { - "type": "string", - "enum": [ - "notifications" - ], - "title": "notifications" - }, - { - "type": "string", - "enum": [ - "midi" - ], - "title": "midi" - }, - { - "type": "string", - "enum": [ - "push" - ], - "title": "push" - }, - { - "type": "string", - "enum": [ - "clipboard-read" - ], - "title": "clipboard-read" - }, - { - "type": "string", - "enum": [ - "clipboard-write" - ], - "title": "clipboard-write" - }, - { - "type": "string", - "enum": [ - "payment-handler" - ], - "title": "payment-handler" - }, - { - "type": "string", - "enum": [ - "usb" - ], - "title": "usb" - }, - { - "type": "string", - "enum": [ - "bluetooth" - ], - "title": "bluetooth" - }, - { - "type": "string", - "enum": [ - "accelerometer" - ], - "title": "accelerometer" - }, - { - "type": "string", - "enum": [ - "gyroscope" - ], - "title": "gyroscope" - }, - { - "type": "string", - "enum": [ - "magnetometer" - ], - "title": "magnetometer" - }, - { - "type": "string", - "enum": [ - "ambient-light-sensor" - ], - "title": "ambient-light-sensor" - }, - { - "type": "string", - "enum": [ - "background-sync" - ], - "title": "background-sync" - }, - { - "type": "string", - "enum": [ - "persistent-storage" - ], - "title": "persistent-storage" - }, - { - "type": "string", - "enum": [ - "screen-wake-lock" - ], - "title": "screen-wake-lock" - }, - { - "type": "string", - "enum": [ - "web-share" - ], - "title": "web-share" - }, - { - "type": "string", - "enum": [ - "xr-spatial-tracking" - ], - "title": "xr-spatial-tracking" - } - ] - }, - "example": [ - "geolocation", - "notifications" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "sleep", - "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 3, - "default": 0 - }, - "in": "query" - }, - { - "name": "width", - "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 800, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 600, - "default": 0 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 85, - "default": -1 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpeg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/backups\/archives": { - "get": { - "summary": "List archives", - "operationId": "backupsListArchives", - "tags": [ - "backups" - ], - "description": "List all archives for a project.", - "responses": { - "200": { - "description": "Backup archive list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchiveList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-archives.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create archive", - "operationId": "backupsCreateArchive", - "tags": [ - "backups" - ], - "description": "Create a new archive asynchronously for a project.", - "responses": { - "201": { - "description": "Archive", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchive" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "services": { - "description": "Array of services to backup", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "resourceId": { - "description": "Resource ID. When set, only this single resource will be backed up.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - } - }, - "required": [ - "services" - ] - } - } - } - } - } - }, - "\/backups\/archives\/{archiveId}": { - "get": { - "summary": "Get backup archive", - "operationId": "backupsGetArchive", - "tags": [ - "backups" - ], - "description": "Get a backup archive using it's ID.", - "responses": { - "200": { - "description": "Archive", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchive" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "archiveId", - "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete archive", - "operationId": "backupsDeleteArchive", - "tags": [ - "backups" - ], - "description": "Delete an existing archive for a project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/delete-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "archiveId", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "backupsListPolicies", - "tags": [ - "backups" - ], - "description": "List all policies for a project.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "backups.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "backupsCreatePolicy", - "tags": [ - "backups" - ], - "description": "Create a new backup policy.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "services": { - "description": "Array of services to backup", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "resourceId": { - "description": "Resource ID. When set, only this single resource will be backed up.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When set to 'disabled', no backups will be taken", - "type": "boolean", - "default": true, - "example": false - }, - "retention": { - "description": "Days to keep backups before deletion", - "type": "integer", - "example": 1, - "format": "int32" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - } - }, - "required": [ - "policyId", - "services", - "retention", - "schedule" - ] - } - } - } - } - } - }, - "\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "backupsGetPolicy", - "tags": [ - "backups" - ], - "description": "Get a backup policy using it's ID.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "backups.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "backupsUpdatePolicy", - "tags": [ - "backups" - ], - "description": "Update an existing policy using it's ID.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/update-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "retention": { - "description": "Days to keep backups before deletion", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "schedule": { - "description": "Cron expression", - "type": "string" - }, - "enabled": { - "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "backupsDeletePolicy", - "tags": [ - "backups" - ], - "description": "Delete a policy using it's ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/delete-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/backups\/restoration": { - "post": { - "summary": "Create restoration", - "operationId": "backupsCreateRestoration", - "tags": [ - "backups" - ], - "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", - "responses": { - "201": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "archiveId": { - "description": "Backup archive ID to restore", - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "services": { - "description": "Array of services to restore", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "newResourceId": { - "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "default": "", - "example": "<NEW_RESOURCE_ID>" - }, - "newResourceName": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NEW_RESOURCE_NAME>" - } - }, - "required": [ - "archiveId", - "services" - ] - } - } - } - } - } - }, - "\/backups\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "backupsListRestorations", - "tags": [ - "backups" - ], - "description": "List all backup restorations for a project.", - "responses": { - "200": { - "description": "Backup restoration list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/backups\/restorations\/{restorationId}": { - "get": { - "summary": "Get backup restoration", - "operationId": "backupsGetRestoration", - "tags": [ - "backups" - ], - "description": "Get the current status of a backup restoration.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "restorationId", - "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/assistant": { - "post": { - "summary": "Create assistant query", - "operationId": "assistantChat", - "tags": [ - "assistant" - ], - "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", - "responses": { - "200": { - "description": "Text", - "content": { - "text\/plain": { - "schema": { - "type": "string" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "console", - "demo": "assistant\/chat.md", - "rate-limit": 15, - "rate-time": 3600, - "rate-key": "userId:{userId}", - "scope": "assistant.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prompt": { - "description": "Prompt. A string containing questions asked to the AI assistant.", - "type": "string", - "example": "<PROMPT>" - } - }, - "required": [ - "prompt" - ] - } - } - } - } - } - }, - "\/console\/campaigns\/{campaignId}": { - "get": { - "summary": "Get campaign details", - "operationId": "consoleGetCampaign", - "tags": [ - "console" - ], - "description": "Receive the details of a campaign using its ID.", - "responses": { - "201": { - "description": "Campaign", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/campaign" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-campaign.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "campaignId", - "description": "ID of the campaign", - "required": true, - "schema": { - "type": "string", - "example": "<CAMPAIGN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/coupons\/{couponId}": { - "get": { - "summary": "Get coupon details", - "operationId": "consoleGetCoupon", - "tags": [ - "console" - ], - "description": "Get the details of a coupon using it's coupon ID.", - "responses": { - "201": { - "description": "Coupon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/coupon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-coupon.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "couponId", - "description": "ID of the coupon", - "required": true, - "schema": { - "type": "string", - "example": "<COUPON_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/databases": { - "get": { - "summary": "List databases", - "operationId": "consoleListDatabases", - "tags": [ - "console" - ], - "description": "Get a list of all the project's databases. You can use the query params to filter your results. This returns every database across all types and product APIs in a single call.\n", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/list-databases.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/console\/oauth2-providers": { - "get": { - "summary": "List OAuth2 providers", - "operationId": "consoleListOAuth2Providers", - "tags": [ - "console" - ], - "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", - "responses": { - "200": { - "description": "Console OAuth2 Providers List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "console", - "demo": "console\/list-o-auth-2-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/console\/plans": { - "get": { - "summary": "Get plans", - "operationId": "consoleGetPlans", - "tags": [ - "console" - ], - "description": "Return a list of all available plans.", - "responses": { - "200": { - "description": "Billing plan list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingPlanList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-plans.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "platform", - "description": "Platform type", - "required": false, - "schema": { - "type": "string", - "example": "appwrite", - "title": "Platform", - "oneOf": [ - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "imagine" - ], - "title": "imagine" - } - ], - "default": "appwrite" - }, - "in": "query" - } - ] - } - }, - "\/console\/plans\/{planId}": { - "get": { - "summary": "Get plan", - "operationId": "consoleGetPlan", - "tags": [ - "console" - ], - "description": "Get the details of a plan using its plan ID.", - "responses": { - "200": { - "description": "billingPlan", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingPlan" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-plan.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "planId", - "description": "Plan id", - "required": true, - "schema": { - "type": "string", - "example": "<PLAN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/postgres-extensions": { - "get": { - "summary": "List Postgres extensions", - "operationId": "consoleListPostgresExtensions", - "tags": [ - "console" - ], - "description": "Get the catalog of Postgres extensions that can be installed on a dedicated Postgres database.\n", - "responses": { - "200": { - "description": "Postgres extensions list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/postgresExtensionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/list-postgres-extensions.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ] - } - }, - "\/console\/programs\/{programId}": { - "get": { - "summary": "Get program details", - "operationId": "consoleGetProgram", - "tags": [ - "console" - ], - "description": "Receive the details of a program using its ID.", - "responses": { - "201": { - "description": "Program", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/program" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-program.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "programId", - "description": "ID of the program", - "required": true, - "schema": { - "type": "string", - "example": "<PROGRAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/programs\/{programId}\/memberships": { - "post": { - "summary": "Create program membership", - "operationId": "consoleCreateProgramMembership", - "tags": [ - "console" - ], - "description": "Create a new membership for an account to a program.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/create-program-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "programId", - "description": "ID of the program", - "required": true, - "schema": { - "type": "string", - "example": "<PROGRAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/console\/regions": { - "get": { - "summary": "List Regions", - "operationId": "consoleListRegions", - "tags": [ - "console" - ], - "description": "Get all available regions for the console.", - "responses": { - "200": { - "description": "Regions list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/list-regions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ] - } - }, - "\/console\/resources": { - "get": { - "summary": "Check resource ID availability", - "operationId": "consoleGetResource", - "tags": [ - "console" - ], - "description": "Check if a resource ID is available.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-resource.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "value", - "description": "Resource value.", - "required": true, - "schema": { - "type": "string", - "example": "<VALUE>" - }, - "in": "query" - }, - { - "name": "type", - "description": "Resource type.", - "required": true, - "schema": { - "type": "string", - "example": "rules", - "title": "ConsoleResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "rules" - ], - "title": "rules" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/console\/scopes\/organization": { - "get": { - "summary": "List organization scopes", - "operationId": "consoleListOrganizationScopes", - "tags": [ - "console" - ], - "description": "List all scopes available for organization API keys, along with a description for each scope.", - "responses": { - "200": { - "description": "Console Key Scopes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleKeyScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "console", - "demo": "console\/list-organization-scopes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/console\/scopes\/project": { - "get": { - "summary": "List project scopes", - "operationId": "consoleListProjectScopes", - "tags": [ - "console" - ], - "description": "List all scopes available for project API keys, along with a description for each scope.", - "responses": { - "200": { - "description": "Console Key Scopes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleKeyScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "console", - "demo": "console\/list-project-scopes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/console\/sources": { - "post": { - "summary": "Create source", - "operationId": "consoleCreateSource", - "tags": [ - "console" - ], - "description": "Create a new source.", - "responses": { - "201": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/create-source.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ref": { - "description": "Ref param", - "type": "string", - "example": "<REF>", - "nullable": true - }, - "referrer": { - "description": "Referrer", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "utmSource": { - "description": "Utm source", - "type": "string", - "example": "<UTM_SOURCE>", - "nullable": true - }, - "utmCampaign": { - "description": "Utm campaign", - "type": "string", - "example": "<UTM_CAMPAIGN>", - "nullable": true - }, - "utmMedium": { - "description": "Utm medium", - "type": "string", - "example": "<UTM_MEDIUM>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/console\/suggestions\/columns": { - "get": { - "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", - "operationId": "consoleSuggestColumns", - "tags": [ - "console" - ], - "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", - "responses": { - "200": { - "description": "Columns List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/suggest-columns.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "query" - }, - { - "name": "context", - "description": "Optional user provided context to refine suggestions.", - "required": false, - "schema": { - "type": "string", - "example": "<CONTEXT>" - }, - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 3 - }, - "in": "query" - }, - { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 7 - }, - "in": "query" - } - ] - } - }, - "\/console\/suggestions\/indexes": { - "get": { - "summary": "Get index suggestions for table columns, using database context", - "operationId": "consoleSuggestIndexes", - "tags": [ - "console" - ], - "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", - "responses": { - "200": { - "description": "Column Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/suggest-indexes.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 1 - }, - "in": "query" - }, - { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 4 - }, - "in": "query" - } - ] - } - }, - "\/console\/suggestions\/queries": { - "get": { - "summary": "Get query suggestions for a list resource from free-text intent", - "operationId": "consoleSuggestQueries", - "tags": [ - "console" - ], - "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/suggest-queries.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resource", - "description": "Resource to generate queries for.", - "required": true, - "schema": { - "type": "string", - "example": "activities", - "title": "QuerySuggestionResource", - "oneOf": [ - { - "type": "string", - "enum": [ - "activities" - ], - "title": "activities" - }, - { - "type": "string", - "enum": [ - "activityevents" - ], - "title": "activity_events" - }, - { - "type": "string", - "enum": [ - "archives" - ], - "title": "archives" - }, - { - "type": "string", - "enum": [ - "credits" - ], - "title": "credits" - }, - { - "type": "string", - "enum": [ - "dnsrecords" - ], - "title": "dns_records" - }, - { - "type": "string", - "enum": [ - "domains" - ], - "title": "domains" - }, - { - "type": "string", - "enum": [ - "invoices" - ], - "title": "invoices" - }, - { - "type": "string", - "enum": [ - "paymentmethods" - ], - "title": "payment_methods" - }, - { - "type": "string", - "enum": [ - "policies" - ], - "title": "policies" - }, - { - "type": "string", - "enum": [ - "projects" - ], - "title": "projects" - }, - { - "type": "string", - "enum": [ - "restorations" - ], - "title": "restorations" - }, - { - "type": "string", - "enum": [ - "teamaggregations" - ], - "title": "team_aggregations" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tables" - ], - "title": "tables" - }, - { - "type": "string", - "enum": [ - "rows" - ], - "title": "rows" - }, - { - "type": "string", - "enum": [ - "schedules" - ], - "title": "schedules" - }, - { - "type": "string", - "enum": [ - "platforms" - ], - "title": "platforms" - }, - { - "type": "string", - "enum": [ - "keys" - ], - "title": "keys" - }, - { - "type": "string", - "enum": [ - "webhooks" - ], - "title": "webhooks" - }, - { - "type": "string", - "enum": [ - "notifications" - ], - "title": "notifications" - }, - { - "type": "string", - "enum": [ - "certificates" - ], - "title": "certificates" - }, - { - "type": "string", - "enum": [ - "realtime" - ], - "title": "realtime" - }, - { - "type": "string", - "enum": [ - "rules" - ], - "title": "rules" - }, - { - "type": "string", - "enum": [ - "installations" - ], - "title": "installations" - }, - { - "type": "string", - "enum": [ - "repositories" - ], - "title": "repositories" - }, - { - "type": "string", - "enum": [ - "vcscomments" - ], - "title": "vcs_comments" - }, - { - "type": "string", - "enum": [ - "vcscommentlocks" - ], - "title": "vcs_comment_locks" - }, - { - "type": "string", - "enum": [ - "reports" - ], - "title": "reports" - }, - { - "type": "string", - "enum": [ - "insights" - ], - "title": "insights" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "cache" - ], - "title": "cache" - }, - { - "type": "string", - "enum": [ - "tokens" - ], - "title": "tokens" - }, - { - "type": "string", - "enum": [ - "authenticators" - ], - "title": "authenticators" - }, - { - "type": "string", - "enum": [ - "challenges" - ], - "title": "challenges" - }, - { - "type": "string", - "enum": [ - "sessions" - ], - "title": "sessions" - }, - { - "type": "string", - "enum": [ - "identities" - ], - "title": "identities" - }, - { - "type": "string", - "enum": [ - "memberships" - ], - "title": "memberships" - }, - { - "type": "string", - "enum": [ - "buckets" - ], - "title": "buckets" - }, - { - "type": "string", - "enum": [ - "providers" - ], - "title": "providers" - }, - { - "type": "string", - "enum": [ - "messages" - ], - "title": "messages" - }, - { - "type": "string", - "enum": [ - "pushledger" - ], - "title": "push_ledger" - }, - { - "type": "string", - "enum": [ - "topics" - ], - "title": "topics" - }, - { - "type": "string", - "enum": [ - "subscribers" - ], - "title": "subscribers" - }, - { - "type": "string", - "enum": [ - "targets" - ], - "title": "targets" - }, - { - "type": "string", - "enum": [ - "presencelogs" - ], - "title": "presence_logs" - }, - { - "type": "string", - "enum": [ - "companies" - ], - "title": "companies" - }, - { - "type": "string", - "enum": [ - "billingaddresses" - ], - "title": "billing_addresses" - }, - { - "type": "string", - "enum": [ - "billingaggregations" - ], - "title": "billing_aggregations" - }, - { - "type": "string", - "enum": [ - "billingaggregationresources" - ], - "title": "billing_aggregation_resources" - }, - { - "type": "string", - "enum": [ - "billingteamprojectaggregations" - ], - "title": "billing_team_project_aggregations" - }, - { - "type": "string", - "enum": [ - "billingteamaggregations_v2" - ], - "title": "billing_team_aggregations_v2" - }, - { - "type": "string", - "enum": [ - "billingteamaggregationresources" - ], - "title": "billing_team_aggregation_resources" - }, - { - "type": "string", - "enum": [ - "billinginvoices_v2" - ], - "title": "billing_invoices_v2" - }, - { - "type": "string", - "enum": [ - "billingaddons" - ], - "title": "billing_addons" - }, - { - "type": "string", - "enum": [ - "alerts" - ], - "title": "alerts" - }, - { - "type": "string", - "enum": [ - "payments" - ], - "title": "payments" - }, - { - "type": "string", - "enum": [ - "billingdiscounts" - ], - "title": "billing_discounts" - }, - { - "type": "string", - "enum": [ - "resourcesdeleted" - ], - "title": "resources_deleted" - }, - { - "type": "string", - "enum": [ - "sources" - ], - "title": "sources" - }, - { - "type": "string", - "enum": [ - "deals" - ], - "title": "deals" - }, - { - "type": "string", - "enum": [ - "blocks" - ], - "title": "blocks" - }, - { - "type": "string", - "enum": [ - "threats" - ], - "title": "threats" - }, - { - "type": "string", - "enum": [ - "feedbacks" - ], - "title": "feedbacks" - }, - { - "type": "string", - "enum": [ - "disputes" - ], - "title": "disputes" - }, - { - "type": "string", - "enum": [ - "wafrules" - ], - "title": "waf_rules" - }, - { - "type": "string", - "enum": [ - "sh_installations" - ], - "title": "sh_installations" - }, - { - "type": "string", - "enum": [ - "migrationdatabases" - ], - "title": "migration_databases" - }, - { - "type": "string", - "enum": [ - "migrationprojects" - ], - "title": "migration_projects" - }, - { - "type": "string", - "enum": [ - "affiliatelinks" - ], - "title": "affiliate_links" - }, - { - "type": "string", - "enum": [ - "affiliatereferrals" - ], - "title": "affiliate_referrals" - }, - { - "type": "string", - "enum": [ - "affiliaterewards" - ], - "title": "affiliate_rewards" - }, - { - "type": "string", - "enum": [ - "apps" - ], - "title": "apps" - }, - { - "type": "string", - "enum": [ - "appsecrets" - ], - "title": "app_secrets" - }, - { - "type": "string", - "enum": [ - "appinstallations" - ], - "title": "app_installations" - }, - { - "type": "string", - "enum": [ - "appkeys" - ], - "title": "app_keys" - }, - { - "type": "string", - "enum": [ - "oauth2grants" - ], - "title": "oauth2_grants" - }, - { - "type": "string", - "enum": [ - "oauth2consents" - ], - "title": "oauth2_consents" - }, - { - "type": "string", - "enum": [ - "oauth2tokens" - ], - "title": "oauth2_tokens" - }, - { - "type": "string", - "enum": [ - "attributes" - ], - "title": "attributes" - }, - { - "type": "string", - "enum": [ - "indexes" - ], - "title": "indexes" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "deployments" - ], - "title": "deployments" - }, - { - "type": "string", - "enum": [ - "variables" - ], - "title": "variables" - }, - { - "type": "string", - "enum": [ - "migrations" - ], - "title": "migrations" - }, - { - "type": "string", - "enum": [ - "resourcetokens" - ], - "title": "resource_tokens" - }, - { - "type": "string", - "enum": [ - "transactions" - ], - "title": "transactions" - }, - { - "type": "string", - "enum": [ - "transactionlogs" - ], - "title": "transaction_logs" - }, - { - "type": "string", - "enum": [ - "analyticsproperties" - ], - "title": "analytics_properties" - }, - { - "type": "string", - "enum": [ - "dedicateddatabases" - ], - "title": "dedicated_databases" - }, - { - "type": "string", - "enum": [ - "dedicateddatabaseconfigs" - ], - "title": "dedicated_database_configs" - }, - { - "type": "string", - "enum": [ - "dedicateddatabaseruntimes" - ], - "title": "dedicated_database_runtimes" - }, - { - "type": "string", - "enum": [ - "dedicateddatabaseoperations" - ], - "title": "dedicated_database_operations" - }, - { - "type": "string", - "enum": [ - "dedicateddatabasebackups" - ], - "title": "dedicated_database_backups" - }, - { - "type": "string", - "enum": [ - "dedicateddatabaserestorations" - ], - "title": "dedicated_database_restorations" - }, - { - "type": "string", - "enum": [ - "dedicateddatabasebranches" - ], - "title": "dedicated_database_branches" - } - ] - }, - "in": "query" - }, - { - "name": "input", - "description": "Natural language query intent used to generate filters\/sorting\/pagination.", - "required": true, - "schema": { - "type": "string", - "example": "<INPUT>" - }, - "in": "query" - }, - { - "name": "databaseId", - "description": "Database ID. Required when resource is `tables` or `rows`.", - "required": false, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID. Required when resource is `rows`.", - "required": false, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "query" - } - ] - } - }, - "\/console\/templates\/email\/{templateId}": { - "get": { - "summary": "Get email template", - "operationId": "consoleGetEmailTemplate", - "tags": [ - "console" - ], - "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", - "responses": { - "200": { - "description": "EmailTemplate", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "console\/get-email-template.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", - "required": true, - "schema": { - "type": "string", - "example": "verification", - "title": "ProjectEmailTemplateId", - "oneOf": [ - { - "type": "string", - "enum": [ - "verification" - ], - "title": "verification" - }, - { - "type": "string", - "enum": [ - "magicSession" - ], - "title": "magicSession" - }, - { - "type": "string", - "enum": [ - "recovery" - ], - "title": "recovery" - }, - { - "type": "string", - "enum": [ - "invitation" - ], - "title": "invitation" - }, - { - "type": "string", - "enum": [ - "mfaChallenge" - ], - "title": "mfaChallenge" - }, - { - "type": "string", - "enum": [ - "sessionAlert" - ], - "title": "sessionAlert" - }, - { - "type": "string", - "enum": [ - "otpSession" - ], - "title": "otpSession" - }, - { - "type": "string", - "enum": [ - "otpVerification" - ], - "title": "otpVerification" - }, - { - "type": "string", - "enum": [ - "otpRecovery" - ], - "title": "otpRecovery" - } - ] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "schema": { - "type": "string", - "example": "af", - "title": "ProjectEmailTemplateLocale", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "af" - }, - { - "type": "string", - "enum": [ - "ar-ae" - ], - "title": "ar-ae" - }, - { - "type": "string", - "enum": [ - "ar-bh" - ], - "title": "ar-bh" - }, - { - "type": "string", - "enum": [ - "ar-dz" - ], - "title": "ar-dz" - }, - { - "type": "string", - "enum": [ - "ar-eg" - ], - "title": "ar-eg" - }, - { - "type": "string", - "enum": [ - "ar-iq" - ], - "title": "ar-iq" - }, - { - "type": "string", - "enum": [ - "ar-jo" - ], - "title": "ar-jo" - }, - { - "type": "string", - "enum": [ - "ar-kw" - ], - "title": "ar-kw" - }, - { - "type": "string", - "enum": [ - "ar-lb" - ], - "title": "ar-lb" - }, - { - "type": "string", - "enum": [ - "ar-ly" - ], - "title": "ar-ly" - }, - { - "type": "string", - "enum": [ - "ar-ma" - ], - "title": "ar-ma" - }, - { - "type": "string", - "enum": [ - "ar-om" - ], - "title": "ar-om" - }, - { - "type": "string", - "enum": [ - "ar-qa" - ], - "title": "ar-qa" - }, - { - "type": "string", - "enum": [ - "ar-sa" - ], - "title": "ar-sa" - }, - { - "type": "string", - "enum": [ - "ar-sy" - ], - "title": "ar-sy" - }, - { - "type": "string", - "enum": [ - "ar-tn" - ], - "title": "ar-tn" - }, - { - "type": "string", - "enum": [ - "ar-ye" - ], - "title": "ar-ye" - }, - { - "type": "string", - "enum": [ - "as" - ], - "title": "as" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "az" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "be" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "bg" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "bh" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "bn" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "bs" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "ca" - }, - { - "type": "string", - "enum": [ - "cs" - ], - "title": "cs" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "cy" - }, - { - "type": "string", - "enum": [ - "da" - ], - "title": "da" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "de" - }, - { - "type": "string", - "enum": [ - "de-at" - ], - "title": "de-at" - }, - { - "type": "string", - "enum": [ - "de-ch" - ], - "title": "de-ch" - }, - { - "type": "string", - "enum": [ - "de-li" - ], - "title": "de-li" - }, - { - "type": "string", - "enum": [ - "de-lu" - ], - "title": "de-lu" - }, - { - "type": "string", - "enum": [ - "el" - ], - "title": "el" - }, - { - "type": "string", - "enum": [ - "en" - ], - "title": "en" - }, - { - "type": "string", - "enum": [ - "en-au" - ], - "title": "en-au" - }, - { - "type": "string", - "enum": [ - "en-bz" - ], - "title": "en-bz" - }, - { - "type": "string", - "enum": [ - "en-ca" - ], - "title": "en-ca" - }, - { - "type": "string", - "enum": [ - "en-gb" - ], - "title": "en-gb" - }, - { - "type": "string", - "enum": [ - "en-ie" - ], - "title": "en-ie" - }, - { - "type": "string", - "enum": [ - "en-jm" - ], - "title": "en-jm" - }, - { - "type": "string", - "enum": [ - "en-nz" - ], - "title": "en-nz" - }, - { - "type": "string", - "enum": [ - "en-tt" - ], - "title": "en-tt" - }, - { - "type": "string", - "enum": [ - "en-us" - ], - "title": "en-us" - }, - { - "type": "string", - "enum": [ - "en-za" - ], - "title": "en-za" - }, - { - "type": "string", - "enum": [ - "eo" - ], - "title": "eo" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "es" - }, - { - "type": "string", - "enum": [ - "es-ar" - ], - "title": "es-ar" - }, - { - "type": "string", - "enum": [ - "es-bo" - ], - "title": "es-bo" - }, - { - "type": "string", - "enum": [ - "es-cl" - ], - "title": "es-cl" - }, - { - "type": "string", - "enum": [ - "es-co" - ], - "title": "es-co" - }, - { - "type": "string", - "enum": [ - "es-cr" - ], - "title": "es-cr" - }, - { - "type": "string", - "enum": [ - "es-do" - ], - "title": "es-do" - }, - { - "type": "string", - "enum": [ - "es-ec" - ], - "title": "es-ec" - }, - { - "type": "string", - "enum": [ - "es-gt" - ], - "title": "es-gt" - }, - { - "type": "string", - "enum": [ - "es-hn" - ], - "title": "es-hn" - }, - { - "type": "string", - "enum": [ - "es-mx" - ], - "title": "es-mx" - }, - { - "type": "string", - "enum": [ - "es-ni" - ], - "title": "es-ni" - }, - { - "type": "string", - "enum": [ - "es-pa" - ], - "title": "es-pa" - }, - { - "type": "string", - "enum": [ - "es-pe" - ], - "title": "es-pe" - }, - { - "type": "string", - "enum": [ - "es-pr" - ], - "title": "es-pr" - }, - { - "type": "string", - "enum": [ - "es-py" - ], - "title": "es-py" - }, - { - "type": "string", - "enum": [ - "es-sv" - ], - "title": "es-sv" - }, - { - "type": "string", - "enum": [ - "es-uy" - ], - "title": "es-uy" - }, - { - "type": "string", - "enum": [ - "es-ve" - ], - "title": "es-ve" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "et" - }, - { - "type": "string", - "enum": [ - "eu" - ], - "title": "eu" - }, - { - "type": "string", - "enum": [ - "fa" - ], - "title": "fa" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "fi" - }, - { - "type": "string", - "enum": [ - "fo" - ], - "title": "fo" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "fr" - }, - { - "type": "string", - "enum": [ - "fr-be" - ], - "title": "fr-be" - }, - { - "type": "string", - "enum": [ - "fr-ca" - ], - "title": "fr-ca" - }, - { - "type": "string", - "enum": [ - "fr-ch" - ], - "title": "fr-ch" - }, - { - "type": "string", - "enum": [ - "fr-lu" - ], - "title": "fr-lu" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "ga" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "gd" - }, - { - "type": "string", - "enum": [ - "he" - ], - "title": "he" - }, - { - "type": "string", - "enum": [ - "hi" - ], - "title": "hi" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "hr" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "hu" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "id" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "is" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "it" - }, - { - "type": "string", - "enum": [ - "it-ch" - ], - "title": "it-ch" - }, - { - "type": "string", - "enum": [ - "ja" - ], - "title": "ja" - }, - { - "type": "string", - "enum": [ - "ji" - ], - "title": "ji" - }, - { - "type": "string", - "enum": [ - "ko" - ], - "title": "ko" - }, - { - "type": "string", - "enum": [ - "ku" - ], - "title": "ku" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "lt" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "lv" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "mk" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "ml" - }, - { - "type": "string", - "enum": [ - "ms" - ], - "title": "ms" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "mt" - }, - { - "type": "string", - "enum": [ - "nb" - ], - "title": "nb" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "ne" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "nl" - }, - { - "type": "string", - "enum": [ - "nl-be" - ], - "title": "nl-be" - }, - { - "type": "string", - "enum": [ - "nn" - ], - "title": "nn" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "no" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "pa" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "pl" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "pt" - }, - { - "type": "string", - "enum": [ - "pt-br" - ], - "title": "pt-br" - }, - { - "type": "string", - "enum": [ - "rm" - ], - "title": "rm" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "ro" - }, - { - "type": "string", - "enum": [ - "ro-md" - ], - "title": "ro-md" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "ru" - }, - { - "type": "string", - "enum": [ - "ru-md" - ], - "title": "ru-md" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "sb" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "sk" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "sl" - }, - { - "type": "string", - "enum": [ - "sq" - ], - "title": "sq" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "sr" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "sv" - }, - { - "type": "string", - "enum": [ - "sv-fi" - ], - "title": "sv-fi" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "th" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "tn" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "tr" - }, - { - "type": "string", - "enum": [ - "ts" - ], - "title": "ts" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "ua" - }, - { - "type": "string", - "enum": [ - "ur" - ], - "title": "ur" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "ve" - }, - { - "type": "string", - "enum": [ - "vi" - ], - "title": "vi" - }, - { - "type": "string", - "enum": [ - "xh" - ], - "title": "xh" - }, - { - "type": "string", - "enum": [ - "zh-cn" - ], - "title": "zh-cn" - }, - { - "type": "string", - "enum": [ - "zh-hk" - ], - "title": "zh-hk" - }, - { - "type": "string", - "enum": [ - "zh-sg" - ], - "title": "zh-sg" - }, - { - "type": "string", - "enum": [ - "zh-tw" - ], - "title": "zh-tw" - }, - { - "type": "string", - "enum": [ - "zu" - ], - "title": "zu" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/console\/variables": { - "get": { - "summary": "Get variables", - "operationId": "consoleVariables", - "tags": [ - "console" - ], - "description": "Get all Environment Variables that are relevant for the console.", - "responses": { - "200": { - "description": "Console Variables", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleVariables" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "console", - "demo": "console\/variables.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ] - } - }, - "\/databases": { - "get": { - "summary": "List databases", - "operationId": "databasesList", - "tags": [ - "databases" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - }, - "methods": [ - { - "name": "list", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "databasesCreate", - "tags": [ - "databases" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - }, - "methods": [ - { - "name": "create", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/databases\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "databasesListTransactions", - "tags": [ - "databases" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTransactions" - }, - "auth": { - "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" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "databasesCreateTransaction", - "tags": [ - "databases" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/databases\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "databasesGetTransaction", - "tags": [ - "databases" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "databasesUpdateTransaction", - "tags": [ - "databases" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "databasesDeleteTransaction", - "tags": [ - "databases" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTransaction" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "databasesCreateOperations", - "tags": [ - "databases" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createOperations" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "databasesGet", - "tags": [ - "databases" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - }, - "methods": [ - { - "name": "get", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "databasesUpdate", - "tags": [ - "databases" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - }, - "methods": [ - { - "name": "update", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "databasesDelete", - "tags": [ - "databases" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - }, - "methods": [ - { - "name": "delete", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "databasesListCollections", - "tags": [ - "databases" - ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Collections List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collectionList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTables" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create collections", - "operationId": "databasesCreateCollection", - "tags": [ - "databases" - ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTable" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "attributes": { - "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "collectionId", - "name" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "databasesGetCollection", - "tags": [ - "databases" - ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTable" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update collection", - "operationId": "databasesUpdateCollection", - "tags": [ - "databases" - ], - "description": "Update a collection by its unique ID.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTable" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete collection", - "operationId": "databasesDeleteCollection", - "tags": [ - "databases" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTable" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { - "get": { - "summary": "List attributes", - "operationId": "databasesListAttributes", - "tags": [ - "databases" - ], - "description": "List attributes in the collection.", - "responses": { - "200": { - "description": "Attributes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/list-attributes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listColumns" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { - "post": { - "summary": "Create bigint attribute", - "operationId": "databasesCreateBigIntAttribute", - "tags": [ - "databases" - ], - "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-big-int-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBigIntColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { - "patch": { - "summary": "Update bigint attribute", - "operationId": "databasesUpdateBigIntAttribute", - "tags": [ - "databases" - ], - "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-big-int-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBigIntColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { - "post": { - "summary": "Create boolean attribute", - "operationId": "databasesCreateBooleanAttribute", - "tags": [ - "databases" - ], - "description": "Create a boolean attribute.\n", - "responses": { - "202": { - "description": "AttributeBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-boolean-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBooleanColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { - "patch": { - "summary": "Update boolean attribute", - "operationId": "databasesUpdateBooleanAttribute", - "tags": [ - "databases" - ], - "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-boolean-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBooleanColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { - "post": { - "summary": "Create datetime attribute", - "operationId": "databasesCreateDatetimeAttribute", - "tags": [ - "databases" - ], - "description": "Create a date time attribute according to the ISO 8601 standard.", - "responses": { - "202": { - "description": "AttributeDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-datetime-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createDatetimeColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { - "patch": { - "summary": "Update datetime attribute", - "operationId": "databasesUpdateDatetimeAttribute", - "tags": [ - "databases" - ], - "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-datetime-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateDatetimeColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { - "post": { - "summary": "Create email attribute", - "operationId": "databasesCreateEmailAttribute", - "tags": [ - "databases" - ], - "description": "Create an email attribute.\n", - "responses": { - "202": { - "description": "AttributeEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-email-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEmailColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { - "patch": { - "summary": "Update email attribute", - "operationId": "databasesUpdateEmailAttribute", - "tags": [ - "databases" - ], - "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-email-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEmailColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { - "post": { - "summary": "Create enum attribute", - "operationId": "databasesCreateEnumAttribute", - "tags": [ - "databases" - ], - "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", - "responses": { - "202": { - "description": "AttributeEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-enum-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEnumColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "elements": { - "description": "Array of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "elements", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { - "patch": { - "summary": "Update enum attribute", - "operationId": "databasesUpdateEnumAttribute", - "tags": [ - "databases" - ], - "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-enum-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEnumColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "elements": { - "description": "Updated list of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { - "post": { - "summary": "Create float attribute", - "operationId": "databasesCreateFloatAttribute", - "tags": [ - "databases" - ], - "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-float-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createFloatColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { - "patch": { - "summary": "Update float attribute", - "operationId": "databasesUpdateFloatAttribute", - "tags": [ - "databases" - ], - "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-float-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateFloatColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { - "post": { - "summary": "Create integer attribute", - "operationId": "databasesCreateIntegerAttribute", - "tags": [ - "databases" - ], - "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-integer-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIntegerColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { - "patch": { - "summary": "Update integer attribute", - "operationId": "databasesUpdateIntegerAttribute", - "tags": [ - "databases" - ], - "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-integer-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIntegerColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { - "post": { - "summary": "Create IP address attribute", - "operationId": "databasesCreateIpAttribute", - "tags": [ - "databases" - ], - "description": "Create IP address attribute.\n", - "responses": { - "202": { - "description": "AttributeIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeIp" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-ip-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIpColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { - "patch": { - "summary": "Update IP address attribute", - "operationId": "databasesUpdateIpAttribute", - "tags": [ - "databases" - ], - "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeIp" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-ip-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIpColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { - "post": { - "summary": "Create line attribute", - "operationId": "databasesCreateLineAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric line attribute.", - "responses": { - "202": { - "description": "AttributeLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLine" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-line-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createLineColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { - "patch": { - "summary": "Update line attribute", - "operationId": "databasesUpdateLineAttribute", - "tags": [ - "databases" - ], - "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLine" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-line-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateLineColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { - "post": { - "summary": "Create longtext attribute", - "operationId": "databasesCreateLongtextAttribute", - "tags": [ - "databases" - ], - "description": "Create a longtext attribute.\n", - "responses": { - "202": { - "description": "AttributeLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-longtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createLongtextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { - "patch": { - "summary": "Update longtext attribute", - "operationId": "databasesUpdateLongtextAttribute", - "tags": [ - "databases" - ], - "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-longtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateLongtextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { - "post": { - "summary": "Create mediumtext attribute", - "operationId": "databasesCreateMediumtextAttribute", - "tags": [ - "databases" - ], - "description": "Create a mediumtext attribute.\n", - "responses": { - "202": { - "description": "AttributeMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-mediumtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createMediumtextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext attribute", - "operationId": "databasesUpdateMediumtextAttribute", - "tags": [ - "databases" - ], - "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-mediumtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateMediumtextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { - "post": { - "summary": "Create point attribute", - "operationId": "databasesCreatePointAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric point attribute.", - "responses": { - "202": { - "description": "AttributePoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePoint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-point-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPointColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { - "patch": { - "summary": "Update point attribute", - "operationId": "databasesUpdatePointAttribute", - "tags": [ - "databases" - ], - "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributePoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePoint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-point-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updatePointColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { - "post": { - "summary": "Create polygon attribute", - "operationId": "databasesCreatePolygonAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric polygon attribute.", - "responses": { - "202": { - "description": "AttributePolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-polygon-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPolygonColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { - "patch": { - "summary": "Update polygon attribute", - "operationId": "databasesUpdatePolygonAttribute", - "tags": [ - "databases" - ], - "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributePolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-polygon-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updatePolygonColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { - "post": { - "summary": "Create relationship attribute", - "operationId": "databasesCreateRelationshipAttribute", - "tags": [ - "databases" - ], - "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", - "responses": { - "202": { - "description": "AttributeRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-relationship-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRelationshipColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "relatedCollectionId": { - "description": "Related Collection ID.", - "type": "string", - "example": "<RELATED_COLLECTION_ID>" - }, - "type": { - "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", - "type": "string", - "example": "oneToOne", - "title": "RelationshipType", - "oneOf": [ - { - "type": "string", - "enum": [ - "oneToOne" - ], - "title": "oneToOne" - }, - { - "type": "string", - "enum": [ - "manyToOne" - ], - "title": "manyToOne" - }, - { - "type": "string", - "enum": [ - "manyToMany" - ], - "title": "manyToMany" - }, - { - "type": "string", - "enum": [ - "oneToMany" - ], - "title": "oneToMany" - } - ] - }, - "twoWay": { - "description": "Is Two Way?", - "type": "boolean", - "default": false, - "example": false - }, - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "twoWayKey": { - "description": "Two Way Attribute Key.", - "type": "string", - "example": "<TWO_WAY_KEY>", - "nullable": true - }, - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "default": "restrict", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - } - }, - "required": [ - "relatedCollectionId", - "type" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", - "tags": [ - "databases" - ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", - "responses": { - "200": { - "description": "AttributeRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-relationship-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { - "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", - "tags": [ - "databases" - ], - "description": "Create a string attribute.\n", - "responses": { - "202": { - "description": "AttributeString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-string-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Attribute size for text attributes, in number of characters.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { - "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", - "tags": [ - "databases" - ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-string-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the string attribute.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { - "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", - "tags": [ - "databases" - ], - "description": "Create a text attribute.\n", - "responses": { - "202": { - "description": "AttributeText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeText" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-text-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { - "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", - "tags": [ - "databases" - ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeText" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-text-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { - "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", - "tags": [ - "databases" - ], - "description": "Create a URL attribute.\n", - "responses": { - "202": { - "description": "AttributeURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-url-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { - "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", - "tags": [ - "databases" - ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-url-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { - "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", - "tags": [ - "databases" - ], - "description": "Create a varchar attribute.\n", - "responses": { - "202": { - "description": "AttributeVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-varchar-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createVarcharColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { - "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", - "tags": [ - "databases" - ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-varchar-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateVarcharColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the varchar attribute.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", - "tags": [ - "databases" - ], - "description": "Get attribute by ID.", - "responses": { - "200": { - "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", - "content": { - "application\/json": { - "schema": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/get-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete attribute", - "operationId": "databasesDeleteAttribute", - "tags": [ - "databases" - ], - "description": "Deletes an attribute.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/delete-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "databasesListDocuments", - "tags": [ - "databases" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listRows" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "databasesCreateDocument", - "tags": [ - "databases" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - }, - "methods": [ - { - "name": "createDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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", - "platforms": [ - "console", - "server" - ], - "summary": "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert documents", - "operationId": "databasesUpsertDocuments", - "tags": [ - "databases" - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", - "responses": { - "201": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRows" - }, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", - "demo": "databases\/upsert-documents.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRows" - } - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "documents" - ] - } - } - } - } - }, - "patch": { - "summary": "Update documents", - "operationId": "databasesUpdateDocuments", - "tags": [ - "databases" - ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRows" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected documents", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete documents", - "operationId": "databasesDeleteDocuments", - "tags": [ - "databases" - ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteRows" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "databasesGetDocument", - "tags": [ - "databases" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "databasesUpsertDocument", - "tags": [ - "databases" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" - }, - "methods": [ - { - "name": "upsertDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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#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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "databasesUpdateDocument", - "tags": [ - "databases" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "databasesDeleteDocument", - "tags": [ - "databases" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteRow" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "databasesDecrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Decrement a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.decrementRowColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "databasesIncrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Increment a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.incrementRowColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "databasesListIndexes", - "tags": [ - "databases" - ], - "description": "List indexes in the collection.", - "responses": { - "200": { - "description": "Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/indexList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listIndexes" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create index", - "operationId": "databasesCreateIndex", - "tags": [ - "databases" - ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIndex" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "DatabasesIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - }, - { - "type": "string", - "enum": [ - "spatial" - ], - "title": "spatial" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "databasesGetIndex", - "tags": [ - "databases" - ], - "description": "Get an index by its unique ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getIndex" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "databasesDeleteIndex", - "tags": [ - "databases" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteIndex" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb": { - "get": { - "summary": "List databases", - "operationId": "documentsDBList", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "documentsDBCreate", - "tags": [ - "documentsDB" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/documentsdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "documentsDBListSpecifications", - "tags": [ - "documentsDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/documentsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "documentsDBListTransactions", - "tags": [ - "documentsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "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" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "documentsDBCreateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/documentsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "documentsDBGetTransaction", - "tags": [ - "documentsDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "documentsDBUpdateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "documentsDBDeleteTransaction", - "tags": [ - "documentsDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "documentsDBGet", - "tags": [ - "documentsDB" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "documentsDBUpdate", - "tags": [ - "documentsDB" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "documentsDBDelete", - "tags": [ - "documentsDB" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "documentsDBListCollections", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Collections List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collectionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create collection", - "operationId": "documentsDBCreateCollection", - "tags": [ - "documentsDB" - ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "attributes": { - "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "collectionId", - "name" - ] - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "documentsDBGetCollection", - "tags": [ - "documentsDB" - ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update collection", - "operationId": "documentsDBUpdateCollection", - "tags": [ - "documentsDB" - ], - "description": "Update a collection by its unique ID.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete collection", - "operationId": "documentsDBDeleteCollection", - "tags": [ - "documentsDB" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "documentsDBListDocuments", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "documentsDBCreateDocument", - "tags": [ - "documentsDB" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-documents.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert documents", - "operationId": "documentsDBUpsertDocuments", - "tags": [ - "documentsDB" - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", - "responses": { - "201": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "documentsDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documents" - ] - } - } - } - } - }, - "patch": { - "summary": "Update documents", - "operationId": "documentsDBUpdateDocuments", - "tags": [ - "documentsDB" - ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected documents", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete documents", - "operationId": "documentsDBDeleteDocuments", - "tags": [ - "documentsDB" - ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "documentsDBGetDocument", - "tags": [ - "documentsDB" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "documentsDBUpsertDocument", - "tags": [ - "documentsDB" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "documentsDBUpdateDocument", - "tags": [ - "documentsDB" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "documentsDBDeleteDocument", - "tags": [ - "documentsDB" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "documentsDBDecrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Decrement a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to decrement the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "documentsDBIncrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Increment a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "documentsDBListIndexes", - "tags": [ - "documentsDB" - ], - "description": "List indexes in the collection.", - "responses": { - "200": { - "description": "Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/indexList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create index", - "operationId": "documentsDBCreateIndex", - "tags": [ - "documentsDB" - ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "DocumentsDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "documentsDBGetIndex", - "tags": [ - "documentsDB" - ], - "description": "Get index by ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "documentsDBDeleteIndex", - "tags": [ - "documentsDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "documentsDBCreateFailover", - "tags": [ - "documentsDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "documentsdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "documentsDBListOperations", - "tags": [ - "documentsDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "documentsdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "documentsDBGetReplicas", - "tags": [ - "documentsDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "documentsdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "documentsDBGetStatus", - "tags": [ - "documentsDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains": { - "get": { - "summary": "List domains", - "operationId": "domainsList", - "tags": [ - "domains" - ], - "description": "List all domains registered for this project. This endpoint supports pagination.", - "responses": { - "200": { - "description": "Domains list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create a new domain.", - "operationId": "domainsCreate", - "tags": [ - "domains" - ], - "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", - "responses": { - "201": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team unique ID.", - "type": "string", - "example": "<TEAM_ID>" - }, - "domain": { - "description": "Domain name (e.g. \"example.com\").", - "type": "string", - "example": "example.com" - } - }, - "required": [ - "teamId", - "domain" - ] - } - } - } - } - } - }, - "\/domains\/price": { - "get": { - "summary": "Get domain price", - "operationId": "domainsGetPrice", - "tags": [ - "domains" - ], - "description": "Get the registration price for a domain name.", - "responses": { - "200": { - "description": "DomainPrice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPrice" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": null, - "demo": "domains\/get-price.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "2.0.0", - "replaceWith": "domains.listPrices" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domain", - "description": "Domain name to get price for.", - "required": true, - "schema": { - "type": "string", - "example": "example.com" - }, - "in": "query" - }, - { - "name": "periodYears", - "description": "Number of years to calculate the domain price for. Must be at least 1.", - "required": false, - "schema": { - "type": "integer", - "format": "uint32", - "default": 1 - }, - "in": "query" - }, - { - "name": "registrationType", - "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", - "required": false, - "schema": { - "type": "string", - "example": "new", - "title": "DomainRegistrationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "new" - ], - "title": "new" - }, - { - "type": "string", - "enum": [ - "transfer" - ], - "title": "transfer" - }, - { - "type": "string", - "enum": [ - "renewal" - ], - "title": "renewal" - }, - { - "type": "string", - "enum": [ - "trade" - ], - "title": "trade" - } - ], - "default": "new" - }, - "in": "query" - } - ] - } - }, - "\/domains\/prices": { - "get": { - "summary": "List domain prices", - "operationId": "domainsListPrices", - "tags": [ - "domains" - ], - "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", - "responses": { - "200": { - "description": "Domain prices list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPricesList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list-prices.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domains", - "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "in": "query" - }, - { - "name": "periodYears", - "description": "Number of years to calculate the domain price for. Must be at least 1.", - "required": false, - "schema": { - "type": "integer", - "format": "uint32", - "default": 1 - }, - "in": "query" - }, - { - "name": "registrationType", - "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", - "required": false, - "schema": { - "type": "string", - "example": "new", - "title": "DomainRegistrationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "new" - ], - "title": "new" - }, - { - "type": "string", - "enum": [ - "transfer" - ], - "title": "transfer" - }, - { - "type": "string", - "enum": [ - "renewal" - ], - "title": "renewal" - }, - { - "type": "string", - "enum": [ - "trade" - ], - "title": "trade" - } - ], - "default": "new" - }, - "in": "query" - } - ] - } - }, - "\/domains\/purchases": { - "post": { - "summary": "Create a domain purchase", - "operationId": "domainsCreatePurchase", - "tags": [ - "domains" - ], - "description": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", - "responses": { - "201": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-purchase.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Fully qualified domain name to purchase (for example, example.com).", - "type": "string", - "example": "example.com" - }, - "organizationId": { - "description": "Team ID that will own the domain.", - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "firstName": { - "description": "Registrant first name used for domain registration.", - "type": "string", - "example": "<FIRST_NAME>" - }, - "lastName": { - "description": "Registrant last name used for domain registration.", - "type": "string", - "example": "<LAST_NAME>" - }, - "email": { - "description": "Registrant email address for registration and notices.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phone": { - "description": "Registrant phone number in E.164 format (for example, +15555551234).", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "billingAddressId": { - "description": "Billing address ID used for registration contact details.", - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - }, - "addressLine3": { - "description": "Additional address line for the registrant (line 3).", - "type": "string", - "default": "", - "example": "<ADDRESS_LINE3>" - }, - "companyName": { - "description": "Company or organization name for the registrant.", - "type": "string", - "default": "", - "example": "<COMPANY_NAME>" - }, - "periodYears": { - "description": "Registration term in years (1-10).", - "type": "integer", - "default": 1, - "example": 1, - "format": "int32" - }, - "autoRenewal": { - "description": "Whether the domain should renew automatically after purchase.", - "type": "boolean", - "default": true, - "example": false - }, - "paymentMethodId": { - "description": "Payment method ID to authorize and capture the purchase.", - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "domain", - "organizationId", - "firstName", - "lastName", - "email", - "phone", - "billingAddressId", - "paymentMethodId" - ] - } - } - } - } - } - }, - "\/domains\/purchases\/{invoiceId}": { - "patch": { - "summary": "Confirm a domain purchase", - "operationId": "domainsUpdatePurchase", - "tags": [ - "domains" - ], - "description": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", - "responses": { - "200": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-purchase.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "invoiceId", - "description": "Invoice ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "organizationId": { - "description": "Team ID that owns the domain.", - "type": "string", - "example": "<ORGANIZATION_ID>" - } - }, - "required": [ - "organizationId" - ] - } - } - } - } - } - }, - "\/domains\/suggestions": { - "get": { - "summary": "List domain suggestions", - "operationId": "domainsListSuggestions", - "tags": [ - "domains" - ], - "description": "List domain suggestions.", - "responses": { - "200": { - "description": "Domain suggestions list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainSuggestionsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list-suggestions.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "query", - "description": "Query to find available domains and suggestions. Max length: 256 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<QUERY>" - }, - "in": "query" - }, - { - "name": "tlds", - "description": "TLDs to suggest.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of suggestions to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "in": "query" - }, - { - "name": "filterType", - "description": "Filter type: premium, suggestion.", - "required": false, - "schema": { - "type": "string", - "example": "premium", - "title": "DomainSuggestionType", - "oneOf": [ - { - "type": "string", - "enum": [ - "premium" - ], - "title": "premium" - }, - { - "type": "string", - "enum": [ - "suggestion" - ], - "title": "suggestion" - } - ] - }, - "in": "query" - }, - { - "name": "priceMax", - "description": "Filter premium domains by maximum price. Only premium domains at or below this price will be returned. Does not affect regular domain suggestions.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "in": "query" - }, - { - "name": "priceMin", - "description": "Filter premium domains by minimum price. Only premium domains at or above this price will be returned. Does not affect regular domain suggestions.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "in": "query" - } - ] - } - }, - "\/domains\/transfers\/in": { - "post": { - "summary": "Create a domain transfer in.", - "operationId": "domainsCreateTransferIn", - "tags": [ - "domains" - ], - "description": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", - "responses": { - "201": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-transfer-in.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name to transfer in.", - "type": "string", - "example": "example.com" - }, - "organizationId": { - "description": "Organization ID that this domain will belong to.", - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "authCode": { - "description": "Authorization code for the domain transfer.", - "type": "string", - "example": "<AUTH_CODE>" - }, - "autoRenewal": { - "description": "Whether the domain should renew automatically after transfer.", - "type": "boolean", - "default": true, - "example": false - }, - "paymentMethodId": { - "description": "Payment method ID to authorize and capture the transfer.", - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "domain", - "organizationId", - "authCode", - "paymentMethodId" - ] - } - } - } - } - } - }, - "\/domains\/transfers\/in\/{invoiceId}": { - "patch": { - "summary": "Confirm a domain transfer in", - "operationId": "domainsUpdateTransferIn", - "tags": [ - "domains" - ], - "description": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", - "responses": { - "200": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-transfer-in.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "invoiceId", - "description": "Invoice ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "organizationId": { - "description": "Team ID that owns the domain.", - "type": "string", - "example": "<ORGANIZATION_ID>" - } - }, - "required": [ - "organizationId" - ] - } - } - } - } - } - }, - "\/domains\/transfers\/out": { - "post": { - "summary": "Create a domain transfer out.", - "operationId": "domainsCreateTransferOut", - "tags": [ - "domains" - ], - "description": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", - "responses": { - "202": { - "description": "domainTransferOut", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainTransferOut" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-transfer-out.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domainId": { - "description": "Domain unique ID.", - "type": "string", - "example": "<DOMAIN_ID>" - }, - "organizationId": { - "description": "Organization ID that this domain belongs to.", - "type": "string", - "example": "<ORGANIZATION_ID>" - } - }, - "required": [ - "domainId", - "organizationId" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}": { - "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", - "tags": [ - "domains" - ], - "description": "Get a domain by its unique ID.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", - "tags": [ - "domains" - ], - "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/auto-renewal": { - "patch": { - "summary": "Update domain auto-renewal setting.", - "operationId": "domainsUpdateAutoRenewal", - "tags": [ - "domains" - ], - "description": "Enable or disable auto-renewal for a domain.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-auto-renewal.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "autoRenewal": { - "description": "Whether the domain should renew automatically.", - "type": "boolean", - "example": false - } - }, - "required": [ - "autoRenewal" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Update the registrar nameservers for the given domain.", - "operationId": "domainsUpdateNameservers", - "tags": [ - "domains" - ], - "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-nameservers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "nameservers": { - "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "\/domains\/{domainId}\/nameservers\/verification": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsVerifyNameservers", - "tags": [ - "domains" - ], - "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/verify-nameservers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/google-workspace": { - "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", - "tags": [ - "domains" - ], - "description": "List Google Workspace DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-google-workspace.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", - "tags": [ - "domains" - ], - "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-google-workspace.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/icloud": { - "get": { - "summary": "Get iCloud preset (Records)", - "operationId": "domainsGetPresetICloud", - "tags": [ - "domains" - ], - "description": "List iCloud DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-i-cloud.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", - "tags": [ - "domains" - ], - "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-i-cloud.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/mailgun": { - "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", - "tags": [ - "domains" - ], - "description": "List Mailgun DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-mailgun.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", - "tags": [ - "domains" - ], - "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-mailgun.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", - "tags": [ - "domains" - ], - "description": "List Outlook DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-outlook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", - "tags": [ - "domains" - ], - "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-outlook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/proton-mail": { - "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", - "tags": [ - "domains" - ], - "description": "List ProtonMail DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", - "tags": [ - "domains" - ], - "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/zoho": { - "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", - "tags": [ - "domains" - ], - "description": "List Zoho DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", - "tags": [ - "domains" - ], - "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/records": { - "get": { - "summary": "List DNS records for a given domain.", - "operationId": "domainsListRecords", - "tags": [ - "domains" - ], - "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", - "responses": { - "200": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list-records.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", - "tags": [ - "domains" - ], - "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv4 address for this A record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/a\/{recordId}": { - "put": { - "summary": "Update an existing A record for the given domain.", - "operationId": "domainsUpdateRecordA", - "tags": [ - "domains" - ], - "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv4 address for this A record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/aaaa": { - "post": { - "summary": "Create a new AAAA record for the given domain.", - "operationId": "domainsCreateRecordAAAA", - "tags": [ - "domains" - ], - "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv6 address for this AAAA record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { - "put": { - "summary": "Update an existing AAAA record for the given domain.", - "operationId": "domainsUpdateRecordAAAA", - "tags": [ - "domains" - ], - "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv6 address for this AAAA record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", - "tags": [ - "domains" - ], - "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "Target domain for this ALIAS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/alias\/{recordId}": { - "put": { - "summary": "Update an existing ALIAS record for the given domain.", - "operationId": "domainsUpdateRecordAlias", - "tags": [ - "domains" - ], - "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "Target domain for this ALIAS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/caa": { - "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", - "tags": [ - "domains" - ], - "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-caa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "CAA value (e.g. issuer domain).", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", - "tags": [ - "domains" - ], - "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-caa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "CAA value (e.g. issuer domain).", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/cname": { - "post": { - "summary": "Create a new CNAME record for the given domain.", - "operationId": "domainsCreateRecordCNAME", - "tags": [ - "domains" - ], - "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-cname.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Canonical target for this CNAME record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", - "tags": [ - "domains" - ], - "description": "Update an existing CNAME record for the given domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-cname.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Canonical target for this CNAME record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/https": { - "post": { - "summary": "Create a new HTTPS record for the given domain.", - "operationId": "domainsCreateRecordHTTPS", - "tags": [ - "domains" - ], - "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-https.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Target for the HTTPS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/https\/{recordId}": { - "put": { - "summary": "Update an existing HTTPS record for the given domain.", - "operationId": "domainsUpdateRecordHTTPS", - "tags": [ - "domains" - ], - "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-https.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Target for the HTTPS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/mx": { - "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", - "tags": [ - "domains" - ], - "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-mx.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Mail server domain for this MX record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "MX priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", - "tags": [ - "domains" - ], - "description": "Update an existing MX record for the given domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-mx.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Mail server domain for this MX record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "MX priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/ns": { - "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", - "tags": [ - "domains" - ], - "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-ns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Nameserver target for this NS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", - "tags": [ - "domains" - ], - "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-ns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Nameserver target for this NS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/srv": { - "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", - "tags": [ - "domains" - ], - "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-srv.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (service name).", - "type": "string" - }, - "value": { - "description": "Target hostname for this SRV record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "Record priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "weight": { - "description": "Record weight, used to share load between targets of equal priority.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "port": { - "description": "Port number for the service.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "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", - "tags": [ - "domains" - ], - "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-srv.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (service name).", - "type": "string" - }, - "value": { - "description": "Target hostname for this SRV record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "Record priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "weight": { - "description": "Record weight, used to share load between targets of equal priority.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "port": { - "description": "Port number for the service.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "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", - "tags": [ - "domains" - ], - "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-txt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain) for the TXT record.", - "type": "string" - }, - "value": { - "description": "TXT record value.", - "type": "string", - "default": "", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", - "tags": [ - "domains" - ], - "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-txt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain) for the TXT record.", - "type": "string" - }, - "value": { - "description": "TXT record value.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/{recordId}": { - "get": { - "summary": "Get a single DNS record for a given domain by record ID.", - "operationId": "domainsGetRecord", - "tags": [ - "domains" - ], - "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-record.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a DNS record for the given domain.", - "operationId": "domainsDeleteRecord", - "tags": [ - "domains" - ], - "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/delete-record.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/team": { - "patch": { - "summary": "Update domain team.", - "operationId": "domainsUpdateTeam", - "tags": [ - "domains" - ], - "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-team.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "New team unique ID.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/transfers\/status": { - "get": { - "summary": "Get domain transfer status.", - "operationId": "domainsGetTransferStatus", - "tags": [ - "domains" - ], - "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", - "responses": { - "200": { - "description": "domainTransferStatus", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainTransferStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-transfer-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/zone": { - "get": { - "summary": "Retrieve the DNS zone file for the given domain.", - "operationId": "domainsGetZone", - "tags": [ - "domains" - ], - "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", - "responses": { - "200": { - "description": "Text", - "content": { - "text\/plain": { - "schema": { - "type": "string" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-zone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", - "operationId": "domainsUpdateZone", - "tags": [ - "domains" - ], - "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", - "responses": { - "201": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-zone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "description": "DNS zone file content as a string.", - "type": "string", - "example": "<CONTENT>" - } - }, - "required": [ - "content" - ] - } - } - } - } - } - }, - "\/embeddings\/text": { - "post": { - "summary": "Create text embeddings", - "operationId": "embeddingsCreateTextEmbeddings", - "tags": [ - "embeddings" - ], - "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", - "responses": { - "200": { - "description": "Embedding list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/embeddingList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "embeddings", - "demo": "embeddings\/create-text-embeddings.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "embeddings.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createTextEmbeddings", - "namespace": "embeddings", - "platforms": [ - "console", - "server" - ], - "summary": "Create Text Embedding", - "auth": { - "Project": [] - }, - "parameters": [ - "texts", - "model" - ], - "required": [ - "texts" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/embeddingList" - } - ], - "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", - "demo": "embeddings\/create-text-embeddings.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "texts": { - "description": "Array of text to generate embeddings.", - "type": "array", - "example": [ - "Appwrite helps developers build applications.", - "Find documents with semantic search." - ], - "items": { - "type": "string" - } - }, - "model": { - "description": "The embedding model to use for generating vector embeddings.", - "type": "string", - "default": "nomic-embed-text", - "example": "nomic-embed-text", - "title": "EmbeddingModel", - "oneOf": [ - { - "type": "string", - "enum": [ - "nomic-embed-text" - ], - "title": "nomic-embed-text" - }, - { - "type": "string", - "enum": [ - "all-minilm" - ], - "title": "all-minilm" - } - ] - } - }, - "required": [ - "texts" - ] - } - } - } - } - } - }, - "\/functions": { - "get": { - "summary": "List functions", - "operationId": "functionsList", - "tags": [ - "functions" - ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Functions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/functionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create function", - "operationId": "functionsCreate", - "tags": [ - "functions" - ], - "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", - "responses": { - "201": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "functionId": { - "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<FUNCTION_ID>" - }, - "name": { - "description": "Function name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "runtime": { - "description": "Execution runtime.", - "type": "string", - "example": "node-14.5", - "title": "Runtime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "execute": { - "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "type": "array", - "default": [], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string", - "default": "", - "example": "0 0 * * *" - }, - "timeout": { - "description": "Function maximum execution time in seconds.", - "type": "integer", - "default": 15, - "example": 1, - "format": "int32" - }, - "enabled": { - "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "entrypoint": { - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "type": "string", - "default": "", - "example": "<ENTRYPOINT>" - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "default": "", - "example": "<COMMANDS>" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the function.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "description": "Production branch for the repo linked to the function.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to function code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "buildSpecification": { - "description": "Build specification for the function deployments.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "description": "Runtime specification for the function executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] - } - } - } - } - } - }, - "\/functions\/runtimes": { - "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", - "tags": [ - "functions" - ], - "description": "Get a list of all runtimes that are currently active on your instance.", - "responses": { - "200": { - "description": "Runtimes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/runtimeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "runtimes", - "demo": "functions\/list-runtimes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", - "tags": [ - "functions" - ], - "description": "List allowed function specifications for this instance.", - "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "runtimes", - "demo": "functions\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", - "required": false, - "schema": { - "type": "string", - "example": "runtimes", - "default": "runtimes" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/functions\/templates": { - "get": { - "summary": "List templates", - "operationId": "functionsListTemplates", - "tags": [ - "functions" - ], - "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", - "responses": { - "200": { - "description": "Function Templates List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/templateFunctionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "functions\/list-templates.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "runtimes", - "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "Runtime", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "useCases", - "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "FunctionTemplateUseCase", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "starter" - ], - "title": "starter" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "ai" - ], - "title": "ai" - }, - { - "type": "string", - "enum": [ - "messaging" - ], - "title": "messaging" - }, - { - "type": "string", - "enum": [ - "utilities" - ], - "title": "utilities" - }, - { - "type": "string", - "enum": [ - "dev-tools" - ], - "title": "dev-tools" - }, - { - "type": "string", - "enum": [ - "auth" - ], - "title": "auth" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/functions\/templates\/{templateId}": { - "get": { - "summary": "Get function template", - "operationId": "functionsGetTemplate", - "tags": [ - "functions" - ], - "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", - "responses": { - "200": { - "description": "Template Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/templateFunction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "functions\/get-template.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Template ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEMPLATE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}": { - "get": { - "summary": "Get function", - "operationId": "functionsGet", - "tags": [ - "functions" - ], - "description": "Get a function by its unique ID.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update function", - "operationId": "functionsUpdate", - "tags": [ - "functions" - ], - "description": "Update function by its unique ID.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Function name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "runtime": { - "description": "Execution runtime.", - "type": "string", - "example": "node-14.5", - "title": "Runtime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "execute": { - "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "type": "array", - "default": [], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string", - "default": "", - "example": "0 0 * * *" - }, - "timeout": { - "description": "Maximum execution time in seconds.", - "type": "integer", - "default": 15, - "example": 1, - "format": "int32" - }, - "enabled": { - "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "entrypoint": { - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "type": "string", - "default": "", - "example": "<ENTRYPOINT>" - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "default": "", - "example": "<COMMANDS>" - }, - "scopes": { - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the function", - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>", - "nullable": true - }, - "providerBranch": { - "description": "Production branch for the repo linked to the function", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to function code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "buildSpecification": { - "description": "Build specification for the function deployments.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "runtimeSpecification": { - "description": "Runtime specification for the function executions.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", - "tags": [ - "functions" - ], - "description": "Delete a function by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", - "tags": [ - "functions" - ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/update-function-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", - "tags": [ - "functions" - ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Deployments List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deploymentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/list-deployments.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", - "tags": [ - "functions" - ], - "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": true, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "entrypoint": { - "description": "Entrypoint File.", - "type": "string", - "example": "<ENTRYPOINT>", - "nullable": true - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "example": "<COMMANDS>", - "nullable": true - }, - "code": { - "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", - "type": "string", - "format": "binary" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "example": false - } - }, - "required": [ - "code", - "activate" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", - "tags": [ - "functions" - ], - "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-duplicate-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "buildId": { - "description": "Build unique ID.", - "type": "string", - "default": "", - "example": "<BUILD_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", - "tags": [ - "functions" - ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-template-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "description": "Repository name of the template.", - "type": "string", - "example": "<REPOSITORY>" - }, - "owner": { - "description": "The name of the owner of the template.", - "type": "string", - "example": "<OWNER>" - }, - "rootDirectory": { - "description": "Path to function code in the template repo.", - "type": "string", - "example": "<ROOT_DIRECTORY>" - }, - "type": { - "description": "Type for the reference provided. Can be commit, branch, or tag", - "type": "string", - "example": "commit", - "title": "TemplateReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "Reference value, can be a commit hash, branch name, or release tag", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", - "tags": [ - "functions" - ], - "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-vcs-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Type of reference passed. Allowed values are: branch, commit", - "type": "string", - "example": "branch", - "title": "VCSReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - } - ] - }, - "reference": { - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", - "tags": [ - "functions" - ], - "description": "Get a function deployment by its unique ID.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/get-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", - "tags": [ - "functions" - ], - "description": "Delete a code deployment by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/delete-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", - "tags": [ - "functions" - ], - "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/get-deployment-download.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "functions.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "example": "source", - "title": "DeploymentDownloadType", - "oneOf": [ - { - "type": "string", - "enum": [ - "source" - ], - "title": "source" - }, - { - "type": "string", - "enum": [ - "output" - ], - "title": "output" - } - ], - "default": "source" - }, - "in": "query" - }, - { - "name": "token", - "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", - "tags": [ - "functions" - ], - "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/update-deployment-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", - "tags": [ - "functions" - ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Executions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/executionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/list-executions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", - "tags": [ - "functions" - ], - "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", - "responses": { - "201": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "description": "HTTP body of execution. Default value is empty string.", - "type": "string", - "default": "", - "example": "<BODY>" - }, - "async": { - "description": "Execute code in the background. Default value is false.", - "type": "boolean", - "default": false, - "example": false - }, - "path": { - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "type": "string", - "default": "\/", - "example": "<PATH>" - }, - "method": { - "description": "HTTP method of execution. Default value is POST.", - "type": "string", - "default": "POST", - "example": "GET", - "title": "ExecutionMethod", - "oneOf": [ - { - "type": "string", - "enum": [ - "GET" - ], - "title": "GET" - }, - { - "type": "string", - "enum": [ - "POST" - ], - "title": "POST" - }, - { - "type": "string", - "enum": [ - "PUT" - ], - "title": "PUT" - }, - { - "type": "string", - "enum": [ - "PATCH" - ], - "title": "PATCH" - }, - { - "type": "string", - "enum": [ - "DELETE" - ], - "title": "DELETE" - }, - { - "type": "string", - "enum": [ - "OPTIONS" - ], - "title": "OPTIONS" - }, - { - "type": "string", - "enum": [ - "HEAD" - ], - "title": "HEAD" - } - ] - }, - "headers": { - "description": "HTTP headers of execution. Defaults to empty.", - "type": "object", - "default": {}, - "example": {} - }, - "scheduledAt": { - "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", - "type": "string", - "example": "<SCHEDULED_AT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", - "tags": [ - "functions" - ], - "description": "Get a function execution log by its unique ID.", - "responses": { - "200": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/get-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EXECUTION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", - "tags": [ - "functions" - ], - "description": "Delete a function execution by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/delete-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EXECUTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", - "tags": [ - "functions" - ], - "description": "Get a list of all variables of a specific function.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/list-variables.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", - "tags": [ - "functions" - ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", - "responses": { - "201": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", - "tags": [ - "functions" - ], - "description": "Get a variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", - "tags": [ - "functions" - ], - "description": "Update variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/update-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", - "tags": [ - "functions" - ], - "description": "Delete a variable by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "query { localeGet { ip } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/growth\/conversations": { - "post": { - "summary": "Create a conversation", - "operationId": "growthCreateConversation", - "tags": [ - "growth" - ], - "description": "Create a conversation with the Appwrite team: support requests, product and docs feedback, enterprise, startup and partner applications, and event sponsorship requests. Signed in console users are identified by their session or JWT; everyone else must pass an email. Attach a file of up to 5MB to support and feedback conversations.", - "responses": { - "201": { - "description": "Growth Conversation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/growthConversation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "growth\/create-conversation.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip},type:{param-type}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Conversation type.", - "type": "string", - "example": "support", - "title": "ConversationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "support" - ], - "title": "support" - }, - { - "type": "string", - "enum": [ - "feedback" - ], - "title": "feedback" - }, - { - "type": "string", - "enum": [ - "docs" - ], - "title": "docs" - }, - { - "type": "string", - "enum": [ - "enterprise" - ], - "title": "enterprise" - }, - { - "type": "string", - "enum": [ - "startup" - ], - "title": "startup" - }, - { - "type": "string", - "enum": [ - "partner" - ], - "title": "partner" - }, - { - "type": "string", - "enum": [ - "sponsorship" - ], - "title": "sponsorship" - } - ] - }, - "email": { - "description": "Email address to reply to. Required without a console session, ignored with one.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "name": { - "description": "Name of the person filing the conversation. Required for enterprise, startup, partner and sponsorship.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "subject": { - "description": "Conversation subject.", - "type": "string", - "default": "", - "example": "<SUBJECT>" - }, - "message": { - "description": "Conversation message. Required for support, feedback, enterprise and partner.", - "type": "string", - "default": "", - "example": "<MESSAGE>" - }, - "organizationId": { - "description": "Organization ID the conversation is about. Kept only when the session user is a member.", - "type": "string", - "default": "", - "example": "<ORGANIZATION_ID>" - }, - "projectId": { - "description": "Project ID the conversation is about. Kept only when it belongs to the kept organization.", - "type": "string", - "default": "", - "example": "<PROJECT_ID>" - }, - "attributes": { - "description": "Additional attributes for the conversation type, as an object or a JSON string.", - "type": "object", - "default": {}, - "example": {} - }, - "attachment": { - "description": "File attachment, support and feedback only, max 5MB.", - "type": "string", - "default": [], - "format": "binary" - } - }, - "required": [ - "type" - ] - }, - "examples": { - "support": { - "summary": "Ask for support", - "value": { - "type": "support", - "email": "walter.obrien@example.com", - "subject": "Custom domain stuck on verifying", - "message": "The domain has been verifying for two hours.", - "projectId": "<PROJECT_ID>" - } - }, - "feedback": { - "summary": "Share product feedback", - "value": { - "type": "feedback", - "email": "walter.obrien@example.com", - "message": "The usage page would help more with a daily breakdown.", - "attributes": { - "npsScore": 9 - } - } - }, - "docs": { - "summary": "Rate a docs page", - "value": { - "type": "docs", - "email": "walter.obrien@example.com", - "attributes": { - "rating": "positive", - "route": "\/docs\/products\/auth" - } - } - }, - "enterprise": { - "summary": "Contact sales about Enterprise", - "value": { - "type": "enterprise", - "email": "walter.obrien@example.com", - "name": "Walter O'Brien", - "message": "We need SSO and a dedicated region.", - "attributes": { - "companyName": "Acme", - "companySize": "500-1000", - "companyWebsite": "https:\/\/acme.example" - } - } - }, - "startup": { - "summary": "Apply to the startups program", - "value": { - "type": "startup", - "email": "walter.obrien@example.com", - "name": "Walter O'Brien", - "attributes": { - "companyName": "Acme", - "companyUrl": "https:\/\/acme.example" - } - } - }, - "partner": { - "summary": "Apply to become a partner", - "value": { - "type": "partner", - "email": "walter.obrien@example.com", - "name": "Walter O'Brien", - "message": "We build Appwrite projects for agencies.", - "attributes": { - "companyName": "Acme", - "companyUrl": "https:\/\/acme.example" - } - } - }, - "sponsorship": { - "summary": "Request an event sponsorship", - "value": { - "type": "sponsorship", - "email": "walter.obrien@example.com", - "name": "Walter O'Brien", - "attributes": { - "eventName": "Acme Dev Summit", - "eventDate": "2026-11-14", - "eventType": "in person", - "socialHandles": "@acme", - "estimatedAttendees": 300, - "eventPublicWebLink": "https:\/\/summit.acme.example" - } - } - } - } - } - } - } - } - }, - "\/growth\/installations": { - "post": { - "summary": "Record a self-hosted installation", - "operationId": "growthCreateInstallation", - "tags": [ - "growth" - ], - "description": "Record a self-hosted installation. Every report is stored as its own row; the admin email is optional because headless CLI installs create no account.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "growth\/create-installation.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},domain:{param-domain}", - "url:{url},ip:{ip}" - ], - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Admin email from the installation, when an account was created.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "name": { - "description": "Admin name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "version": { - "description": "Appwrite version.", - "type": "string", - "default": "", - "example": "<VERSION>" - }, - "domain": { - "description": "Installation domain.", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "database": { - "description": "Database adapter.", - "type": "string", - "default": "", - "example": "<DATABASE>" - }, - "hostIp": { - "description": "Resolved installation host IP address.", - "type": "string", - "default": "", - "example": "<HOST_IP>" - }, - "userAgent": { - "description": "Installation user agent.", - "type": "string", - "default": "", - "example": "<USER_AGENT>" - }, - "os": { - "description": "Installation operating system.", - "type": "string", - "default": "", - "example": "<OS>" - }, - "arch": { - "description": "Installation CPU architecture.", - "type": "string", - "default": "", - "example": "<ARCH>" - }, - "cpus": { - "description": "Installation CPU count.", - "type": "integer", - "format": "int32" - }, - "ram": { - "description": "Installation RAM in MB.", - "type": "integer", - "format": "int32" - } - } - } - } - } - } - } - }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "tags": [ - "locale" - ], - "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", - "responses": { - "200": { - "description": "Locale", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/locale" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "tags": [ - "locale" - ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", - "responses": { - "200": { - "description": "Locale codes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "tags": [ - "locale" - ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Continents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/continentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-continents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "tags": [ - "locale" - ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "tags": [ - "locale" - ], - "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-eu.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", - "tags": [ - "locale" - ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Phones List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/phoneList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", - "tags": [ - "locale" - ], - "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Currencies List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/currencyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "tags": [ - "locale" - ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", - "responses": { - "200": { - "description": "Languages List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/languageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/manager\/blocks": { - "post": { - "summary": "Create a new resource block for a project", - "operationId": "managerCreateBlock", - "tags": [ - "manager" - ], - "description": "Creates a new resource block.", - "responses": { - "201": { - "description": "ManagerBlock", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/managerBlock" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "manager\/create-block.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "description": "Project ID", - "type": "string", - "example": "<PROJECT_ID>" - }, - "resourceType": { - "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", - "type": "string", - "example": "projects", - "title": "BlockResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "projects" - ], - "title": "projects" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "buckets" - ], - "title": "buckets" - }, - { - "type": "string", - "enum": [ - "providers" - ], - "title": "providers" - }, - { - "type": "string", - "enum": [ - "topics" - ], - "title": "topics" - }, - { - "type": "string", - "enum": [ - "subscribers" - ], - "title": "subscribers" - }, - { - "type": "string", - "enum": [ - "messages" - ], - "title": "messages" - } - ] - }, - "resourceId": { - "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", - "type": "string", - "default": "", - "example": "<RESOURCE_ID>" - }, - "mode": { - "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", - "type": "string", - "default": "full", - "example": "full", - "title": "BlockMode", - "oneOf": [ - { - "type": "string", - "enum": [ - "full" - ], - "title": "full" - }, - { - "type": "string", - "enum": [ - "readonly" - ], - "title": "readonly" - } - ] - }, - "reason": { - "description": "Optional reason why the resource is blocked", - "type": "string", - "default": "", - "example": "<REASON>" - }, - "expiredAt": { - "description": "Optional expiration date for the block", - "type": "string", - "default": "", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - } - }, - "required": [ - "projectId", - "resourceType" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete resource blocks for a project", - "operationId": "managerDeleteBlock", - "tags": [ - "manager" - ], - "description": "Deletes resource blocks for a project.", - "responses": { - "200": { - "description": "ManagerBlockDelete", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/managerBlockDelete" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "manager\/delete-block.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "query" - }, - { - "name": "resourceType", - "description": "Resource type to unblock", - "required": true, - "schema": { - "type": "string", - "example": "projects", - "title": "BlockResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "projects" - ], - "title": "projects" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "buckets" - ], - "title": "buckets" - }, - { - "type": "string", - "enum": [ - "providers" - ], - "title": "providers" - }, - { - "type": "string", - "enum": [ - "topics" - ], - "title": "topics" - }, - { - "type": "string", - "enum": [ - "subscribers" - ], - "title": "subscribers" - }, - { - "type": "string", - "enum": [ - "messages" - ], - "title": "messages" - } - ] - }, - "in": "query" - }, - { - "name": "resourceId", - "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", - "required": false, - "schema": { - "type": "string", - "example": "<RESOURCE_ID>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/manager\/blocks\/{projectId}": { - "get": { - "summary": "List all resource blocks for a project", - "operationId": "managerListBlocks", - "tags": [ - "manager" - ], - "description": "Lists all resource blocks for a project.", - "responses": { - "200": { - "description": "Manager blocks list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/managerBlockList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "manager\/list-blocks.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/manager\/cache": { - "delete": { - "summary": "Clear internal cache", - "operationId": "managerDeleteCache", - "tags": [ - "manager" - ], - "description": "Clears internal cache.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "cache", - "demo": "manager\/delete-cache.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "parameters": [ - { - "name": "region", - "description": "Target region.", - "required": false, - "schema": { - "type": "string", - "example": "fra", - "title": "Region", - "oneOf": [ - { - "type": "string", - "enum": [ - "fra" - ], - "title": "fra" - }, - { - "type": "string", - "enum": [ - "nyc" - ], - "title": "nyc" - }, - { - "type": "string", - "enum": [ - "syd" - ], - "title": "syd" - }, - { - "type": "string", - "enum": [ - "sfo" - ], - "title": "sfo" - }, - { - "type": "string", - "enum": [ - "sgp" - ], - "title": "sgp" - }, - { - "type": "string", - "enum": [ - "tor" - ], - "title": "tor" - } - ] - }, - "in": "query" - }, - { - "name": "cache", - "description": "Cache target.", - "required": false, - "schema": { - "type": "string", - "example": "cache", - "title": "CacheTarget", - "oneOf": [ - { - "type": "string", - "enum": [ - "cache" - ], - "title": "cache" - }, - { - "type": "string", - "enum": [ - "timelimit" - ], - "title": "timelimit" - }, - { - "type": "string", - "enum": [ - "locks" - ], - "title": "locks" - }, - { - "type": "string", - "enum": [ - "pubsub" - ], - "title": "pubsub" - }, - { - "type": "string", - "enum": [ - "queue" - ], - "title": "queue" - }, - { - "type": "string", - "enum": [ - "all" - ], - "title": "all" - } - ], - "default": "cache" - }, - "in": "query" - }, - { - "name": "all", - "description": "Clear the entire selected cache target.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": false - }, - "in": "query" - }, - { - "name": "database", - "description": "Database cache scope.", - "required": false, - "schema": { - "type": "string", - "example": "console", - "title": "CacheDatabase", - "oneOf": [ - { - "type": "string", - "enum": [ - "console" - ], - "title": "console" - }, - { - "type": "string", - "enum": [ - "project" - ], - "title": "project" - } - ], - "default": "console" - }, - "in": "query" - }, - { - "name": "projectId", - "description": "Project ID for project database cache.", - "required": false, - "schema": { - "type": "string", - "example": "<PROJECT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": false, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": false, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/manager\/organizations\/status": { - "patch": { - "summary": "Update an organization status by ID", - "operationId": "managerUpdateOrganizationStatus", - "tags": [ - "manager" - ], - "description": "Blocks or unblocks an organization, the same way a billing-limit block does. Blocking makes the organization read-only, disables its backup policies and spins down its dedicated databases.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "organizations", - "demo": "manager\/update-organization-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Organization ID.", - "type": "string", - "example": "<TEAM_ID>" - }, - "status": { - "description": "Organization status. Set to `false` to block and `true` to unblock.", - "type": "boolean", - "example": false - }, - "reason": { - "description": "Optional reason when blocking, kept in the audit trail.", - "type": "string", - "default": "", - "example": "<REASON>" - } - }, - "required": [ - "teamId", - "status" - ] - } - } - } - } - } - }, - "\/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": { - "group": "users", - "demo": "manager\/update-user-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "", - "platforms": [ - "manager", - "console" - ], - "packaging": false, - "public": true - }, - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "email": { - "description": "User email address.", - "type": "string", - "default": "", - "example": "<EMAIL>" - }, - "status": { - "description": "User status. Set to `false` to block and `true` to unblock.", - "type": "boolean", - "example": false - }, - "reason": { - "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", - "type": "string", - "default": "", - "example": "<REASON>" - } - }, - "required": [ - "status" - ] - } - } - } - } - } - }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", - "tags": [ - "messaging" - ], - "description": "Get a list of all messages from the current Appwrite project.", - "responses": { - "200": { - "description": "Message list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/messageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/list-messages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", - "tags": [ - "messaging" - ], - "description": "Create a new email message.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "subject": { - "description": "Email Subject.", - "type": "string", - "example": "<SUBJECT>" - }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "cc": { - "description": "Array of target IDs to be added as CC.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "bcc": { - "description": "Array of target IDs to be added as BCC.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "attachments": { - "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>.", - "type": "array", - "default": [], - "items": { - "type": "string" - }, - "nullable": true - }, - "replyToEmail": { - "description": "Email address to reply to. If not set, defaults to the sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name of the reply to recipient. If not set, defaults to the sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "html": { - "description": "Is content of type HTML", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - }, - "examples": { - "draft": { - "summary": "Create an email draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "subject": "Welcome", - "content": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", - "tags": [ - "messaging" - ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subject": { - "description": "Email Subject.", - "type": "string", - "example": "<SUBJECT>", - "nullable": true - }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "cc": { - "description": "Array of target IDs to be added as CC.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "bcc": { - "description": "Array of target IDs to be added as BCC.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "attachments": { - "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>.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "replyToEmail": { - "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "html": { - "description": "Is content of type HTML", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", - "tags": [ - "messaging" - ], - "description": "Create a new push notification.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-push.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "title": { - "description": "Title for push notification.", - "type": "string", - "default": "", - "example": "<TITLE>" - }, - "body": { - "description": "Body for push notification.", - "type": "string", - "default": "", - "example": "<BODY>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "data": { - "description": "Additional key-value pair data for push notification.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "action": { - "description": "Action for push notification.", - "type": "string", - "default": "", - "example": "<ACTION>" - }, - "image": { - "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>.", - "type": "string", - "default": "", - "example": "<ID1:ID2>" - }, - "icon": { - "description": "Icon for push notification. Available only for Android and Web Platform.", - "type": "string", - "default": "", - "example": "<ICON>" - }, - "sound": { - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "type": "string", - "default": "", - "example": "<SOUND>" - }, - "color": { - "description": "Color for push notification. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<COLOR>" - }, - "tag": { - "description": "Tag for push notification. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<TAG>" - }, - "badge": { - "description": "Badge for push notification. Available only for iOS Platform.", - "type": "integer", - "default": -1, - "example": 1, - "format": "int32" - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "contentAvailable": { - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "type": "boolean", - "default": false, - "example": false - }, - "critical": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "priority": { - "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.", - "type": "string", - "default": "high", - "example": "normal", - "title": "MessagePriority", - "oneOf": [ - { - "type": "string", - "enum": [ - "normal" - ], - "title": "normal" - }, - { - "type": "string", - "enum": [ - "high" - ], - "title": "high" - } - ] - }, - "channelId": { - "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<CHANNEL_ID>" - } - }, - "required": [ - "messageId" - ] - }, - "examples": { - "draft": { - "summary": "Create a push notification draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "title": "Welcome", - "body": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", - "tags": [ - "messaging" - ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-push.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "title": { - "description": "Title for push notification.", - "type": "string", - "example": "<TITLE>", - "nullable": true - }, - "body": { - "description": "Body for push notification.", - "type": "string", - "example": "<BODY>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "data": { - "description": "Additional Data for push notification.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "action": { - "description": "Action for push notification.", - "type": "string", - "example": "<ACTION>", - "nullable": true - }, - "image": { - "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>.", - "type": "string", - "example": "<ID1:ID2>", - "nullable": true - }, - "icon": { - "description": "Icon for push notification. Available only for Android and Web platforms.", - "type": "string", - "example": "<ICON>", - "nullable": true - }, - "sound": { - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "type": "string", - "example": "<SOUND>", - "nullable": true - }, - "color": { - "description": "Color for push notification. Available only for Android platforms.", - "type": "string", - "example": "<COLOR>", - "nullable": true - }, - "tag": { - "description": "Tag for push notification. Available only for Android platforms.", - "type": "string", - "example": "<TAG>", - "nullable": true - }, - "badge": { - "description": "Badge for push notification. Available only for iOS platforms.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "contentAvailable": { - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "type": "boolean", - "example": false, - "nullable": true - }, - "critical": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - }, - "priority": { - "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.", - "type": "string", - "example": "normal", - "title": "MessagePriority", - "oneOf": [ - { - "type": "string", - "enum": [ - "normal" - ], - "title": "normal" - }, - { - "type": "string", - "enum": [ - "high" - ], - "title": "high" - } - ], - "nullable": true - }, - "channelId": { - "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", - "type": "string", - "example": "<CHANNEL_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", - "tags": [ - "messaging" - ], - "description": "Create a new SMS message.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-sms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "content": { - "description": "SMS Content.", - "type": "string", - "example": "<CONTENT>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - }, - "examples": { - "draft": { - "summary": "Create an SMS draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "content": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", - "tags": [ - "messaging" - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-sms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", - "tags": [ - "messaging" - ], - "description": "Get a message by its unique ID.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/get-message.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", - "tags": [ - "messaging" - ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/messages\/{messageId}\/targets": { - "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", - "tags": [ - "messaging" - ], - "description": "Get a list of the targets associated with a message.", - "responses": { - "200": { - "description": "Target list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/targetList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/list-targets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/providers": { - "get": { - "summary": "List providers", - "operationId": "messagingListProviders", - "tags": [ - "messaging" - ], - "description": "Get a list of all providers from the current Appwrite project.", - "responses": { - "200": { - "description": "Provider list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/list-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "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, provider, type, enabled", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Apple Push Notification service provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-apns-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "authKey": { - "description": "APNS authentication key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "authKeyId": { - "description": "APNS authentication key ID.", - "type": "string", - "default": "", - "example": "<AUTH_KEY_ID>" - }, - "teamId": { - "description": "APNS team ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - }, - "bundleId": { - "description": "APNS bundle ID.", - "type": "string", - "default": "", - "example": "<BUNDLE_ID>" - }, - "sandbox": { - "description": "Use APNS sandbox environment.", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", - "tags": [ - "messaging" - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-apns-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "authKey": { - "description": "APNS authentication key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "authKeyId": { - "description": "APNS authentication key ID.", - "type": "string", - "default": "", - "example": "<AUTH_KEY_ID>" - }, - "teamId": { - "description": "APNS team ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - }, - "bundleId": { - "description": "APNS bundle ID.", - "type": "string", - "default": "", - "example": "<BUNDLE_ID>" - }, - "sandbox": { - "description": "Use APNS sandbox environment.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/appwrite": { - "post": { - "summary": "Create Appwrite provider", - "operationId": "messagingCreateAppwriteProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Appwrite push provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-appwrite-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "qos": { - "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/appwrite\/{providerId}": { - "patch": { - "summary": "Update Appwrite provider", - "operationId": "messagingUpdateAppwriteProvider", - "tags": [ - "messaging" - ], - "description": "Update an Appwrite push provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-appwrite-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "qos": { - "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-fcm-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "serviceAccountJSON": { - "description": "FCM service account JSON.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", - "tags": [ - "messaging" - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-fcm-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "serviceAccountJSON": { - "description": "FCM service account JSON.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Mailgun provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-mailgun-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Mailgun API Key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "domain": { - "description": "Mailgun Domain.", - "type": "string", - "default": "", - "example": "example.com" - }, - "isEuRegion": { - "description": "Set as EU region.", - "type": "boolean", - "example": false, - "nullable": true - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "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.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "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.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", - "tags": [ - "messaging" - ], - "description": "Update a Mailgun provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-mailgun-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "apiKey": { - "description": "Mailgun API Key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "domain": { - "description": "Mailgun Domain.", - "type": "string", - "default": "", - "example": "example.com" - }, - "isEuRegion": { - "description": "Set as EU region.", - "type": "boolean", - "example": false, - "nullable": true - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", - "tags": [ - "messaging" - ], - "description": "Create a new MSG91 provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-msg-91-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "templateId": { - "description": "Msg91 template ID", - "type": "string", - "default": "", - "example": "<TEMPLATE_ID>" - }, - "senderId": { - "description": "Msg91 sender ID.", - "type": "string", - "default": "", - "example": "<SENDER_ID>" - }, - "authKey": { - "description": "Msg91 auth key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "tags": [ - "messaging" - ], - "description": "Update a MSG91 provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-msg-91-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "templateId": { - "description": "Msg91 template ID.", - "type": "string", - "default": "", - "example": "<TEMPLATE_ID>" - }, - "senderId": { - "description": "Msg91 sender ID.", - "type": "string", - "default": "", - "example": "<SENDER_ID>" - }, - "authKey": { - "description": "Msg91 auth key.", - "type": "string", - "default": "", - "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": { - "group": "providers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Resend API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", - "tags": [ - "messaging" - ], - "description": "Update a Resend provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Resend API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Sendgrid provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-sendgrid-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Sendgrid API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", - "tags": [ - "messaging" - ], - "description": "Update a Sendgrid provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-sendgrid-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Sendgrid API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/ses": { - "post": { - "summary": "Create Amazon SES provider", - "operationId": "messagingCreateSesProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Amazon SES provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-ses-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "accessKey": { - "description": "AWS access key ID.", - "type": "string", - "default": "", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "AWS secret access key.", - "type": "string", - "default": "", - "example": "<SECRET_KEY>" - }, - "region": { - "description": "AWS region, for example us-east-1.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/ses\/{providerId}": { - "patch": { - "summary": "Update Amazon SES provider", - "operationId": "messagingUpdateSesProvider", - "tags": [ - "messaging" - ], - "description": "Update an Amazon SES provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-ses-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "accessKey": { - "description": "AWS access key ID.", - "type": "string", - "default": "", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "AWS secret access key.", - "type": "string", - "default": "", - "example": "<SECRET_KEY>" - }, - "region": { - "description": "AWS region, for example us-east-1.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", - "tags": [ - "messaging" - ], - "description": "Create a new SMTP provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-smtp-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "host": { - "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.", - "type": "string", - "example": "<HOST>" - }, - "port": { - "description": "The default SMTP server port.", - "type": "integer", - "default": 587, - "example": 587, - "format": "int32" - }, - "username": { - "description": "Authentication username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "password": { - "description": "Authentication password.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "encryption": { - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "type": "string", - "example": "none", - "title": "SmtpEncryption", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - }, - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - } - ] - }, - "autoTLS": { - "description": "Enable SMTP AutoTLS feature.", - "type": "boolean", - "default": true, - "example": false - }, - "mailer": { - "description": "The value to use for the X-Mailer header.", - "type": "string", - "default": "", - "example": "<MAILER>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", - "tags": [ - "messaging" - ], - "description": "Update a SMTP provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-smtp-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "host": { - "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.", - "type": "string", - "default": "", - "example": "<HOST>" - }, - "port": { - "description": "SMTP port.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "username": { - "description": "Authentication username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "password": { - "description": "Authentication password.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "encryption": { - "description": "Encryption type. Can be 'ssl' or 'tls'", - "type": "string", - "example": "none", - "title": "SmtpEncryption", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - }, - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - } - ] - }, - "autoTLS": { - "description": "Enable SMTP AutoTLS feature.", - "type": "boolean", - "example": false, - "nullable": true - }, - "mailer": { - "description": "The value to use for the X-Mailer header.", - "type": "string", - "default": "", - "example": "<MAILER>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Telesign provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-telesign-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "customerId": { - "description": "Telesign customer ID.", - "type": "string", - "default": "", - "example": "<CUSTOMER_ID>" - }, - "apiKey": { - "description": "Telesign API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", - "tags": [ - "messaging" - ], - "description": "Update a Telesign provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-telesign-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "customerId": { - "description": "Telesign customer ID.", - "type": "string", - "default": "", - "example": "<CUSTOMER_ID>" - }, - "apiKey": { - "description": "Telesign API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Textmagic provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-textmagic-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "username": { - "description": "Textmagic username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "apiKey": { - "description": "Textmagic apiKey.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Update a Textmagic provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-textmagic-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "username": { - "description": "Textmagic username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "apiKey": { - "description": "Textmagic apiKey.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "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": { - "group": "providers", - "demo": "messaging\/create-twilio-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "<FROM>" - }, - "accountSid": { - "description": "Twilio account secret ID.", - "type": "string", - "default": "", - "example": "<ACCOUNT_SID>" - }, - "authToken": { - "description": "Twilio authentication token.", - "type": "string", - "default": "", - "example": "<AUTH_TOKEN>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", - "tags": [ - "messaging" - ], - "description": "Update a Twilio provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-twilio-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "accountSid": { - "description": "Twilio account secret ID.", - "type": "string", - "default": "", - "example": "<ACCOUNT_SID>" - }, - "authToken": { - "description": "Twilio authentication token.", - "type": "string", - "default": "", - "example": "<AUTH_TOKEN>" - }, - "from": { - "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Vonage provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-vonage-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "description": "Vonage API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "apiSecret": { - "description": "Vonage API secret.", - "type": "string", - "default": "", - "example": "<API_SECRET>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", - "tags": [ - "messaging" - ], - "description": "Update a Vonage provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-vonage-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Vonage API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "apiSecret": { - "description": "Vonage API secret.", - "type": "string", - "default": "", - "example": "<API_SECRET>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", - "tags": [ - "messaging" - ], - "description": "Get a provider by its unique ID.\n", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/get-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "tags": [ - "messaging" - ], - "description": "Delete a provider by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", - "tags": [ - "messaging" - ], - "description": "Get a list of all topics from the current Appwrite project.", - "responses": { - "200": { - "description": "Topic list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topicList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "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, - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", - "tags": [ - "messaging" - ], - "description": "Create a new topic.", - "responses": { - "201": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/create-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topicId": { - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "type": "string", - "example": "<TOPIC_ID>" - }, - "name": { - "description": "Topic Name.", - "type": "string", - "example": "<NAME>" - }, - "subscribe": { - "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.", - "type": "array", - "default": [ - "users" - ], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "qos": { - "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "topicId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", - "tags": [ - "messaging" - ], - "description": "Get a topic by its unique ID.\n", - "responses": { - "200": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/get-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", - "tags": [ - "messaging" - ], - "description": "Update a topic by its unique ID.\n", - "responses": { - "200": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/update-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Topic Name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "subscribe": { - "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.", - "type": "array", - "example": [ - "any" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "qos": { - "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", - "tags": [ - "messaging" - ], - "description": "Delete a topic by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/delete-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", - "tags": [ - "messaging" - ], - "description": "Get a list of all subscribers from the current Appwrite project.", - "responses": { - "200": { - "description": "Subscriber list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriberList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "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": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subscriberId": { - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "type": "string", - "example": "<SUBSCRIBER_ID>" - }, - "targetId": { - "description": "Target ID. The target ID to link to the specified Topic ID.", - "type": "string", - "example": "<TARGET_ID>" - } - }, - "required": [ - "subscriberId", - "targetId" - ] - } - } - } - } - } - }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { - "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", - "tags": [ - "messaging" - ], - "description": "Get a subscriber by its unique ID.\n", - "responses": { - "200": { - "description": "Subscriber", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "subscribers", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": null, - "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, - "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, resourceInternalId, resourceType, parentResourceId, parentResourceInternalId, parentResourceType, destinationResourceId, destinationResourceInternalId, destinationResourceType, statusCounters, resourceData, errors", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/migrations\/appwrite": { - "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-appwrite-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "description": "List of resources to migrate", - "type": "array", - "example": [ - "user" - ], - "items": { - "title": "AppwriteMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "team" - ], - "title": "team" - }, - { - "type": "string", - "enum": [ - "membership" - ], - "title": "membership" - }, - { - "type": "string", - "enum": [ - "auth-methods" - ], - "title": "auth-methods" - }, - { - "type": "string", - "enum": [ - "policies" - ], - "title": "policies" - }, - { - "type": "string", - "enum": [ - "oauth2-provider" - ], - "title": "oauth2-provider" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - }, - { - "type": "string", - "enum": [ - "function" - ], - "title": "function" - }, - { - "type": "string", - "enum": [ - "deployment" - ], - "title": "deployment" - }, - { - "type": "string", - "enum": [ - "environment-variable" - ], - "title": "environment-variable" - }, - { - "type": "string", - "enum": [ - "provider" - ], - "title": "provider" - }, - { - "type": "string", - "enum": [ - "topic" - ], - "title": "topic" - }, - { - "type": "string", - "enum": [ - "subscriber" - ], - "title": "subscriber" - }, - { - "type": "string", - "enum": [ - "message" - ], - "title": "message" - }, - { - "type": "string", - "enum": [ - "site" - ], - "title": "site" - }, - { - "type": "string", - "enum": [ - "site-deployment" - ], - "title": "site-deployment" - }, - { - "type": "string", - "enum": [ - "site-variable" - ], - "title": "site-variable" - }, - { - "type": "string", - "enum": [ - "platform" - ], - "title": "platform" - }, - { - "type": "string", - "enum": [ - "api-key" - ], - "title": "api-key" - }, - { - "type": "string", - "enum": [ - "webhook" - ], - "title": "webhook" - }, - { - "type": "string", - "enum": [ - "smtp" - ], - "title": "smtp" - }, - { - "type": "string", - "enum": [ - "backup-policy" - ], - "title": "backup-policy" - }, - { - "type": "string", - "enum": [ - "project-variable" - ], - "title": "project-variable" - }, - { - "type": "string", - "enum": [ - "project-protocols" - ], - "title": "project-protocols" - }, - { - "type": "string", - "enum": [ - "project-labels" - ], - "title": "project-labels" - }, - { - "type": "string", - "enum": [ - "project-services" - ], - "title": "project-services" - }, - { - "type": "string", - "enum": [ - "project-email-template" - ], - "title": "project-email-template" - }, - { - "type": "string", - "enum": [ - "rule" - ], - "title": "rule" - } - ] - } - }, - "endpoint": { - "description": "Source Appwrite endpoint", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "projectId": { - "description": "Source Project ID", - "type": "string", - "example": "<PROJECT_ID>" - }, - "apiKey": { - "description": "Source API Key", - "type": "string", - "example": "<API_KEY>" - }, - "onDuplicate": { - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "type": "string", - "default": "fail", - "example": "fail", - "title": "OnDuplicate", - "oneOf": [ - { - "type": "string", - "enum": [ - "fail" - ], - "title": "fail" - }, - { - "type": "string", - "enum": [ - "skip" - ], - "title": "skip" - }, - { - "type": "string", - "enum": [ - "overwrite" - ], - "title": "overwrite" - } - ] - } - }, - "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" - ] - } - } - } - } - } - }, - "\/migrations\/appwrite\/report": { - "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", - "tags": [ - "migrations" - ], - "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", - "responses": { - "200": { - "description": "Migration Report", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migrationReport" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/get-appwrite-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "title": "AppwriteMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "team" - ], - "title": "team" - }, - { - "type": "string", - "enum": [ - "membership" - ], - "title": "membership" - }, - { - "type": "string", - "enum": [ - "auth-methods" - ], - "title": "auth-methods" - }, - { - "type": "string", - "enum": [ - "policies" - ], - "title": "policies" - }, - { - "type": "string", - "enum": [ - "oauth2-provider" - ], - "title": "oauth2-provider" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - }, - { - "type": "string", - "enum": [ - "function" - ], - "title": "function" - }, - { - "type": "string", - "enum": [ - "deployment" - ], - "title": "deployment" - }, - { - "type": "string", - "enum": [ - "environment-variable" - ], - "title": "environment-variable" - }, - { - "type": "string", - "enum": [ - "provider" - ], - "title": "provider" - }, - { - "type": "string", - "enum": [ - "topic" - ], - "title": "topic" - }, - { - "type": "string", - "enum": [ - "subscriber" - ], - "title": "subscriber" - }, - { - "type": "string", - "enum": [ - "message" - ], - "title": "message" - }, - { - "type": "string", - "enum": [ - "site" - ], - "title": "site" - }, - { - "type": "string", - "enum": [ - "site-deployment" - ], - "title": "site-deployment" - }, - { - "type": "string", - "enum": [ - "site-variable" - ], - "title": "site-variable" - }, - { - "type": "string", - "enum": [ - "platform" - ], - "title": "platform" - }, - { - "type": "string", - "enum": [ - "api-key" - ], - "title": "api-key" - }, - { - "type": "string", - "enum": [ - "webhook" - ], - "title": "webhook" - }, - { - "type": "string", - "enum": [ - "smtp" - ], - "title": "smtp" - }, - { - "type": "string", - "enum": [ - "backup-policy" - ], - "title": "backup-policy" - }, - { - "type": "string", - "enum": [ - "project-variable" - ], - "title": "project-variable" - }, - { - "type": "string", - "enum": [ - "project-protocols" - ], - "title": "project-protocols" - }, - { - "type": "string", - "enum": [ - "project-labels" - ], - "title": "project-labels" - }, - { - "type": "string", - "enum": [ - "project-services" - ], - "title": "project-services" - }, - { - "type": "string", - "enum": [ - "project-email-template" - ], - "title": "project-email-template" - }, - { - "type": "string", - "enum": [ - "rule" - ], - "title": "rule" - } - ] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Appwrite Endpoint", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "projectID", - "description": "Source's Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "query" - }, - { - "name": "key", - "description": "Source's API Key", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "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": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Database ID containing the source collection.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "collectionId": { - "description": "Collection ID to export documents from.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "filename": { - "description": "The name of the file to be created for the export, excluding the .csv extension.", - "type": "string", - "example": "<FILENAME>" - }, - "columns": { - "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.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "queries": { - "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.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "delimiter": { - "description": "The character that separates each column value. Default is comma.", - "type": "string", - "default": ",", - "example": "<DELIMITER>" - }, - "enclosure": { - "description": "The character that encloses each column value. Default is double quotes.", - "type": "string", - "default": "\"", - "example": "<ENCLOSURE>" - }, - "escape": { - "description": "The escape character for the enclosure character. Default is double quotes.", - "type": "string", - "default": "\"", - "example": "<ESCAPE>" - }, - "header": { - "description": "Whether to include the header row with column names. Default is true.", - "type": "boolean", - "default": true, - "example": false - }, - "notify": { - "description": "Set to true to receive an email when the export is complete. Default is true.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "databaseId", - "collectionId", - "filename" - ] - } - } - } - } - } - }, - "\/migrations\/csv\/imports": { - "post": { - "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCSVImport", - "tags": [ - "migrations" - ], - "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", - "responses": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-csv-import.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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).", - "type": "string", - "example": "<BUCKET_ID>" - }, - "fileId": { - "description": "File ID.", - "type": "string", - "example": "<FILE_ID>" - }, - "databaseId": { - "description": "Database ID containing the target collection.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "collectionId": { - "description": "Collection ID to import documents into.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "internalFile": { - "description": "Is the file stored in an internal bucket?", - "type": "boolean", - "default": false, - "example": false - }, - "onDuplicate": { - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "type": "string", - "default": "fail", - "example": "fail", - "title": "OnDuplicate", - "oneOf": [ - { - "type": "string", - "enum": [ - "fail" - ], - "title": "fail" - }, - { - "type": "string", - "enum": [ - "skip" - ], - "title": "skip" - }, - { - "type": "string", - "enum": [ - "overwrite" - ], - "title": "overwrite" - } - ] - } - }, - "required": [ - "bucketId", - "fileId", - "databaseId", - "collectionId" - ] - } - } - } - } - } - }, - "\/migrations\/firebase": { - "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-firebase-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "description": "List of resources to migrate", - "type": "array", - "example": [ - "user" - ], - "items": { - "title": "FirebaseMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - } - }, - "serviceAccount": { - "description": "JSON of the Firebase service account credentials", - "type": "string", - "example": "<SERVICE_ACCOUNT>" - } - }, - "required": [ - "resources", - "serviceAccount" - ] - } - } - } - } - } - }, - "\/migrations\/firebase\/report": { - "get": { - "summary": "Get Firebase migration report", - "operationId": "migrationsGetFirebaseReport", - "tags": [ - "migrations" - ], - "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": "Migration Report", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migrationReport" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/get-firebase-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "title": "FirebaseMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - }, - "example": [ - "user" - ] - }, - "in": "query" - }, - { - "name": "serviceAccount", - "description": "JSON of the Firebase service account credentials", - "required": true, - "schema": { - "type": "string", - "example": "<SERVICE_ACCOUNT>" - }, - "in": "query" - } - ] - } - }, - "\/migrations\/json\/exports": { - "post": { - "summary": "Export documents to JSON", - "operationId": "migrationsCreateJSONExport", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-json-export.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Database ID containing the source collection.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "collectionId": { - "description": "Collection ID to export documents from.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "filename": { - "description": "The name of the file to be created for the export, excluding the .json extension.", - "type": "string", - "example": "<FILENAME>" - }, - "columns": { - "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.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "queries": { - "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.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "notify": { - "description": "Set to true to receive an email when the export is complete. Default is true.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "databaseId", - "collectionId", - "filename" - ] - } - } - } - } - } - }, - "\/migrations\/json\/imports": { - "post": { - "summary": "Import documents from a JSON", - "operationId": "migrationsCreateJSONImport", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-json-import.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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).", - "type": "string", - "example": "<BUCKET_ID>" - }, - "fileId": { - "description": "File ID.", - "type": "string", - "example": "<FILE_ID>" - }, - "databaseId": { - "description": "Database ID containing the target collection.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "collectionId": { - "description": "Collection ID to import documents into.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "internalFile": { - "description": "Is the file stored in an internal bucket?", - "type": "boolean", - "default": false, - "example": false - }, - "onDuplicate": { - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "type": "string", - "default": "fail", - "example": "fail", - "title": "OnDuplicate", - "oneOf": [ - { - "type": "string", - "enum": [ - "fail" - ], - "title": "fail" - }, - { - "type": "string", - "enum": [ - "skip" - ], - "title": "skip" - }, - { - "type": "string", - "enum": [ - "overwrite" - ], - "title": "overwrite" - } - ] - } - }, - "required": [ - "bucketId", - "fileId", - "databaseId", - "collectionId" - ] - } - } - } - } - } - }, - "\/migrations\/nhost": { - "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-n-host-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "description": "List of resources to migrate", - "type": "array", - "example": [ - "user" - ], - "items": { - "title": "NHostMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - } - }, - "subdomain": { - "description": "Source's Subdomain", - "type": "string", - "example": "<SUBDOMAIN>" - }, - "region": { - "description": "Source's Region", - "type": "string", - "example": "<REGION>" - }, - "adminSecret": { - "description": "Source's Admin Secret", - "type": "string", - "example": "<ADMIN_SECRET>" - }, - "database": { - "description": "Source's Database Name", - "type": "string", - "example": "<DATABASE>" - }, - "username": { - "description": "Source's Database Username", - "type": "string", - "example": "<USERNAME>" - }, - "password": { - "description": "Source's Database Password", - "type": "string", - "example": "password", - "format": "password" - }, - "port": { - "description": "Source's Database Port", - "type": "integer", - "default": 5432, - "example": 5432, - "format": "int32" - } - }, - "required": [ - "resources", - "subdomain", - "region", - "adminSecret", - "database", - "username", - "password" - ] - } - } - } - } - } - }, - "\/migrations\/nhost\/report": { - "get": { - "summary": "Get NHost migration report", - "operationId": "migrationsGetNHostReport", - "tags": [ - "migrations" - ], - "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": "Migration Report", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migrationReport" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/get-n-host-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resources", - "description": "List of resources to migrate.", - "required": true, - "schema": { - "type": "array", - "items": { - "title": "NHostMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - }, - "example": [ - "user" - ] - }, - "in": "query" - }, - { - "name": "subdomain", - "description": "Source's Subdomain.", - "required": true, - "schema": { - "type": "string", - "example": "<SUBDOMAIN>" - }, - "in": "query" - }, - { - "name": "region", - "description": "Source's Region.", - "required": true, - "schema": { - "type": "string", - "example": "<REGION>" - }, - "in": "query" - }, - { - "name": "adminSecret", - "description": "Source's Admin Secret.", - "required": true, - "schema": { - "type": "string", - "example": "<ADMIN_SECRET>" - }, - "in": "query" - }, - { - "name": "database", - "description": "Source's Database Name.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE>" - }, - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "schema": { - "type": "string", - "example": "<USERNAME>" - }, - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", - "required": true, - "schema": { - "type": "string", - "format": "password", - "example": "password" - }, - "in": "query" - }, - { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 5432, - "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\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/create-supabase-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "description": "List of resources to migrate", - "type": "array", - "example": [ - "user" - ], - "items": { - "title": "SupabaseMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - } - }, - "endpoint": { - "description": "Source's Supabase Endpoint", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "apiKey": { - "description": "Source's API Key", - "type": "string", - "example": "<API_KEY>" - }, - "databaseHost": { - "description": "Source's Database Host", - "type": "string", - "example": "<DATABASE_HOST>" - }, - "username": { - "description": "Source's Database Username", - "type": "string", - "example": "<USERNAME>" - }, - "password": { - "description": "Source's Database Password", - "type": "string", - "example": "password", - "format": "password" - }, - "port": { - "description": "Source's Database Port", - "type": "integer", - "default": 5432, - "example": 5432, - "format": "int32" - } - }, - "required": [ - "resources", - "endpoint", - "apiKey", - "databaseHost", - "username", - "password" - ] - } - } - } - } - } - }, - "\/migrations\/supabase\/report": { - "get": { - "summary": "Get Supabase migration report", - "operationId": "migrationsGetSupabaseReport", - "tags": [ - "migrations" - ], - "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": "Migration Report", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migrationReport" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/get-supabase-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "title": "SupabaseMigrationResource", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "user" - ], - "title": "user" - }, - { - "type": "string", - "enum": [ - "database" - ], - "title": "database" - }, - { - "type": "string", - "enum": [ - "table" - ], - "title": "table" - }, - { - "type": "string", - "enum": [ - "column" - ], - "title": "column" - }, - { - "type": "string", - "enum": [ - "index" - ], - "title": "index" - }, - { - "type": "string", - "enum": [ - "row" - ], - "title": "row" - }, - { - "type": "string", - "enum": [ - "document" - ], - "title": "document" - }, - { - "type": "string", - "enum": [ - "attribute" - ], - "title": "attribute" - }, - { - "type": "string", - "enum": [ - "collection" - ], - "title": "collection" - }, - { - "type": "string", - "enum": [ - "bucket" - ], - "title": "bucket" - }, - { - "type": "string", - "enum": [ - "file" - ], - "title": "file" - } - ] - }, - "example": [ - "user" - ] - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Supabase Endpoint.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "apiKey", - "description": "Source's API Key.", - "required": true, - "schema": { - "type": "string", - "example": "<API_KEY>" - }, - "in": "query" - }, - { - "name": "databaseHost", - "description": "Source's Database Host.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_HOST>" - }, - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "schema": { - "type": "string", - "example": "<USERNAME>" - }, - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", - "required": true, - "schema": { - "type": "string", - "format": "password", - "example": "password" - }, - "in": "query" - }, - { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 5432, - "default": 5432 - }, - "in": "query" - } - ] - } - }, - "\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "migrationsGet", - "tags": [ - "migrations" - ], - "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", - "responses": { - "200": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", - "tags": [ - "migrations" - ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", - "responses": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "migrationsDelete", - "tags": [ - "migrations" - ], - "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "migrations\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo": { - "get": { - "summary": "List databases", - "operationId": "mongoList", - "tags": [ - "mongo" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "mongoCreate", - "tags": [ - "mongo" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/mongo\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "mongoListSpecifications", - "tags": [ - "mongo" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/mongo\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "mongoGet", - "tags": [ - "mongo" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "mongoUpdate", - "tags": [ - "mongo" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "mongoDelete", - "tags": [ - "mongo" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "mongoListBackups", - "tags": [ - "mongo" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "mongoCreateBackup", - "tags": [ - "mongo" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "mongoListBackupPolicies", - "tags": [ - "mongo" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "mongoCreateBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "mongoGetBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "mongoUpdateBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "mongoDeleteBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "mongoUpdateBackupStorage", - "tags": [ - "mongo" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "mongoGetBackup", - "tags": [ - "mongo" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "mongoDeleteBackup", - "tags": [ - "mongo" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "mongoListBranches", - "tags": [ - "mongo" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "mongoCreateBranch", - "tags": [ - "mongo" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "mongoDeleteBranch", - "tags": [ - "mongo" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "mongoUpdateCredentials", - "tags": [ - "mongo" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "mongoCreateFailover", - "tags": [ - "mongo" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "mongo\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "mongoUpdateMaintenance", - "tags": [ - "mongo" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "mongoCreateMigration", - "tags": [ - "mongo" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "mongo\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "mongoListOperations", - "tags": [ - "mongo" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "mongo\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/mongo\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "mongoGetPitr", - "tags": [ - "mongo" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "mongo\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "mongoGetReplicas", - "tags": [ - "mongo" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "mongo\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "mongoListRestorations", - "tags": [ - "mongo" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "mongoCreateRestoration", - "tags": [ - "mongo" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "mongoGetRestoration", - "tags": [ - "mongo" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "mongoGetStatus", - "tags": [ - "mongo" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "mongoCreateUpgrade", - "tags": [ - "mongo" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/mysql": { - "get": { - "summary": "List databases", - "operationId": "mysqlList", - "tags": [ - "mysql" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "mysqlCreate", - "tags": [ - "mysql" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/mysql\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "mysqlListSpecifications", - "tags": [ - "mysql" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/mysql\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "mysqlGet", - "tags": [ - "mysql" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "mysqlUpdate", - "tags": [ - "mysql" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "mysqlDelete", - "tags": [ - "mysql" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "mysqlListBackups", - "tags": [ - "mysql" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "mysqlCreateBackup", - "tags": [ - "mysql" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "mysqlListBackupPolicies", - "tags": [ - "mysql" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "mysqlCreateBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "mysqlGetBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "mysqlUpdateBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "mysqlDeleteBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "mysqlUpdateBackupStorage", - "tags": [ - "mysql" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "mysqlGetBackup", - "tags": [ - "mysql" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "mysqlDeleteBackup", - "tags": [ - "mysql" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "mysqlListBranches", - "tags": [ - "mysql" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "mysqlCreateBranch", - "tags": [ - "mysql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "mysqlDeleteBranch", - "tags": [ - "mysql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "mysqlUpdateCredentials", - "tags": [ - "mysql" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/executions": { - "post": { - "summary": "Create execution", - "operationId": "mysqlCreateExecution", - "tags": [ - "mysql" - ], - "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.center\/v1\/sql\/executions` 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": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "mysql\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sql": { - "description": "SQL statement to execute. Exactly one statement per request.", - "type": "string", - "example": "<SQL>" - }, - "bindings": { - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "timeoutSeconds": { - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "sql" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "mysqlCreateFailover", - "tags": [ - "mysql" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "mysql\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "mysqlUpdateMaintenance", - "tags": [ - "mysql" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "mysqlCreateMigration", - "tags": [ - "mysql" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "mysql\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "mysqlListOperations", - "tags": [ - "mysql" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "mysql\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/mysql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "mysqlGetPitr", - "tags": [ - "mysql" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "mysql\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/pooler": { - "get": { - "summary": "Get pooler", - "operationId": "mysqlGetPooler", - "tags": [ - "mysql" - ], - "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": { - "group": "pooler", - "demo": "mysql\/get-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update pooler", - "operationId": "mysqlUpdatePooler", - "tags": [ - "mysql" - ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", - "responses": { - "200": { - "description": "PoolerConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pooler", - "demo": "mysql\/update-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mode": { - "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.", - "type": "string", - "example": "transaction", - "nullable": true - }, - "maxConnections": { - "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", - "type": "integer", - "example": 10, - "format": "int32", - "nullable": true - }, - "defaultPoolSize": { - "description": "Default pool size per user.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "readWriteSplitting": { - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "poolerCpuRequest": { - "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).", - "type": "string", - "example": "<POOLER_CPU_REQUEST>", - "nullable": true - }, - "poolerCpuLimit": { - "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.", - "type": "string", - "example": "<POOLER_CPU_LIMIT>", - "nullable": true - }, - "poolerMemoryRequest": { - "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).", - "type": "string", - "example": "<POOLER_MEMORY_REQUEST>", - "nullable": true - }, - "poolerMemoryLimit": { - "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.", - "type": "string", - "example": "<POOLER_MEMORY_LIMIT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "mysqlGetReplicas", - "tags": [ - "mysql" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "mysql\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "mysqlListRestorations", - "tags": [ - "mysql" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "mysqlCreateRestoration", - "tags": [ - "mysql" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "mysqlGetRestoration", - "tags": [ - "mysql" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "mysqlGetStatus", - "tags": [ - "mysql" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "mysqlCreateUpgrade", - "tags": [ - "mysql" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/notifications": { - "get": { - "summary": "List notifications", - "operationId": "notificationsList", - "tags": [ - "notifications" - ], - "description": "Get the list of notifications for the currently logged in console user. Use queries to filter the results by attributes such as read status, view timestamps, or creation date.\n", - "responses": { - "200": { - "description": "Notifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/notificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "notifications\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: read, type, channel, messageId, projectId, resourceType, resourceId, parentResourceType, parentResourceId, firstSeen, lastSeen", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/notifications\/{notificationId}": { - "patch": { - "summary": "Update notification", - "operationId": "notificationsUpdate", - "tags": [ - "notifications" - ], - "description": "Update a notification by its unique ID. Use the `read` parameter to mark the notification as read or unread.\n", - "responses": { - "200": { - "description": "Notification", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/notification" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "notifications\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "notificationId", - "description": "Notification ID.", - "required": true, - "schema": { - "type": "string", - "example": "<NOTIFICATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "read": { - "description": "Notification read status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "read" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/approve": { - "post": { - "summary": "Approve OAuth2", - "operationId": "oauth2Approve", - "tags": [ - "oauth2" - ], - "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Approve", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Approve" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/approve.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - }, - "authorization_details": { - "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "scope": { - "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", - "type": "string", - "default": "", - "example": "<SCOPE>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/authorize": { - "get": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "client_id", - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "required": false, - "schema": { - "type": "string", - "example": "<CLIENT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "redirect_uri", - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "response_type", - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "required": false, - "schema": { - "type": "string", - "example": "", - "default": "" - }, - "in": "query" - }, - { - "name": "scope", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "required": false, - "schema": { - "type": "string", - "example": "<SCOPE>", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "required": false, - "schema": { - "type": "string", - "example": "<STATE>", - "default": "" - }, - "in": "query" - }, - { - "name": "nonce", - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "required": false, - "schema": { - "type": "string", - "example": "<NONCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "<CODE_CHALLENGE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge_method", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "s256", - "default": "" - }, - "in": "query" - }, - { - "name": "prompt", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "required": false, - "schema": { - "type": "string", - "example": "<PROMPT>", - "default": "" - }, - "in": "query" - }, - { - "name": "max_age", - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "in": "query" - }, - { - "name": "authorization_details", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "required": false, - "schema": { - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "default": "" - }, - "in": "query" - }, - { - "name": "resource", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "required": false, - "schema": { - "type": "string", - "default": [] - }, - "in": "query" - }, - { - "name": "audience", - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "required": false, - "schema": { - "type": "string", - "example": "<AUDIENCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "request_uri", - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "required": false, - "schema": { - "type": "string", - "example": "<REQUEST_URI>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2AuthorizePost", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "type": "string", - "default": "", - "example": "" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - }, - "request_uri": { - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "type": "string", - "default": "", - "example": "<REQUEST_URI>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/device_authorization": { - "post": { - "summary": "OAuth2 Device Authorization", - "operationId": "oauth2CreateDeviceAuthorization", - "tags": [ - "oauth2" - ], - "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", - "responses": { - "200": { - "description": "OAuth2 Device Authorization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-device-authorization.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants": { - "post": { - "summary": "Create OAuth2 Grant", - "operationId": "oauth2CreateGrant", - "tags": [ - "oauth2" - ], - "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", - "responses": { - "201": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/create-grant.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "user_code": { - "description": "User code displayed on the device.", - "type": "string", - "example": "<USER_CODE>" - } - }, - "required": [ - "user_code" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants\/{grant_id}": { - "get": { - "summary": "Get OAuth2 Grant", - "operationId": "oauth2GetGrant", - "tags": [ - "oauth2" - ], - "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", - "responses": { - "200": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/get-grant.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client that created grant during authorization exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "grant_id", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "required": true, - "schema": { - "type": "string", - "example": "<GRANT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/oauth2\/{project_id}\/logout": { - "get": { - "summary": "OAuth2 Logout", - "operationId": "oauth2Logout", - "tags": [ - "oauth2" - ], - "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/logout.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "id_token_hint", - "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", - "required": false, - "schema": { - "type": "string", - "example": "<ID_TOKEN_HINT>", - "default": "" - }, - "in": "query" - }, - { - "name": "logout_hint", - "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", - "required": false, - "schema": { - "type": "string", - "example": "<LOGOUT_HINT>", - "default": "" - }, - "in": "query" - }, - { - "name": "client_id", - "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", - "required": false, - "schema": { - "type": "string", - "example": "<CLIENT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "post_logout_redirect_uri", - "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", - "required": false, - "schema": { - "type": "string", - "example": "<STATE>", - "default": "" - }, - "in": "query" - }, - { - "name": "ui_locales", - "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", - "required": false, - "schema": { - "type": "string", - "example": "<UI_LOCALES>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "OAuth2 Logout", - "operationId": "oauth2LogoutPost", - "tags": [ - "oauth2" - ], - "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/logout.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "id_token_hint": { - "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", - "type": "string", - "default": "", - "example": "<ID_TOKEN_HINT>" - }, - "logout_hint": { - "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", - "type": "string", - "default": "", - "example": "<LOGOUT_HINT>" - }, - "client_id": { - "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "post_logout_redirect_uri": { - "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "state": { - "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "ui_locales": { - "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", - "type": "string", - "default": "", - "example": "<UI_LOCALES>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/organizations": { - "get": { - "summary": "OAuth2 List Accessible Organizations", - "operationId": "oauth2ListOrganizations", - "tags": [ - "oauth2" - ], - "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible organizations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2OrganizationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-organizations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.organizations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of organizations to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of organizations to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/par": { - "post": { - "summary": "OAuth2 PAR", - "operationId": "oauth2CreatePAR", - "tags": [ - "oauth2" - ], - "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", - "responses": { - "201": { - "description": "OAuth2 PAR", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2PAR" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-par.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type.", - "type": "string", - "example": "code" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age parameter for customization of consent screen.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "client_id", - "redirect_uri", - "response_type" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/projects": { - "get": { - "summary": "OAuth2 List Accessible Projects", - "operationId": "oauth2ListProjects", - "tags": [ - "oauth2" - ], - "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible projects list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ProjectList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-projects.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.projects.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of projects to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of projects to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/reject": { - "post": { - "summary": "Reject OAuth2", - "operationId": "oauth2Reject", - "tags": [ - "oauth2" - ], - "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Reject", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Reject" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/reject.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/revoke": { - "post": { - "summary": "OAuth2 Revoke", - "operationId": "oauth2Revoke", - "tags": [ - "oauth2" - ], - "description": "Revoke an OAuth2 access token or refresh token.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/revoke.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "description": "The access or refresh token to revoke.", - "type": "string", - "example": "<TOKEN>" - }, - "token_type_hint": { - "description": "Type of token to revoke (access_token or refresh_token).", - "type": "string", - "default": "", - "example": "access_token" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - } - }, - "required": [ - "token" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/token": { - "post": { - "summary": "OAuth2 Token", - "operationId": "oauth2CreateToken", - "tags": [ - "oauth2" - ], - "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", - "responses": { - "200": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/create-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_type": { - "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", - "type": "string", - "example": "<GRANT_TYPE>" - }, - "code": { - "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "<CODE>" - }, - "refresh_token": { - "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", - "type": "string", - "default": "", - "example": "<REFRESH_TOKEN>" - }, - "device_code": { - "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", - "type": "string", - "default": "", - "example": "<DEVICE_CODE>" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - }, - "code_verifier": { - "description": "PKCE code verifier. Required for public apps.", - "type": "string", - "default": "", - "example": "<CODE_VERIFIER>" - }, - "redirect_uri": { - "description": "Redirect URI. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "grant_type" - ] - }, - "examples": { - "authorizationCode": { - "summary": "Exchange an authorization code", - "value": { - "grant_type": "authorization_code", - "code": "<CODE>", - "redirect_uri": "https:\/\/example.com\/callback", - "client_id": "<CLIENT_ID>", - "code_verifier": "<CODE_VERIFIER>" - } - }, - "refreshToken": { - "summary": "Refresh an access token", - "value": { - "grant_type": "refresh_token", - "refresh_token": "<REFRESH_TOKEN>", - "client_id": "<CLIENT_ID>" - } - }, - "deviceCode": { - "summary": "Exchange a device code", - "value": { - "grant_type": "urn:ietf:params:oauth:grant-type:device_code", - "device_code": "<DEVICE_CODE>", - "client_id": "<CLIENT_ID>" - } - } - } - } - } - } - } - }, - "\/organization": { - "get": { - "summary": "Get organization", - "operationId": "organizationGet", - "tags": [ - "organization" - ], - "description": "Get the current organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ] - }, - "put": { - "summary": "Update organization", - "operationId": "organizationUpdate", - "tags": [ - "organization" - ], - "description": "Update the current organization's name.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "New organization name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete organization", - "operationId": "organizationDelete", - "tags": [ - "organization" - ], - "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ] - } - }, - "\/organization\/installations": { - "get": { - "summary": "List Installations", - "operationId": "organizationListInstallations", - "tags": [ - "organization" - ], - "description": "List app installations on the organization. Any organization member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "organizationCreateInstallation", - "tags": [ - "organization" - ], - "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/organization\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "organizationGetInstallation", - "tags": [ - "organization" - ], - "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "organizationUpdateInstallation", - "tags": [ - "organization" - ], - "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "organizationDeleteInstallation", - "tags": [ - "organization" - ], - "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/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": { - "group": "keys", - "demo": "organization\/list-keys.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "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", - "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": { - "group": "keys", - "demo": "organization\/create-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyId": { - "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.", - "type": "string", - "example": "<KEY_ID>" - }, - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "OrganizationKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "projects.read" - ], - "title": "projects.read" - }, - { - "type": "string", - "enum": [ - "projects.write" - ], - "title": "projects.write" - }, - { - "type": "string", - "enum": [ - "organization.projects.keys.read" - ], - "title": "organization.projects.keys.read" - }, - { - "type": "string", - "enum": [ - "organization.projects.keys.write" - ], - "title": "organization.projects.keys.write" - }, - { - "type": "string", - "enum": [ - "organization.installations.read" - ], - "title": "organization.installations.read" - }, - { - "type": "string", - "enum": [ - "organization.installations.write" - ], - "title": "organization.installations.write" - }, - { - "type": "string", - "enum": [ - "organization.memberships.read" - ], - "title": "organization.memberships.read" - }, - { - "type": "string", - "enum": [ - "organization.memberships.write" - ], - "title": "organization.memberships.write" - }, - { - "type": "string", - "enum": [ - "organization.read" - ], - "title": "organization.read" - }, - { - "type": "string", - "enum": [ - "organization.write" - ], - "title": "organization.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "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": { - "group": "keys", - "demo": "organization\/get-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "keys", - "demo": "organization\/update-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "OrganizationKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "projects.read" - ], - "title": "projects.read" - }, - { - "type": "string", - "enum": [ - "projects.write" - ], - "title": "projects.write" - }, - { - "type": "string", - "enum": [ - "organization.projects.keys.read" - ], - "title": "organization.projects.keys.read" - }, - { - "type": "string", - "enum": [ - "organization.projects.keys.write" - ], - "title": "organization.projects.keys.write" - }, - { - "type": "string", - "enum": [ - "organization.installations.read" - ], - "title": "organization.installations.read" - }, - { - "type": "string", - "enum": [ - "organization.installations.write" - ], - "title": "organization.installations.write" - }, - { - "type": "string", - "enum": [ - "organization.memberships.read" - ], - "title": "organization.memberships.read" - }, - { - "type": "string", - "enum": [ - "organization.memberships.write" - ], - "title": "organization.memberships.write" - }, - { - "type": "string", - "enum": [ - "organization.read" - ], - "title": "organization.read" - }, - { - "type": "string", - "enum": [ - "organization.write" - ], - "title": "organization.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete 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": { - "group": "keys", - "demo": "organization\/delete-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.keys.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organization\/memberships": { - "get": { - "summary": "List organization memberships", - "operationId": "organizationListMemberships", - "tags": [ - "organization" - ], - "description": "Get a list of all memberships from the current organization.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "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, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create organization membership", - "operationId": "organizationCreateMembership", - "tags": [ - "organization" - ], - "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Email of the new organization member.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "userId": { - "description": "ID of the user to be added to the organization.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "roles": { - "description": "Array of strings. Use this param to set the user roles in the organization. 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.", - "type": "array", - "items": { - "type": "string" - } - }, - "url": { - "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.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "description": "Name of the new organization member. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } - } - }, - "\/organization\/memberships\/{membershipId}": { - "get": { - "summary": "Get organization membership", - "operationId": "organizationGetMembership", - "tags": [ - "organization" - ], - "description": "Get a membership from the current organization by its unique ID.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/get-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update organization membership", - "operationId": "organizationUpdateMembership", - "tags": [ - "organization" - ], - "description": "Modify the roles of a member in the current organization.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "description": "An array of strings. Use this param to set the user's roles in the organization. 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.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "roles" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete organization membership", - "operationId": "organizationDeleteMembership", - "tags": [ - "organization" - ], - "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/delete-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_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": { - "group": "projects", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "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, accessedAt", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "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.", - "type": "string", - "example": "<PROJECT_ID>" - }, - "name": { - "description": "Project name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "region": { - "description": "Project Region.", - "type": "string", - "example": "fra", - "title": "Region", - "oneOf": [ - { - "type": "string", - "enum": [ - "fra" - ], - "title": "fra" - }, - { - "type": "string", - "enum": [ - "nyc" - ], - "title": "nyc" - }, - { - "type": "string", - "enum": [ - "syd" - ], - "title": "syd" - }, - { - "type": "string", - "enum": [ - "sfo" - ], - "title": "sfo" - }, - { - "type": "string", - "enum": [ - "sgp" - ], - "title": "sgp" - }, - { - "type": "string", - "enum": [ - "tor" - ], - "title": "tor" - } - ] - } - }, - "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": { - "group": "projects", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "projects", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Project name. Max length: 128 chars.", - "type": "string", - "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": { - "group": "projects", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organization\/projects\/{projectId}\/keys": { - "get": { - "summary": "List project keys", - "operationId": "organizationListProjectKeys", - "tags": [ - "organization" - ], - "description": "Get a list of all API keys of a project in your organization.", - "responses": { - "200": { - "description": "API Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/keyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/list-project-keys.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.read", - "keys.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create project key", - "operationId": "organizationCreateProjectKey", - "tags": [ - "organization" - ], - "description": "Create a new API key for a project in your organization. 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": { - "201": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/create-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyId": { - "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.", - "type": "string", - "example": "<KEY_ID>" - }, - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "keyId", - "name", - "scopes" - ] - } - } - } - } - } - }, - "\/organization\/projects\/{projectId}\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "organizationCreateEphemeralProjectKey", - "tags": [ - "organization" - ], - "description": "Create a new ephemeral API key for a project in your organization. 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": { - "201": { - "description": "Ephemeral Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/create-ephemeral-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "duration": { - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "type": "integer", - "example": 600, - "format": "int32" - } - }, - "required": [ - "scopes", - "duration" - ] - } - } - } - } - } - }, - "\/organization\/projects\/{projectId}\/keys\/{keyId}": { - "get": { - "summary": "Get project key", - "operationId": "organizationGetProjectKey", - "tags": [ - "organization" - ], - "description": "Get a project key by its unique ID.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/get-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.read", - "keys.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project key", - "operationId": "organizationUpdateProjectKey", - "tags": [ - "organization" - ], - "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/update-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete project key", - "operationId": "organizationDeleteProjectKey", - "tags": [ - "organization" - ], - "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/delete-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "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", - "example": "<SEARCH>", - "default": "" - }, - "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": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "organizationId": { - "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.", - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "name": { - "description": "Organization name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "billingPlan": { - "description": "Organization billing plan chosen", - "type": "string", - "example": "tier-0" - }, - "paymentMethodId": { - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "type": "string", - "example": "<PAYMENT_METHOD_ID>", - "nullable": true - }, - "billingAddressId": { - "description": "Unique ID of billing address", - "type": "string", - "default": "", - "example": "<BILLING_ADDRESS_ID>", - "nullable": true - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "<COUPON_ID>", - "nullable": true - }, - "taxId": { - "description": "Tax Id associated to billing.", - "type": "string", - "example": "<TAX_ID>", - "nullable": true - }, - "budget": { - "description": "Budget limit for additional usage set for the organization", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "platform": { - "description": "Platform type", - "type": "string", - "default": "appwrite", - "example": "appwrite", - "title": "Platform", - "oneOf": [ - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "imagine" - ], - "title": "imagine" - } - ] - } - }, - "required": [ - "organizationId", - "name", - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/estimations\/create-organization": { - "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", - "tags": [ - "organizations" - ], - "description": "Get estimation for creating an organization.", - "responses": { - "200": { - "description": "Estimation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/estimation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 120, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "description": "Organization billing plan chosen", - "type": "string", - "example": "tier-0" - }, - "paymentMethodId": { - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "type": "string", - "example": "<PAYMENT_METHOD_ID>", - "nullable": true - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "<COUPON_ID>", - "nullable": true - }, - "platform": { - "description": "Platform type", - "type": "string", - "default": "appwrite", - "example": "appwrite", - "title": "Platform", - "oneOf": [ - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "imagine" - ], - "title": "imagine" - } - ] - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}": { - "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", - "tags": [ - "organizations" - ], - "description": "Delete an organization.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/addons": { - "get": { - "summary": "List addons", - "operationId": "organizationsListAddons", - "tags": [ - "organizations" - ], - "description": "List all billing addons for an organization.\n", - "responses": { - "200": { - "description": "Addons list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addonList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/list-addons.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_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": { - "group": null, - "demo": "organizations\/create-baa-addon.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/addons\/premium-geo-db": { - "post": { - "summary": "Create Premium Geo DB addon", - "operationId": "organizationsCreatePremiumGeoDBAddon", - "tags": [ - "organizations" - ], - "description": "Create a Premium Geo DB addon for an organization.\n", - "responses": { - "201": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/create-premium-geo-db-addon.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/addons\/{addonId}": { - "get": { - "summary": "Get addon", - "operationId": "organizationsGetAddon", - "tags": [ - "organizations" - ], - "description": "Get the details of a billing addon for an organization.\n", - "responses": { - "200": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-addon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "<ADDON_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete addon", - "operationId": "organizationsDeleteAddon", - "tags": [ - "organizations" - ], - "description": "Delete a billing addon for an organization.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "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": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "<ADDON_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/addons\/{addon}\/price": { - "get": { - "summary": "Get addon price", - "operationId": "organizationsGetAddonPrice", - "tags": [ - "organizations" - ], - "description": "Get the price details for a billing addon for an organization.\n", - "responses": { - "200": { - "description": "AddonPrice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addonPrice" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-addon-price.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addon", - "description": "Addon key identifier (e.g. baa).", - "required": true, - "schema": { - "type": "string", - "example": "baa", - "title": "AddonKey", - "oneOf": [ - { - "type": "string", - "enum": [ - "baa" - ], - "title": "baa" - }, - { - "type": "string", - "enum": [ - "premiumgeodb" - ], - "title": "premiumgeodb" - }, - { - "type": "string", - "enum": [ - "premiumgeodborg" - ], - "title": "premiumgeodborg" - }, - { - "type": "string", - "enum": [ - "backup_recovery" - ], - "title": "backup_recovery" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/aggregations": { - "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", - "tags": [ - "organizations" - ], - "description": "Get a list of all aggregations for an organization.", - "responses": { - "200": { - "description": "Aggregation team list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/aggregationTeamList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/list-aggregations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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" - } - ] - } - }, - "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { - "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", - "tags": [ - "organizations" - ], - "description": "Get a specific aggregation using it's aggregation ID.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/aggregationTeam" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "aggregationId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "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", - "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" - } - ] - } - }, - "\/organizations\/{organizationId}\/billing-address": { - "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", - "tags": [ - "organizations" - ], - "description": "Set a billing address for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/set-billing-address.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingAddressId": { - "description": "Unique ID of billing address", - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - } - }, - "required": [ - "billingAddressId" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team's billing address", - "operationId": "organizationsDeleteBillingAddress", - "tags": [ - "organizations" - ], - "description": "Delete a team's billing address.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { - "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", - "tags": [ - "organizations" - ], - "description": "Get a billing address using it's ID.", - "responses": { - "200": { - "description": "Address", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingAddress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, - "schema": { - "type": "string", - "example": "<BILLING_ADDRESS_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/billing-email": { - "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", - "tags": [ - "organizations" - ], - "description": "Set the current billing email for the organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/set-billing-email.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingEmail": { - "description": "Billing email for the organization.", - "type": "string", - "example": "email@example.com", - "format": "email" - } - }, - "required": [ - "billingEmail" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/budget": { - "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", - "tags": [ - "organizations" - ], - "description": "Update the budget limit for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/update-budget.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "budget": { - "description": "Budget limit for additional usage set for the organization", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "alerts": { - "description": "Budget alert limit percentage", - "type": "array", - "default": [ - 75 - ], - "items": { - "type": "integer" - } - } - }, - "required": [ - "budget" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/credits": { - "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", - "tags": [ - "organizations" - ], - "description": "List all credits for an organization.\n", - "responses": { - "200": { - "description": "CreditList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/creditList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/list-credits.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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" - } - ] - }, - "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": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "couponId": { - "description": "ID of the coupon", - "type": "string", - "example": "<COUPON_ID>" - } - }, - "required": [ - "couponId" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/credits\/available": { - "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", - "tags": [ - "organizations" - ], - "description": "Get total available valid credits for an organization.", - "responses": { - "200": { - "description": "CreditAvailable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/creditAvailable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-available-credits.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/credits\/{creditId}": { - "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", - "tags": [ - "organizations" - ], - "description": "Get credit details.", - "responses": { - "200": { - "description": "Credit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/credit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-credit.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "creditId", - "description": "Credit Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<CREDIT_ID>" - }, - "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": "DeleteOrganization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/estimationDeleteOrganization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 120, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/estimations\/update-plan": { - "patch": { - "summary": "Estimate for update plan", - "operationId": "organizationsEstimationUpdatePlan", - "tags": [ - "organizations" - ], - "description": "Get estimation for updating the organization plan.", - "responses": { - "200": { - "description": "UpdatePlan", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/estimationUpdatePlan" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 120, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "description": "Organization billing plan chosen", - "type": "string", - "example": "tier-0" - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "<COUPON_ID>", - "nullable": true - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { - "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", - "tags": [ - "organizations" - ], - "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": { - "201": { - "description": "Downgrade Feedback", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/downgradeFeedback" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/create-downgrade-feedback.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "reason": { - "description": "Feedback reason", - "type": "string", - "example": "<REASON>" - }, - "message": { - "description": "Feedback message", - "type": "string", - "example": "<MESSAGE>" - }, - "fromPlanId": { - "description": "Plan downgrading from", - "type": "string", - "example": "<FROM_PLAN_ID>" - }, - "toPlanId": { - "description": "Plan downgrading to", - "type": "string", - "example": "<TO_PLAN_ID>" - } - }, - "required": [ - "reason", - "message", - "fromPlanId", - "toPlanId" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/invoices": { - "get": { - "summary": "List invoices", - "operationId": "organizationsListInvoices", - "tags": [ - "organizations" - ], - "description": "List all invoices for an organization.", - "responses": { - "200": { - "description": "Billing invoices list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoiceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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" - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { - "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", - "tags": [ - "organizations" - ], - "description": "Get an invoice by its unique ID.", - "responses": { - "200": { - "description": "Invoice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoice" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-invoice.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { - "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", - "tags": [ - "organizations" - ], - "description": "Download invoice in PDF", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-invoice-download.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [] - }, - { - "Project": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { - "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", - "tags": [ - "organizations" - ], - "description": "Initiate payment for failed invoice to pay live from console", - "responses": { - "200": { - "description": "Invoice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoice" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "description": "Payment method ID", - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", - "tags": [ - "organizations" - ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", - "responses": { - "200": { - "description": "Invoice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoice" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/validate-invoice.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { - "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", - "tags": [ - "organizations" - ], - "description": "View invoice in PDF", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-invoice-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [] - }, - { - "Project": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<INVOICE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", - "tags": [ - "organizations" - ], - "description": "Set a organization's default payment method.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/set-default-payment-method.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "description": "Unique ID of payment method", - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", - "tags": [ - "organizations" - ], - "description": "Delete the default payment method for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/delete-default-payment-method.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/set-backup-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "description": "Unique ID of payment method", - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", - "tags": [ - "organizations" - ], - "description": "Delete a backup payment method for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/delete-backup-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", - "tags": [ - "organizations" - ], - "description": "Get an organization's payment method using it's payment method ID.", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-payment-method.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/plan": { - "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", - "tags": [ - "organizations" - ], - "description": "Get the details of the current billing plan for an organization.", - "responses": { - "200": { - "description": "billingPlan", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingPlan" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-plan.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", - "tags": [ - "organizations" - ], - "description": "Update the billing plan for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/update-plan.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "description": "Organization billing plan chosen", - "type": "string", - "example": "tier-0" - }, - "paymentMethodId": { - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "type": "string", - "example": "<PAYMENT_METHOD_ID>", - "nullable": true - }, - "billingAddressId": { - "description": "Unique ID of billing address", - "type": "string", - "default": "", - "example": "<BILLING_ADDRESS_ID>" - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "<COUPON_ID>", - "nullable": true - }, - "taxId": { - "description": "Tax Id associated to billing.", - "type": "string", - "example": "<TAX_ID>", - "nullable": true - }, - "budget": { - "description": "Budget limit for additional usage set for the organization", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/plan\/estimations": { - "post": { - "summary": "Create billing plan estimation (upgrade or downgrade)", - "operationId": "organizationsCreatePlanEstimation", - "tags": [ - "organizations" - ], - "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", - "responses": { - "200": { - "description": "EstimationPlanChange", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/estimationPlanChange" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/create-plan-estimation.md", - "rate-limit": 120, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "description": "Target billing plan", - "type": "string", - "example": "tier-0" - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "<COUPON_ID>", - "nullable": true - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/regions": { - "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", - "tags": [ - "organizations" - ], - "description": "Get all available regions for an organization.", - "responses": { - "200": { - "description": "Regions list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/list-regions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", - "tags": [ - "organizations" - ], - "description": "Get Scopes", - "responses": { - "200": { - "description": "Roles", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/roles" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-scopes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization id", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "projectId", - "description": "Project id", - "required": false, - "schema": { - "type": "string", - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/set-billing-tax-id.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": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "taxId": { - "description": "Tax Id associated to billing.", - "type": "string", - "example": "<TAX_ID>", - "nullable": true - } - }, - "required": [ - "taxId" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/usage": { - "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", - "tags": [ - "organizations" - ], - "description": "Get the usage data for an organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageOrganization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "startDate", - "description": "Starting date for the usage", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "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", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "in": "query" - } - ] - } - }, - "\/organizations\/{organizationId}\/validate": { - "patch": { - "summary": "Validate payment for the organization after creation or upgrade", - "operationId": "organizationsValidatePayment", - "tags": [ - "organizations" - ], - "description": "Validate payment for team after creation or upgrade.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organizations\/validate-payment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "\/ping": { - "get": { - "summary": "Test the connection between the Appwrite and the SDK.", - "operationId": "pingGet", - "tags": [ - "ping" - ], - "description": "Send a ping to project as part of onboarding.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "ping\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "global", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [], - "Session": [] - } - ] - } - }, - "\/postgresql": { - "get": { - "summary": "List databases", - "operationId": "postgresqlList", - "tags": [ - "postgresql" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "postgresqlCreate", - "tags": [ - "postgresql" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/postgresql\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "postgresqlListSpecifications", - "tags": [ - "postgresql" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/postgresql\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "postgresqlGet", - "tags": [ - "postgresql" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "postgresqlUpdate", - "tags": [ - "postgresql" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "postgresqlDelete", - "tags": [ - "postgresql" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "postgresqlListBackups", - "tags": [ - "postgresql" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "postgresqlCreateBackup", - "tags": [ - "postgresql" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "postgresqlListBackupPolicies", - "tags": [ - "postgresql" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "postgresqlCreateBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "postgresqlGetBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "postgresqlUpdateBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "postgresqlDeleteBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "postgresqlUpdateBackupStorage", - "tags": [ - "postgresql" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "postgresqlGetBackup", - "tags": [ - "postgresql" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "postgresqlDeleteBackup", - "tags": [ - "postgresql" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "postgresqlListBranches", - "tags": [ - "postgresql" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "postgresqlCreateBranch", - "tags": [ - "postgresql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "postgresqlDeleteBranch", - "tags": [ - "postgresql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "postgresqlUpdateCredentials", - "tags": [ - "postgresql" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/executions": { - "post": { - "summary": "Create execution", - "operationId": "postgresqlCreateExecution", - "tags": [ - "postgresql" - ], - "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.center\/v1\/sql\/executions` 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": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "postgresql\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sql": { - "description": "SQL statement to execute. Exactly one statement per request.", - "type": "string", - "example": "<SQL>" - }, - "bindings": { - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "timeoutSeconds": { - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "sql" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/extensions": { - "get": { - "summary": "List extensions", - "operationId": "postgresqlListExtensions", - "tags": [ - "postgresql" - ], - "description": "List installed and available extensions for a PostgreSQL database.", - "responses": { - "200": { - "description": "Extensions", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/list-extensions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create extension", - "operationId": "postgresqlCreateExtension", - "tags": [ - "postgresql" - ], - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/create-extension.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { - "delete": { - "summary": "Delete extension", - "operationId": "postgresqlDeleteExtension", - "tags": [ - "postgresql" - ], - "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/delete-extension.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "extensionName", - "description": "Extension name to uninstall.", - "required": true, - "schema": { - "type": "string", - "example": "<EXTENSION_NAME>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "postgresqlCreateFailover", - "tags": [ - "postgresql" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "postgresql\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "postgresqlUpdateMaintenance", - "tags": [ - "postgresql" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "postgresqlCreateMigration", - "tags": [ - "postgresql" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "postgresql\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "postgresqlListOperations", - "tags": [ - "postgresql" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "postgresql\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/postgresql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "postgresqlGetPitr", - "tags": [ - "postgresql" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "postgresql\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/pooler": { - "get": { - "summary": "Get pooler", - "operationId": "postgresqlGetPooler", - "tags": [ - "postgresql" - ], - "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": { - "group": "pooler", - "demo": "postgresql\/get-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update pooler", - "operationId": "postgresqlUpdatePooler", - "tags": [ - "postgresql" - ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", - "responses": { - "200": { - "description": "PoolerConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pooler", - "demo": "postgresql\/update-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mode": { - "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.", - "type": "string", - "example": "transaction", - "nullable": true - }, - "maxConnections": { - "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", - "type": "integer", - "example": 10, - "format": "int32", - "nullable": true - }, - "defaultPoolSize": { - "description": "Default pool size per user.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "readWriteSplitting": { - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "poolerCpuRequest": { - "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).", - "type": "string", - "example": "<POOLER_CPU_REQUEST>", - "nullable": true - }, - "poolerCpuLimit": { - "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.", - "type": "string", - "example": "<POOLER_CPU_LIMIT>", - "nullable": true - }, - "poolerMemoryRequest": { - "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).", - "type": "string", - "example": "<POOLER_MEMORY_REQUEST>", - "nullable": true - }, - "poolerMemoryLimit": { - "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.", - "type": "string", - "example": "<POOLER_MEMORY_LIMIT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "postgresqlGetReplicas", - "tags": [ - "postgresql" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "postgresql\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "postgresqlListRestorations", - "tags": [ - "postgresql" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "postgresqlCreateRestoration", - "tags": [ - "postgresql" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "postgresqlGetRestoration", - "tags": [ - "postgresql" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "postgresqlGetStatus", - "tags": [ - "postgresql" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "postgresqlCreateUpgrade", - "tags": [ - "postgresql" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/presences": { - "get": { - "summary": "List presences", - "operationId": "presencesList", - "tags": [ - "presences" - ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", - "responses": { - "200": { - "description": "Presences List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presenceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/presences\/usage": { - "get": { - "summary": "Get presence usage", - "operationId": "presencesGetUsage", - "tags": [ - "presences" - ], - "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": "UsagePresence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usagePresence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "presences\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "example": "24h", - "title": "UsageRange", - "oneOf": [ - { - "type": "string", - "enum": [ - "24h" - ], - "title": "Twenty Four Hours" - }, - { - "type": "string", - "enum": [ - "30d" - ], - "title": "Thirty Days" - }, - { - "type": "string", - "enum": [ - "90d" - ], - "title": "Ninety Days" - } - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, - "\/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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", - "tags": [ - "presences" - ], - "description": "Create or update a presence log by its user ID.\n", - "responses": { - "200": { - "description": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/upsert.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "platforms": [ - "client", - "console" - ], - "summary": "Upsert presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "status", - "permissions", - "expiresAt", - "metadata" - ], - "required": [ - "presenceId", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "status" - ] - } - } - } - } - }, - "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", - "tags": [ - "presences" - ], - "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": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "update", - "namespace": "presences", - "platforms": [ - "client", - "console" - ], - "summary": "Update presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "status", - "expiresAt", - "metadata", - "permissions", - "purge" - ], - "required": [ - "presenceId" - ], - "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.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "purge": { - "description": "When true, purge cached responses used by list presences endpoint.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", - "tags": [ - "presences" - ], - "description": "Delete a presence log by its unique ID.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/project": { - "get": { - "summary": "Get project", - "operationId": "projectGet", - "tags": [ - "project" - ], - "description": "Get a project.", - "responses": { - "200": { - "description": "Project", - "content": { - "": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/get.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": [] - } - ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", - "tags": [ - "project" - ], - "description": "Delete a project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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\/auth-methods\/{methodId}": { - "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", - "tags": [ - "project" - ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-auth-method.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": [] - } - ], - "parameters": [ - { - "name": "methodId", - "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", - "required": true, - "schema": { - "type": "string", - "example": "email-password", - "title": "ProjectAuthMethodId", - "oneOf": [ - { - "type": "string", - "enum": [ - "email-password" - ], - "title": "email-password" - }, - { - "type": "string", - "enum": [ - "magic-url" - ], - "title": "magic-url" - }, - { - "type": "string", - "enum": [ - "email-otp" - ], - "title": "email-otp" - }, - { - "type": "string", - "enum": [ - "anonymous" - ], - "title": "anonymous" - }, - { - "type": "string", - "enum": [ - "invites" - ], - "title": "invites" - }, - { - "type": "string", - "enum": [ - "jwt" - ], - "title": "jwt" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Auth method status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/keys": { - "get": { - "summary": "List project keys", - "operationId": "projectListKeys", - "tags": [ - "project" - ], - "description": "Get a list of all API keys from the current project.", - "responses": { - "200": { - "description": "API Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/keyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/list-keys.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": [] - } - ], - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create project key", - "operationId": "projectCreateKey", - "tags": [ - "project" - ], - "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": { - "201": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/create-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyId": { - "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.", - "type": "string", - "example": "<KEY_ID>" - }, - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "keyId", - "name", - "scopes" - ] - } - } - } - } - } - }, - "\/project\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", - "tags": [ - "project" - ], - "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": { - "201": { - "description": "Ephemeral Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/create-ephemeral-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "duration": { - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "type": "integer", - "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": { - "group": "keys", - "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": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project key", - "operationId": "projectUpdateKey", - "tags": [ - "project" - ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/update-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", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", - "tags": [ - "project" - ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "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", - "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": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-labels.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": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "type": "array", - "example": [ - "production" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/project\/mock-phones": { - "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", - "tags": [ - "project" - ], - "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": "Mock Numbers List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mockNumberList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mocks", - "demo": "project\/list-mock-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "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", - "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": { - "group": "mocks", - "demo": "project\/create-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "number": { - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "otp": { - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "number", - "otp" - ] - } - } - } - } - } - }, - "\/project\/mock-phones\/{number}": { - "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", - "tags": [ - "project" - ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", - "responses": { - "200": { - "description": "Mock Number", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mockNumber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mocks", - "demo": "project\/get-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "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", - "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": { - "group": "mocks", - "demo": "project\/update-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", - "example": "+12065550100" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "otp": { - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "type": "string", - "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": { - "group": "mocks", - "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", - "example": "+12065550100" - }, - "in": "path" - } - ] - } - }, - "\/project\/oauth2": { - "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2ProviderList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/list-o-auth-2-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/oauth2-server": { - "put": { - "summary": "Update OAuth2 server", - "operationId": "projectUpdateOAuth2Server", - "tags": [ - "project" - ], - "description": "Update the OAuth2 server (OIDC provider) configuration.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-o-auth-2-server.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": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Enable or disable the OAuth2 server.", - "type": "boolean", - "example": false - }, - "authorizationUrl": { - "description": "URL to your application with consent screen.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "scopes": { - "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "authorizationDetailsTypes": { - "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "accessTokenDuration": { - "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "refreshTokenDuration": { - "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "publicAccessTokenDuration": { - "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "publicRefreshTokenDuration": { - "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "installationAccessTokenDuration": { - "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "confidentialPkce": { - "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "type": "boolean", - "example": false, - "nullable": true - }, - "verificationUrl": { - "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "userCodeLength": { - "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", - "type": "integer", - "example": 6, - "format": "int32", - "nullable": true - }, - "userCodeFormat": { - "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", - "type": "string", - "default": "alphanumeric", - "example": "numeric" - }, - "deviceCodeDuration": { - "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "defaultScopes": { - "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "installationScopes": { - "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - } - }, - "required": [ - "enabled", - "authorizationUrl" - ] - } - } - } - } - } - }, - "\/project\/oauth2\/amazon": { - "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Amazon configuration.", - "responses": { - "200": { - "description": "OAuth2Amazon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-amazon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/apple": { - "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Apple configuration.", - "responses": { - "200": { - "description": "OAuth2Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Apple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-apple.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "serviceId": { - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "type": "string", - "example": "<SERVICE_ID>", - "nullable": true - }, - "keyId": { - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "type": "string", - "example": "<KEY_ID>", - "nullable": true - }, - "teamId": { - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "type": "string", - "example": "<TEAM_ID>", - "nullable": true - }, - "p8File": { - "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-----", - "type": "string", - "example": "<P8_FILE>", - "nullable": true - }, - "nativeClientIds": { - "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enabled": { - "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", - "type": "boolean", - "example": false, - "nullable": true - }, - "nativeEnabled": { - "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/appwrite": { - "patch": { - "summary": "Update project OAuth2 Appwrite", - "operationId": "projectUpdateOAuth2Appwrite", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Appwrite configuration.", - "responses": { - "200": { - "description": "OAuth2Appwrite", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Appwrite" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-appwrite.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/auth0": { - "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Auth0 configuration.", - "responses": { - "200": { - "description": "OAuth2Auth0", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-auth-0.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "prompt": { - "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", - "type": "array", - "items": { - "title": "ProjectOAuth2Auth0Prompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/authentik": { - "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Authentik configuration.", - "responses": { - "200": { - "description": "OAuth2Authentik", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-authentik.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Authentik instance. For example: example.authentik.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/autodesk": { - "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Autodesk configuration.", - "responses": { - "200": { - "description": "OAuth2Autodesk", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-autodesk.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/bitbucket": { - "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Bitbucket configuration.", - "responses": { - "200": { - "description": "OAuth2Bitbucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-bitbucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "secret": { - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "type": "string", - "example": "<SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/bitly": { - "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Bitly configuration.", - "responses": { - "200": { - "description": "OAuth2Bitly", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-bitly.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/box": { - "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Box configuration.", - "responses": { - "200": { - "description": "OAuth2Box", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Box" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-box.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/cloudflare": { - "patch": { - "summary": "Update project OAuth2 Cloudflare", - "operationId": "projectUpdateOAuth2Cloudflare", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Cloudflare configuration.", - "responses": { - "200": { - "description": "OAuth2Cloudflare", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-cloudflare.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/dailymotion": { - "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Dailymotion configuration.", - "responses": { - "200": { - "description": "OAuth2Dailymotion", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-dailymotion.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "apiKey": { - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "type": "string", - "example": "<API_KEY>", - "nullable": true - }, - "apiSecret": { - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "type": "string", - "example": "<API_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/discord": { - "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Discord configuration.", - "responses": { - "200": { - "description": "OAuth2Discord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Discord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-discord.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", - "type": "array", - "items": { - "title": "ProjectOAuth2DiscordPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/disqus": { - "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Disqus configuration.", - "responses": { - "200": { - "description": "OAuth2Disqus", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-disqus.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "publicKey": { - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "type": "string", - "example": "<PUBLIC_KEY>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/dropbox": { - "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Dropbox configuration.", - "responses": { - "200": { - "description": "OAuth2Dropbox", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-dropbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appKey": { - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "type": "string", - "example": "<APP_KEY>", - "nullable": true - }, - "appSecret": { - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "type": "string", - "example": "<APP_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/etsy": { - "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Etsy configuration.", - "responses": { - "200": { - "description": "OAuth2Etsy", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-etsy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyString": { - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "type": "string", - "example": "<KEY_STRING>", - "nullable": true - }, - "sharedSecret": { - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "type": "string", - "example": "<SHARED_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/facebook": { - "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Facebook configuration.", - "responses": { - "200": { - "description": "OAuth2Facebook", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-facebook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "type": "string", - "example": "<APP_ID>", - "nullable": true - }, - "appSecret": { - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "type": "string", - "example": "<APP_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/figma": { - "patch": { - "summary": "Update project OAuth2 Figma", - "operationId": "projectUpdateOAuth2Figma", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Figma configuration.", - "responses": { - "200": { - "description": "OAuth2Figma", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Figma" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-figma.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/fusionauth": { - "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 FusionAuth configuration.", - "responses": { - "200": { - "description": "OAuth2FusionAuth", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-fusion-auth.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/github": { - "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 GitHub configuration.", - "responses": { - "200": { - "description": "OAuth2GitHub", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Github" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-git-hub.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", - "type": "array", - "items": { - "title": "ProjectOAuth2GitHubPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/gitlab": { - "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Gitlab configuration.", - "responses": { - "200": { - "description": "OAuth2Gitlab", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-gitlab.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "type": "string", - "example": "<APPLICATION_ID>", - "nullable": true - }, - "secret": { - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "type": "string", - "example": "<SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/google": { - "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Google configuration.", - "responses": { - "200": { - "description": "OAuth2Google", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Google" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-google.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "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.", - "type": "array", - "items": { - "title": "ProjectOAuth2GooglePrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "nativeClientIds": { - "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enabled": { - "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", - "type": "boolean", - "example": false, - "nullable": true - }, - "nativeEnabled": { - "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/huggingface": { - "patch": { - "summary": "Update project OAuth2 Hugging Face", - "operationId": "projectUpdateOAuth2HuggingFace", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Hugging Face configuration.", - "responses": { - "200": { - "description": "OAuth2HuggingFace", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2HuggingFace" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-hugging-face.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/kakao": { - "patch": { - "summary": "Update project OAuth2 Kakao", - "operationId": "projectUpdateOAuth2Kakao", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Kakao configuration.", - "responses": { - "200": { - "description": "OAuth2Kakao", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-kakao.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", - "type": "array", - "items": { - "title": "ProjectOAuth2KakaoPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "create" - ], - "title": "create" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/keycloak": { - "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Keycloak configuration.", - "responses": { - "200": { - "description": "OAuth2Keycloak", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-keycloak.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "realmName": { - "description": "Keycloak realm name. For example: appwrite-realm", - "type": "string", - "example": "<REALM_NAME>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/kick": { - "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Kick configuration.", - "responses": { - "200": { - "description": "OAuth2Kick", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kick" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-kick.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/linkedin": { - "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Linkedin configuration.", - "responses": { - "200": { - "description": "OAuth2Linkedin", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-linkedin.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "primaryClientSecret": { - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "type": "string", - "example": "<PRIMARY_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/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": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-microsoft.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "type": "string", - "example": "<APPLICATION_ID>", - "nullable": true - }, - "applicationSecret": { - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "type": "string", - "example": "<APPLICATION_SECRET>", - "nullable": true - }, - "tenant": { - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "type": "string", - "example": "<TENANT>", - "nullable": true - }, - "prompt": { - "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", - "type": "array", - "items": { - "title": "ProjectOAuth2MicrosoftPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/notion": { - "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Notion configuration.", - "responses": { - "200": { - "description": "OAuth2Notion", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Notion" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-notion.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauthClientId": { - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "type": "string", - "example": "<OAUTH_CLIENT_ID>", - "nullable": true - }, - "oauthClientSecret": { - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "type": "string", - "example": "<OAUTH_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/oidc": { - "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Oidc configuration.", - "responses": { - "200": { - "description": "OAuth2Oidc", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-oidc.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "wellKnownURL": { - "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", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "authorizationURL": { - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "tokenURL": { - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "userInfoURL": { - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "prompt": { - "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "type": "array", - "items": { - "title": "ProjectOAuth2OidcPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "maxAge": { - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Okta configuration.", - "responses": { - "200": { - "description": "OAuth2Okta", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Okta" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-okta.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "domain": { - "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\/", - "type": "string", - "example": "example.com", - "nullable": true - }, - "authorizationServerId": { - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "type": "string", - "example": "<AUTHORIZATION_SERVER_ID>", - "nullable": true - }, - "prompt": { - "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", - "type": "array", - "items": { - "title": "ProjectOAuth2OktaPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/paypal": { - "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Paypal configuration.", - "responses": { - "200": { - "description": "OAuth2Paypal", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-paypal.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", - "responses": { - "200": { - "description": "OAuth2Paypal", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/podio": { - "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Podio configuration.", - "responses": { - "200": { - "description": "OAuth2Podio", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Podio" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-podio.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/resend": { - "patch": { - "summary": "Update project OAuth2 Resend", - "operationId": "projectUpdateOAuth2Resend", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Resend configuration.", - "responses": { - "200": { - "description": "OAuth2Resend", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Resend" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-resend.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Salesforce configuration.", - "responses": { - "200": { - "description": "OAuth2Salesforce", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-salesforce.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "customerKey": { - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "type": "string", - "example": "<CUSTOMER_KEY>", - "nullable": true - }, - "customerSecret": { - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "type": "string", - "example": "<CUSTOMER_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", - "type": "array", - "items": { - "title": "ProjectOAuth2SalesforcePrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Slack configuration.", - "responses": { - "200": { - "description": "OAuth2Slack", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Slack" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-slack.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/spotify": { - "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Spotify configuration.", - "responses": { - "200": { - "description": "OAuth2Spotify", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-spotify.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Stripe configuration.", - "responses": { - "200": { - "description": "OAuth2Stripe", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-stripe.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "apiSecretKey": { - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "type": "string", - "example": "<API_SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tiktok": { - "patch": { - "summary": "Update project OAuth2 TikTok", - "operationId": "projectUpdateOAuth2TikTok", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 TikTok configuration.", - "responses": { - "200": { - "description": "OAuth2TikTok", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tik-tok.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Tradeshift configuration.", - "responses": { - "200": { - "description": "OAuth2Tradeshift", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "type": "string", - "example": "<OAUTH2_CLIENT_ID>", - "nullable": true - }, - "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "type": "string", - "example": "<OAUTH2_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", - "responses": { - "200": { - "description": "OAuth2Tradeshift", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "type": "string", - "example": "<OAUTH2_CLIENT_ID>", - "nullable": true - }, - "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "type": "string", - "example": "<OAUTH2_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Twitch configuration.", - "responses": { - "200": { - "description": "OAuth2Twitch", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-twitch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/webflow": { - "patch": { - "summary": "Update project OAuth2 Webflow", - "operationId": "projectUpdateOAuth2Webflow", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Webflow configuration.", - "responses": { - "200": { - "description": "OAuth2Webflow", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Webflow" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-webflow.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 WordPress configuration.", - "responses": { - "200": { - "description": "OAuth2WordPress", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2WordPress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-word-press.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/x": { - "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 X configuration.", - "responses": { - "200": { - "description": "OAuth2X", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2X" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2x.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "customerKey": { - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "type": "string", - "example": "<CUSTOMER_KEY>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/yahoo": { - "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Yahoo configuration.", - "responses": { - "200": { - "description": "OAuth2Yahoo", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-yahoo.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/yandex": { - "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Yandex configuration.", - "responses": { - "200": { - "description": "OAuth2Yandex", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yandex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-yandex.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/zoho": { - "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Zoho configuration.", - "responses": { - "200": { - "description": "OAuth2Zoho", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoho" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", - "type": "array", - "items": { - "title": "ProjectOAuth2ZohoPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "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": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-zoom.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "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 OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", - "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\/oAuth2Webflow" - }, - { - "$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\/oAuth2HuggingFace" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Resend" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - }, - { - "$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" - }, - { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - ], - "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", - "webflow": "#\/components\/schemas\/oAuth2Webflow", - "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", - "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", - "resend": "#\/components\/schemas\/oAuth2Resend", - "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", - "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", - "tiktok": "#\/components\/schemas\/oAuth2TikTok", - "kakao": "#\/components\/schemas\/oAuth2Kakao" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/get-o-auth-2-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.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", - "example": "amazon", - "title": "ProjectOAuthProviderId", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", - "tags": [ - "project" - ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", - "responses": { - "200": { - "description": "Platforms List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/list-platforms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.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: 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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/platforms\/android": { - "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Android", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-android-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "applicationId": { - "description": "Android application ID. Max length: 256 chars.", - "type": "string", - "example": "<APPLICATION_ID>" - } - }, - "required": [ - "platformId", - "name", - "applicationId" - ] - } - } - } - } - } - }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", - "tags": [ - "project" - ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", - "responses": { - "200": { - "description": "Platform Android", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-android-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", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "applicationId": { - "description": "Android application ID. Max length: 256 chars.", - "type": "string", - "example": "<APPLICATION_ID>" - } - }, - "required": [ - "name", - "applicationId" - ] - } - } - } - } - } - }, - "\/project\/platforms\/apple": { - "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", - "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.", - "responses": { - "201": { - "description": "Platform Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformApple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-apple-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "bundleIdentifier": { - "description": "Apple bundle identifier. Max length: 256 chars.", - "type": "string", - "example": "<BUNDLE_IDENTIFIER>" - } - }, - "required": [ - "platformId", - "name", - "bundleIdentifier" - ] - } - } - } - } - } - }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", - "tags": [ - "project" - ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", - "responses": { - "200": { - "description": "Platform Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformApple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-apple-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", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "bundleIdentifier": { - "description": "Apple bundle identifier. Max length: 256 chars.", - "type": "string", - "example": "<BUNDLE_IDENTIFIER>" - } - }, - "required": [ - "name", - "bundleIdentifier" - ] - } - } - } - } - } - }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Linux", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformLinux" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-linux-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageName": { - "description": "Linux package name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_NAME>" - } - }, - "required": [ - "platformId", - "name", - "packageName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", - "tags": [ - "project" - ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", - "responses": { - "200": { - "description": "Platform Linux", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformLinux" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-linux-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", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageName": { - "description": "Linux package name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_NAME>" - } - }, - "required": [ - "name", - "packageName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Web", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWeb" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-web-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "hostname": { - "description": "Platform web hostname. Max length: 256 chars.", - "type": "string", - "example": "app.example.com" - } - }, - "required": [ - "platformId", - "name", - "hostname" - ] - } - } - } - } - } - }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", - "tags": [ - "project" - ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", - "responses": { - "200": { - "description": "Platform Web", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWeb" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-web-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", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "hostname": { - "description": "Platform web hostname. Max length: 256 chars.", - "type": "string", - "example": "app.example.com" - } - }, - "required": [ - "name", - "hostname" - ] - } - } - } - } - } - }, - "\/project\/platforms\/windows": { - "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Windows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-windows-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": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageIdentifierName": { - "description": "Windows package identifier name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_IDENTIFIER_NAME>" - } - }, - "required": [ - "platformId", - "name", - "packageIdentifierName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", - "tags": [ - "project" - ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", - "responses": { - "200": { - "description": "Platform Windows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-windows-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", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageIdentifierName": { - "description": "Windows package identifier name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_IDENTIFIER_NAME>" - } - }, - "required": [ - "name", - "packageIdentifierName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/{platformId}": { - "get": { - "summary": "Get project platform", - "operationId": "projectGetPlatform", - "tags": [ - "project" - ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", - "responses": { - "200": { - "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", - "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" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/get-platform.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", - "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": { - "group": "platforms", - "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", - "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.", - "responses": { - "200": { - "description": "Policies List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/policyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/list-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/policies\/deny-aliased-email": { - "patch": { - "summary": "Update deny aliased email policy", - "operationId": "projectUpdateDenyAliasedEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block aliased emails during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-corporate-email": { - "patch": { - "summary": "Update deny non-corporate email policy", - "operationId": "projectUpdateDenyCorporateEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-deny-corporate-email-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-disposable-email": { - "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-free-email": { - "patch": { - "summary": "Update deny free email policy", - "operationId": "projectUpdateDenyFreeEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block free email addresses during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/membership-privacy": { - "patch": { - "summary": "Update membership privacy policy", - "operationId": "projectUpdateMembershipPrivacyPolicy", - "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..", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userEmail": { - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userPhone": { - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userName": { - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userMFA": { - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userAccessedAt": { - "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/mfa-factors": { - "patch": { - "summary": "Update MFA factors policy", - "operationId": "projectUpdateMFAFactorsPolicy", - "tags": [ - "project" - ], - "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-mfa-factors-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "totp": { - "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "email": { - "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "phone": { - "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "custom": { - "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/password-dictionary": { - "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-dictionary-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-history": { - "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-history-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "total" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-personal-data": { - "patch": { - "summary": "Update password personal data policy", - "operationId": "projectUpdatePasswordPersonalDataPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-personal-data-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-pwned": { - "patch": { - "summary": "Update password pwned policy", - "operationId": "projectUpdatePasswordPwnedPolicy", - "tags": [ - "project" - ], - "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-pwned-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", - "type": "boolean", - "example": false - }, - "sessions": { - "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", - "type": "boolean", - "example": false - }, - "users": { - "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/password-strength": { - "patch": { - "summary": "Update password strength policy", - "operationId": "projectUpdatePasswordStrengthPolicy", - "tags": [ - "project" - ], - "description": "Update the password strength requirements for users in the project.", - "responses": { - "200": { - "description": "Policy Password Strength", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-strength-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "min": { - "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", - "type": "integer", - "example": 8, - "format": "int32" - }, - "uppercase": { - "description": "Whether passwords must include at least one uppercase letter.", - "type": "boolean", - "example": false - }, - "lowercase": { - "description": "Whether passwords must include at least one lowercase letter.", - "type": "boolean", - "example": false - }, - "number": { - "description": "Whether passwords must include at least one number.", - "type": "boolean", - "example": false - }, - "symbols": { - "description": "Whether passwords must include at least one symbol.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/session-alert": { - "patch": { - "summary": "Update session alert policy", - "operationId": "projectUpdateSessionAlertPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-session-alert-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/session-duration": { - "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", - "tags": [ - "project" - ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-session-duration-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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", - "type": "integer", - "example": 60, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } - } - } - } - } - }, - "\/project\/policies\/session-invalidation": { - "patch": { - "summary": "Update session invalidation policy", - "operationId": "projectUpdateSessionInvalidationPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "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": { - "group": "policies", - "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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", - "type": "integer", - "example": 1, - "format": "int32" - } - }, - "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": { - "group": "policies", - "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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "total" - ] - } - } - } - } - } - }, - "\/project\/policies\/{policyId}": { - "get": { - "summary": "Get project policy", - "operationId": "projectGetPolicy", - "tags": [ - "project" - ], - "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", - "responses": { - "200": { - "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", - "content": { - "application\/json": { - "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPwned" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$ref": "#\/components\/schemas\/policyMfaFactors" - }, - { - "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyFreeEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", - "password-history": "#\/components\/schemas\/policyPasswordHistory", - "password-strength": "#\/components\/schemas\/policyPasswordStrength", - "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", - "password-pwned": "#\/components\/schemas\/policyPasswordPwned", - "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", - "mfa-factors": "#\/components\/schemas\/policyMfaFactors", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/get-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", - "required": true, - "schema": { - "type": "string", - "example": "password-dictionary", - "title": "ProjectPolicyId", - "oneOf": [ - { - "type": "string", - "enum": [ - "password-dictionary" - ], - "title": "password-dictionary" - }, - { - "type": "string", - "enum": [ - "password-history" - ], - "title": "password-history" - }, - { - "type": "string", - "enum": [ - "password-strength" - ], - "title": "password-strength" - }, - { - "type": "string", - "enum": [ - "password-personal-data" - ], - "title": "password-personal-data" - }, - { - "type": "string", - "enum": [ - "password-pwned" - ], - "title": "password-pwned" - }, - { - "type": "string", - "enum": [ - "session-alert" - ], - "title": "session-alert" - }, - { - "type": "string", - "enum": [ - "session-duration" - ], - "title": "session-duration" - }, - { - "type": "string", - "enum": [ - "session-invalidation" - ], - "title": "session-invalidation" - }, - { - "type": "string", - "enum": [ - "session-limit" - ], - "title": "session-limit" - }, - { - "type": "string", - "enum": [ - "user-limit" - ], - "title": "user-limit" - }, - { - "type": "string", - "enum": [ - "membership-privacy" - ], - "title": "membership-privacy" - }, - { - "type": "string", - "enum": [ - "mfa-factors" - ], - "title": "mfa-factors" - }, - { - "type": "string", - "enum": [ - "deny-aliased-email" - ], - "title": "deny-aliased-email" - }, - { - "type": "string", - "enum": [ - "deny-disposable-email" - ], - "title": "deny-disposable-email" - }, - { - "type": "string", - "enum": [ - "deny-free-email" - ], - "title": "deny-free-email" - }, - { - "type": "string", - "enum": [ - "deny-corporate-email" - ], - "title": "deny-corporate-email" - } - ] - }, - "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": { - "group": null, - "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": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "protocolId", - "description": "Protocol name. Can be one of: rest, graphql, websocket", - "required": true, - "schema": { - "type": "string", - "example": "rest", - "title": "ProjectProtocolId", - "oneOf": [ - { - "type": "string", - "enum": [ - "rest" - ], - "title": "rest" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "websocket" - ], - "title": "websocket" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Protocol status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/services\/{serviceId}": { - "patch": { - "summary": "Update project service", - "operationId": "projectUpdateService", - "tags": [ - "project" - ], - "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-service.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": [] - } - ], - "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, oauth2", - "required": true, - "schema": { - "type": "string", - "example": "account", - "title": "ProjectServiceId", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "avatars" - ], - "title": "avatars" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "locale" - ], - "title": "locale" - }, - { - "type": "string", - "enum": [ - "health" - ], - "title": "health" - }, - { - "type": "string", - "enum": [ - "project" - ], - "title": "project" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "vcs" - ], - "title": "vcs" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "proxy" - ], - "title": "proxy" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "migrations" - ], - "title": "migrations" - }, - { - "type": "string", - "enum": [ - "messaging" - ], - "title": "messaging" - }, - { - "type": "string", - "enum": [ - "advisor" - ], - "title": "advisor" - }, - { - "type": "string", - "enum": [ - "oauth2" - ], - "title": "oauth2" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Service status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/smtp": { - "patch": { - "summary": "Update project SMTP configuration", - "operationId": "projectUpdateSMTP", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "smtp", - "demo": "project\/update-smtp.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": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "host": { - "description": "SMTP server hostname (domain)", - "type": "string", - "example": "example.com", - "nullable": true - }, - "port": { - "description": "SMTP server port", - "type": "integer", - "example": 587, - "format": "int32", - "nullable": true - }, - "username": { - "description": "SMTP server username. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<USERNAME>", - "nullable": true - }, - "password": { - "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).", - "type": "string", - "example": "password", - "format": "password", - "nullable": true - }, - "senderEmail": { - "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "senderName": { - "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<SENDER_NAME>", - "nullable": true - }, - "replyToEmail": { - "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "nullable": true - }, - "secure": { - "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "type": "string", - "example": "tls", - "title": "ProjectSMTPSecure", - "oneOf": [ - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - } - ], - "nullable": true - }, - "enabled": { - "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/smtp\/tests": { - "post": { - "summary": "Create project SMTP test", - "operationId": "projectCreateSMTPTest", - "tags": [ - "project" - ], - "description": "Send a test email to verify SMTP configuration. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "smtp", - "demo": "project\/create-smtp-test.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": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emails": { - "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", - "type": "array", - "example": [ - "recipient@example.com" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "emails" - ] - } - } - } - } - } - }, - "\/project\/templates\/email": { - "get": { - "summary": "List project email templates", - "operationId": "projectListEmailTemplates", - "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.", - "responses": { - "200": { - "description": "Email Templates List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/emailTemplateList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "project\/list-email-templates.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": [], - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "patch": { - "summary": "Update project email template", - "operationId": "projectUpdateEmailTemplate", - "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.", - "responses": { - "200": { - "description": "EmailTemplate", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "project\/update-email-template.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "templates.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "templateId": { - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", - "type": "string", - "example": "verification", - "title": "ProjectEmailTemplateId", - "oneOf": [ - { - "type": "string", - "enum": [ - "verification" - ], - "title": "verification" - }, - { - "type": "string", - "enum": [ - "magicSession" - ], - "title": "magicSession" - }, - { - "type": "string", - "enum": [ - "recovery" - ], - "title": "recovery" - }, - { - "type": "string", - "enum": [ - "invitation" - ], - "title": "invitation" - }, - { - "type": "string", - "enum": [ - "mfaChallenge" - ], - "title": "mfaChallenge" - }, - { - "type": "string", - "enum": [ - "sessionAlert" - ], - "title": "sessionAlert" - }, - { - "type": "string", - "enum": [ - "otpSession" - ], - "title": "otpSession" - }, - { - "type": "string", - "enum": [ - "otpVerification" - ], - "title": "otpVerification" - }, - { - "type": "string", - "enum": [ - "otpRecovery" - ], - "title": "otpRecovery" - } - ] - }, - "locale": { - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "type": "string", - "example": "af", - "title": "ProjectEmailTemplateLocale", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "af" - }, - { - "type": "string", - "enum": [ - "ar-ae" - ], - "title": "ar-ae" - }, - { - "type": "string", - "enum": [ - "ar-bh" - ], - "title": "ar-bh" - }, - { - "type": "string", - "enum": [ - "ar-dz" - ], - "title": "ar-dz" - }, - { - "type": "string", - "enum": [ - "ar-eg" - ], - "title": "ar-eg" - }, - { - "type": "string", - "enum": [ - "ar-iq" - ], - "title": "ar-iq" - }, - { - "type": "string", - "enum": [ - "ar-jo" - ], - "title": "ar-jo" - }, - { - "type": "string", - "enum": [ - "ar-kw" - ], - "title": "ar-kw" - }, - { - "type": "string", - "enum": [ - "ar-lb" - ], - "title": "ar-lb" - }, - { - "type": "string", - "enum": [ - "ar-ly" - ], - "title": "ar-ly" - }, - { - "type": "string", - "enum": [ - "ar-ma" - ], - "title": "ar-ma" - }, - { - "type": "string", - "enum": [ - "ar-om" - ], - "title": "ar-om" - }, - { - "type": "string", - "enum": [ - "ar-qa" - ], - "title": "ar-qa" - }, - { - "type": "string", - "enum": [ - "ar-sa" - ], - "title": "ar-sa" - }, - { - "type": "string", - "enum": [ - "ar-sy" - ], - "title": "ar-sy" - }, - { - "type": "string", - "enum": [ - "ar-tn" - ], - "title": "ar-tn" - }, - { - "type": "string", - "enum": [ - "ar-ye" - ], - "title": "ar-ye" - }, - { - "type": "string", - "enum": [ - "as" - ], - "title": "as" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "az" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "be" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "bg" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "bh" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "bn" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "bs" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "ca" - }, - { - "type": "string", - "enum": [ - "cs" - ], - "title": "cs" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "cy" - }, - { - "type": "string", - "enum": [ - "da" - ], - "title": "da" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "de" - }, - { - "type": "string", - "enum": [ - "de-at" - ], - "title": "de-at" - }, - { - "type": "string", - "enum": [ - "de-ch" - ], - "title": "de-ch" - }, - { - "type": "string", - "enum": [ - "de-li" - ], - "title": "de-li" - }, - { - "type": "string", - "enum": [ - "de-lu" - ], - "title": "de-lu" - }, - { - "type": "string", - "enum": [ - "el" - ], - "title": "el" - }, - { - "type": "string", - "enum": [ - "en" - ], - "title": "en" - }, - { - "type": "string", - "enum": [ - "en-au" - ], - "title": "en-au" - }, - { - "type": "string", - "enum": [ - "en-bz" - ], - "title": "en-bz" - }, - { - "type": "string", - "enum": [ - "en-ca" - ], - "title": "en-ca" - }, - { - "type": "string", - "enum": [ - "en-gb" - ], - "title": "en-gb" - }, - { - "type": "string", - "enum": [ - "en-ie" - ], - "title": "en-ie" - }, - { - "type": "string", - "enum": [ - "en-jm" - ], - "title": "en-jm" - }, - { - "type": "string", - "enum": [ - "en-nz" - ], - "title": "en-nz" - }, - { - "type": "string", - "enum": [ - "en-tt" - ], - "title": "en-tt" - }, - { - "type": "string", - "enum": [ - "en-us" - ], - "title": "en-us" - }, - { - "type": "string", - "enum": [ - "en-za" - ], - "title": "en-za" - }, - { - "type": "string", - "enum": [ - "eo" - ], - "title": "eo" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "es" - }, - { - "type": "string", - "enum": [ - "es-ar" - ], - "title": "es-ar" - }, - { - "type": "string", - "enum": [ - "es-bo" - ], - "title": "es-bo" - }, - { - "type": "string", - "enum": [ - "es-cl" - ], - "title": "es-cl" - }, - { - "type": "string", - "enum": [ - "es-co" - ], - "title": "es-co" - }, - { - "type": "string", - "enum": [ - "es-cr" - ], - "title": "es-cr" - }, - { - "type": "string", - "enum": [ - "es-do" - ], - "title": "es-do" - }, - { - "type": "string", - "enum": [ - "es-ec" - ], - "title": "es-ec" - }, - { - "type": "string", - "enum": [ - "es-gt" - ], - "title": "es-gt" - }, - { - "type": "string", - "enum": [ - "es-hn" - ], - "title": "es-hn" - }, - { - "type": "string", - "enum": [ - "es-mx" - ], - "title": "es-mx" - }, - { - "type": "string", - "enum": [ - "es-ni" - ], - "title": "es-ni" - }, - { - "type": "string", - "enum": [ - "es-pa" - ], - "title": "es-pa" - }, - { - "type": "string", - "enum": [ - "es-pe" - ], - "title": "es-pe" - }, - { - "type": "string", - "enum": [ - "es-pr" - ], - "title": "es-pr" - }, - { - "type": "string", - "enum": [ - "es-py" - ], - "title": "es-py" - }, - { - "type": "string", - "enum": [ - "es-sv" - ], - "title": "es-sv" - }, - { - "type": "string", - "enum": [ - "es-uy" - ], - "title": "es-uy" - }, - { - "type": "string", - "enum": [ - "es-ve" - ], - "title": "es-ve" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "et" - }, - { - "type": "string", - "enum": [ - "eu" - ], - "title": "eu" - }, - { - "type": "string", - "enum": [ - "fa" - ], - "title": "fa" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "fi" - }, - { - "type": "string", - "enum": [ - "fo" - ], - "title": "fo" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "fr" - }, - { - "type": "string", - "enum": [ - "fr-be" - ], - "title": "fr-be" - }, - { - "type": "string", - "enum": [ - "fr-ca" - ], - "title": "fr-ca" - }, - { - "type": "string", - "enum": [ - "fr-ch" - ], - "title": "fr-ch" - }, - { - "type": "string", - "enum": [ - "fr-lu" - ], - "title": "fr-lu" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "ga" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "gd" - }, - { - "type": "string", - "enum": [ - "he" - ], - "title": "he" - }, - { - "type": "string", - "enum": [ - "hi" - ], - "title": "hi" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "hr" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "hu" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "id" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "is" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "it" - }, - { - "type": "string", - "enum": [ - "it-ch" - ], - "title": "it-ch" - }, - { - "type": "string", - "enum": [ - "ja" - ], - "title": "ja" - }, - { - "type": "string", - "enum": [ - "ji" - ], - "title": "ji" - }, - { - "type": "string", - "enum": [ - "ko" - ], - "title": "ko" - }, - { - "type": "string", - "enum": [ - "ku" - ], - "title": "ku" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "lt" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "lv" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "mk" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "ml" - }, - { - "type": "string", - "enum": [ - "ms" - ], - "title": "ms" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "mt" - }, - { - "type": "string", - "enum": [ - "nb" - ], - "title": "nb" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "ne" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "nl" - }, - { - "type": "string", - "enum": [ - "nl-be" - ], - "title": "nl-be" - }, - { - "type": "string", - "enum": [ - "nn" - ], - "title": "nn" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "no" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "pa" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "pl" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "pt" - }, - { - "type": "string", - "enum": [ - "pt-br" - ], - "title": "pt-br" - }, - { - "type": "string", - "enum": [ - "rm" - ], - "title": "rm" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "ro" - }, - { - "type": "string", - "enum": [ - "ro-md" - ], - "title": "ro-md" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "ru" - }, - { - "type": "string", - "enum": [ - "ru-md" - ], - "title": "ru-md" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "sb" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "sk" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "sl" - }, - { - "type": "string", - "enum": [ - "sq" - ], - "title": "sq" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "sr" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "sv" - }, - { - "type": "string", - "enum": [ - "sv-fi" - ], - "title": "sv-fi" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "th" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "tn" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "tr" - }, - { - "type": "string", - "enum": [ - "ts" - ], - "title": "ts" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "ua" - }, - { - "type": "string", - "enum": [ - "ur" - ], - "title": "ur" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "ve" - }, - { - "type": "string", - "enum": [ - "vi" - ], - "title": "vi" - }, - { - "type": "string", - "enum": [ - "xh" - ], - "title": "xh" - }, - { - "type": "string", - "enum": [ - "zh-cn" - ], - "title": "zh-cn" - }, - { - "type": "string", - "enum": [ - "zh-hk" - ], - "title": "zh-hk" - }, - { - "type": "string", - "enum": [ - "zh-sg" - ], - "title": "zh-sg" - }, - { - "type": "string", - "enum": [ - "zh-tw" - ], - "title": "zh-tw" - }, - { - "type": "string", - "enum": [ - "zu" - ], - "title": "zu" - } - ] - }, - "subject": { - "description": "Subject of the email template. Can be up to 255 characters.", - "type": "string", - "example": "<SUBJECT>", - "nullable": true - }, - "message": { - "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "type": "string", - "example": "<MESSAGE>", - "nullable": true - }, - "senderName": { - "description": "Name of the email sender.", - "type": "string", - "example": "<SENDER_NAME>", - "nullable": true - }, - "senderEmail": { - "description": "Email of the sender. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToEmail": { - "description": "Reply to email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Reply to name.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "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": { - "group": "templates", - "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": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", - "required": true, - "schema": { - "type": "string", - "example": "verification", - "title": "ProjectEmailTemplateId", - "oneOf": [ - { - "type": "string", - "enum": [ - "verification" - ], - "title": "verification" - }, - { - "type": "string", - "enum": [ - "magicSession" - ], - "title": "magicSession" - }, - { - "type": "string", - "enum": [ - "recovery" - ], - "title": "recovery" - }, - { - "type": "string", - "enum": [ - "invitation" - ], - "title": "invitation" - }, - { - "type": "string", - "enum": [ - "mfaChallenge" - ], - "title": "mfaChallenge" - }, - { - "type": "string", - "enum": [ - "sessionAlert" - ], - "title": "sessionAlert" - }, - { - "type": "string", - "enum": [ - "otpSession" - ], - "title": "otpSession" - }, - { - "type": "string", - "enum": [ - "otpVerification" - ], - "title": "otpVerification" - }, - { - "type": "string", - "enum": [ - "otpRecovery" - ], - "title": "otpRecovery" - } - ] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "schema": { - "type": "string", - "example": "af", - "title": "ProjectEmailTemplateLocale", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "af" - }, - { - "type": "string", - "enum": [ - "ar-ae" - ], - "title": "ar-ae" - }, - { - "type": "string", - "enum": [ - "ar-bh" - ], - "title": "ar-bh" - }, - { - "type": "string", - "enum": [ - "ar-dz" - ], - "title": "ar-dz" - }, - { - "type": "string", - "enum": [ - "ar-eg" - ], - "title": "ar-eg" - }, - { - "type": "string", - "enum": [ - "ar-iq" - ], - "title": "ar-iq" - }, - { - "type": "string", - "enum": [ - "ar-jo" - ], - "title": "ar-jo" - }, - { - "type": "string", - "enum": [ - "ar-kw" - ], - "title": "ar-kw" - }, - { - "type": "string", - "enum": [ - "ar-lb" - ], - "title": "ar-lb" - }, - { - "type": "string", - "enum": [ - "ar-ly" - ], - "title": "ar-ly" - }, - { - "type": "string", - "enum": [ - "ar-ma" - ], - "title": "ar-ma" - }, - { - "type": "string", - "enum": [ - "ar-om" - ], - "title": "ar-om" - }, - { - "type": "string", - "enum": [ - "ar-qa" - ], - "title": "ar-qa" - }, - { - "type": "string", - "enum": [ - "ar-sa" - ], - "title": "ar-sa" - }, - { - "type": "string", - "enum": [ - "ar-sy" - ], - "title": "ar-sy" - }, - { - "type": "string", - "enum": [ - "ar-tn" - ], - "title": "ar-tn" - }, - { - "type": "string", - "enum": [ - "ar-ye" - ], - "title": "ar-ye" - }, - { - "type": "string", - "enum": [ - "as" - ], - "title": "as" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "az" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "be" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "bg" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "bh" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "bn" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "bs" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "ca" - }, - { - "type": "string", - "enum": [ - "cs" - ], - "title": "cs" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "cy" - }, - { - "type": "string", - "enum": [ - "da" - ], - "title": "da" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "de" - }, - { - "type": "string", - "enum": [ - "de-at" - ], - "title": "de-at" - }, - { - "type": "string", - "enum": [ - "de-ch" - ], - "title": "de-ch" - }, - { - "type": "string", - "enum": [ - "de-li" - ], - "title": "de-li" - }, - { - "type": "string", - "enum": [ - "de-lu" - ], - "title": "de-lu" - }, - { - "type": "string", - "enum": [ - "el" - ], - "title": "el" - }, - { - "type": "string", - "enum": [ - "en" - ], - "title": "en" - }, - { - "type": "string", - "enum": [ - "en-au" - ], - "title": "en-au" - }, - { - "type": "string", - "enum": [ - "en-bz" - ], - "title": "en-bz" - }, - { - "type": "string", - "enum": [ - "en-ca" - ], - "title": "en-ca" - }, - { - "type": "string", - "enum": [ - "en-gb" - ], - "title": "en-gb" - }, - { - "type": "string", - "enum": [ - "en-ie" - ], - "title": "en-ie" - }, - { - "type": "string", - "enum": [ - "en-jm" - ], - "title": "en-jm" - }, - { - "type": "string", - "enum": [ - "en-nz" - ], - "title": "en-nz" - }, - { - "type": "string", - "enum": [ - "en-tt" - ], - "title": "en-tt" - }, - { - "type": "string", - "enum": [ - "en-us" - ], - "title": "en-us" - }, - { - "type": "string", - "enum": [ - "en-za" - ], - "title": "en-za" - }, - { - "type": "string", - "enum": [ - "eo" - ], - "title": "eo" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "es" - }, - { - "type": "string", - "enum": [ - "es-ar" - ], - "title": "es-ar" - }, - { - "type": "string", - "enum": [ - "es-bo" - ], - "title": "es-bo" - }, - { - "type": "string", - "enum": [ - "es-cl" - ], - "title": "es-cl" - }, - { - "type": "string", - "enum": [ - "es-co" - ], - "title": "es-co" - }, - { - "type": "string", - "enum": [ - "es-cr" - ], - "title": "es-cr" - }, - { - "type": "string", - "enum": [ - "es-do" - ], - "title": "es-do" - }, - { - "type": "string", - "enum": [ - "es-ec" - ], - "title": "es-ec" - }, - { - "type": "string", - "enum": [ - "es-gt" - ], - "title": "es-gt" - }, - { - "type": "string", - "enum": [ - "es-hn" - ], - "title": "es-hn" - }, - { - "type": "string", - "enum": [ - "es-mx" - ], - "title": "es-mx" - }, - { - "type": "string", - "enum": [ - "es-ni" - ], - "title": "es-ni" - }, - { - "type": "string", - "enum": [ - "es-pa" - ], - "title": "es-pa" - }, - { - "type": "string", - "enum": [ - "es-pe" - ], - "title": "es-pe" - }, - { - "type": "string", - "enum": [ - "es-pr" - ], - "title": "es-pr" - }, - { - "type": "string", - "enum": [ - "es-py" - ], - "title": "es-py" - }, - { - "type": "string", - "enum": [ - "es-sv" - ], - "title": "es-sv" - }, - { - "type": "string", - "enum": [ - "es-uy" - ], - "title": "es-uy" - }, - { - "type": "string", - "enum": [ - "es-ve" - ], - "title": "es-ve" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "et" - }, - { - "type": "string", - "enum": [ - "eu" - ], - "title": "eu" - }, - { - "type": "string", - "enum": [ - "fa" - ], - "title": "fa" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "fi" - }, - { - "type": "string", - "enum": [ - "fo" - ], - "title": "fo" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "fr" - }, - { - "type": "string", - "enum": [ - "fr-be" - ], - "title": "fr-be" - }, - { - "type": "string", - "enum": [ - "fr-ca" - ], - "title": "fr-ca" - }, - { - "type": "string", - "enum": [ - "fr-ch" - ], - "title": "fr-ch" - }, - { - "type": "string", - "enum": [ - "fr-lu" - ], - "title": "fr-lu" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "ga" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "gd" - }, - { - "type": "string", - "enum": [ - "he" - ], - "title": "he" - }, - { - "type": "string", - "enum": [ - "hi" - ], - "title": "hi" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "hr" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "hu" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "id" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "is" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "it" - }, - { - "type": "string", - "enum": [ - "it-ch" - ], - "title": "it-ch" - }, - { - "type": "string", - "enum": [ - "ja" - ], - "title": "ja" - }, - { - "type": "string", - "enum": [ - "ji" - ], - "title": "ji" - }, - { - "type": "string", - "enum": [ - "ko" - ], - "title": "ko" - }, - { - "type": "string", - "enum": [ - "ku" - ], - "title": "ku" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "lt" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "lv" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "mk" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "ml" - }, - { - "type": "string", - "enum": [ - "ms" - ], - "title": "ms" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "mt" - }, - { - "type": "string", - "enum": [ - "nb" - ], - "title": "nb" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "ne" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "nl" - }, - { - "type": "string", - "enum": [ - "nl-be" - ], - "title": "nl-be" - }, - { - "type": "string", - "enum": [ - "nn" - ], - "title": "nn" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "no" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "pa" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "pl" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "pt" - }, - { - "type": "string", - "enum": [ - "pt-br" - ], - "title": "pt-br" - }, - { - "type": "string", - "enum": [ - "rm" - ], - "title": "rm" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "ro" - }, - { - "type": "string", - "enum": [ - "ro-md" - ], - "title": "ro-md" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "ru" - }, - { - "type": "string", - "enum": [ - "ru-md" - ], - "title": "ru-md" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "sb" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "sk" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "sl" - }, - { - "type": "string", - "enum": [ - "sq" - ], - "title": "sq" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "sr" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "sv" - }, - { - "type": "string", - "enum": [ - "sv-fi" - ], - "title": "sv-fi" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "th" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "tn" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "tr" - }, - { - "type": "string", - "enum": [ - "ts" - ], - "title": "ts" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "ua" - }, - { - "type": "string", - "enum": [ - "ur" - ], - "title": "ur" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "ve" - }, - { - "type": "string", - "enum": [ - "vi" - ], - "title": "vi" - }, - { - "type": "string", - "enum": [ - "xh" - ], - "title": "xh" - }, - { - "type": "string", - "enum": [ - "zh-cn" - ], - "title": "zh-cn" - }, - { - "type": "string", - "enum": [ - "zh-hk" - ], - "title": "zh-hk" - }, - { - "type": "string", - "enum": [ - "zh-sg" - ], - "title": "zh-sg" - }, - { - "type": "string", - "enum": [ - "zh-tw" - ], - "title": "zh-tw" - }, - { - "type": "string", - "enum": [ - "zu" - ], - "title": "zu" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/project\/variables": { - "get": { - "summary": "List project variables", - "operationId": "projectListVariables", - "tags": [ - "project" - ], - "description": "Get a list of all project environment variables.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/list-variables.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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create 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": { - "group": "variables", - "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": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "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.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/project\/variables\/{variableId}": { - "get": { - "summary": "Get project variable", - "operationId": "projectGetVariable", - "tags": [ - "project" - ], - "description": "Get a variable by its unique ID. ", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "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, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project variable", - "operationId": "projectUpdateVariable", - "tags": [ - "project" - ], - "description": "Update variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/update-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": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete project variable", - "operationId": "projectDeleteVariable", - "tags": [ - "project" - ], - "description": "Delete a variable by its unique ID. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/delete-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": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/addons": { - "get": { - "summary": "List project addons", - "operationId": "projectsListAddons", - "tags": [ - "projects" - ], - "description": "List all billing addons for a project.\n", - "responses": { - "200": { - "description": "Addons list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addonList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/list-addons.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": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/addons\/premium-geo-db": { - "post": { - "summary": "Create Premium Geo DB addon for project", - "operationId": "projectsCreatePremiumGeoDBAddon", - "tags": [ - "projects" - ], - "description": "Create a Premium Geo DB addon for a project.\n", - "responses": { - "201": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/create-premium-geo-db-addon.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/addons\/{addonId}": { - "get": { - "summary": "Get project addon", - "operationId": "projectsGetAddon", - "tags": [ - "projects" - ], - "description": "Get the details of a billing addon for a project.\n", - "responses": { - "200": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/get-addon.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": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "<ADDON_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete project addon", - "operationId": "projectsDeleteAddon", - "tags": [ - "projects" - ], - "description": "Delete a billing addon for a project.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/delete-addon.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "<ADDON_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { - "post": { - "summary": "Confirm project addon payment after 3DS authentication", - "operationId": "projectsConfirmAddonPayment", - "tags": [ - "projects" - ], - "description": "Confirm payment for a billing addon for a project.\n", - "responses": { - "200": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/confirm-addon-payment.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "<ADDON_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/addons\/{addon}\/price": { - "get": { - "summary": "Get project addon price", - "operationId": "projectsGetAddonPrice", - "tags": [ - "projects" - ], - "description": "Get the price details for a billing addon for a project, including the prorated amount for the remaining days in the current billing cycle.\n", - "responses": { - "200": { - "description": "AddonPrice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addonPrice" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/get-addon-price.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": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "addon", - "description": "Addon key identifier (e.g. premiumGeoDB).", - "required": true, - "schema": { - "type": "string", - "example": "baa" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/console-access": { - "patch": { - "summary": "Record console access to a project", - "operationId": "projectsUpdateConsoleAccess", - "tags": [ - "projects" - ], - "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "projects\/update-console-access.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/schedules": { - "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", - "tags": [ - "projects" - ], - "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Schedules List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/scheduleList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "schedules", - "demo": "projects\/list-schedules.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", - "tags": [ - "projects" - ], - "description": "Create a new schedule for a resource.", - "responses": { - "201": { - "description": "Schedule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/schedule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "schedules", - "demo": "projects\/create-schedule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", - "type": "string", - "example": "function", - "title": "ScheduleResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "function" - ], - "title": "function" - }, - { - "type": "string", - "enum": [ - "execution" - ], - "title": "execution" - }, - { - "type": "string", - "enum": [ - "message" - ], - "title": "message" - }, - { - "type": "string", - "enum": [ - "backup" - ], - "title": "backup" - } - ] - }, - "resourceId": { - "description": "The resource ID to associate with this schedule.", - "type": "string", - "example": "<RESOURCE_ID>" - }, - "schedule": { - "description": "Schedule CRON expression.", - "type": "string", - "example": "0 0 * * *" - }, - "active": { - "description": "Whether the schedule is active.", - "type": "boolean", - "default": false, - "example": false - }, - "data": { - "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "resourceType", - "resourceId", - "schedule" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { - "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", - "tags": [ - "projects" - ], - "description": "Get a schedule by its unique ID.", - "responses": { - "200": { - "description": "Schedule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/schedule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "schedules", - "demo": "projects\/get-schedule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "scheduleId", - "description": "Schedule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SCHEDULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/stages": { - "get": { - "summary": "List stages", - "operationId": "projectsListStages", - "tags": [ - "projects" - ], - "description": "Get the onboarding stages for the current project, including each stage\u2019s SDK method key and status (for example pending, completed, or skipped).\n", - "responses": { - "200": { - "description": "Stages List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/stageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "stages", - "demo": "projects\/list-stages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "stages.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/stages\/{stageId}": { - "patch": { - "summary": "Update stage", - "operationId": "projectsUpdateStage", - "tags": [ - "projects" - ], - "description": "Update an onboarding stage for the current project. Use this endpoint to skip a stage or leave it unchanged without performing the related API action.\n", - "responses": { - "200": { - "description": "Stage", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/stage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "stages", - "demo": "projects\/update-stage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "stages.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "stageId", - "description": "SDK method key (namespace.method).", - "required": true, - "schema": { - "type": "string", - "example": "<STAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "skip": { - "description": "Mark the stage as skipped.", - "type": "boolean", - "default": true, - "example": false - } - } - } - } - } - } - } - }, - "\/projects\/{projectId}\/status": { - "patch": { - "summary": "Update the status of a project", - "operationId": "projectsUpdateStatus", - "tags": [ - "projects" - ], - "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "description": "New status for the project", - "type": "string", - "example": "active", - "title": "Status", - "oneOf": [ - { - "type": "string", - "enum": [ - "active" - ], - "title": "active" - } - ] - } - }, - "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": { - "group": "projects", - "demo": "projects\/update-team.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team ID of the team to transfer project to.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/proxy\/invalidations": { - "post": { - "summary": "Create invalidation", - "operationId": "proxyCreateInvalidation", - "tags": [ - "proxy" - ], - "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", - "responses": { - "201": { - "description": "Invalidation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyInvalidation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "proxy\/create-invalidation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "proxy.invalidations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "type": { - "description": "Type of reference passed. Allowed values are: tag, path, all", - "type": "string", - "example": "tag", - "title": "InvalidationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - }, - { - "type": "string", - "enum": [ - "path" - ], - "title": "path" - }, - { - "type": "string", - "enum": [ - "all" - ], - "title": "all" - } - ] - }, - "reference": { - "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", - "type": "string", - "default": "", - "example": "<REFERENCE>" - } - }, - "required": [ - "domain", - "type" - ] - }, - "examples": { - "tag": { - "summary": "Purge a cache tag", - "value": { - "domain": "example.com", - "type": "tag", - "reference": "<TAG>" - } - }, - "path": { - "summary": "Purge a URL path", - "value": { - "domain": "example.com", - "type": "path", - "reference": "\/blog\/hello-world" - } - } - } - } - } - } - } - }, - "\/proxy\/rules": { - "get": { - "summary": "List rules", - "operationId": "proxyListRules", - "tags": [ - "proxy" - ], - "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Rule List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRuleList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/list-rules.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/proxy\/rules\/api": { - "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - } - }, - "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": { - "group": "rules", - "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": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "functionId": { - "description": "ID of function to be executed.", - "type": "string", - "example": "<FUNCTION_ID>" - }, - "branch": { - "description": "Name of VCS branch to deploy changes automatically", - "type": "string", - "default": "", - "example": "<BRANCH>" - } - }, - "required": [ - "domain", - "functionId" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create redirect rule", - "operationId": "proxyCreateRedirectRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "url": { - "description": "Target URL of redirection", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "statusCode": { - "description": "Status code of redirection", - "type": "string", - "example": "301", - "title": "StatusCode", - "oneOf": [ - { - "type": "string", - "enum": [ - "301" - ], - "title": "MovedPermanently" - }, - { - "type": "string", - "enum": [ - "302" - ], - "title": "Found" - }, - { - "type": "string", - "enum": [ - "307" - ], - "title": "TemporaryRedirect" - }, - { - "type": "string", - "enum": [ - "308" - ], - "title": "PermanentRedirect" - } - ] - }, - "resourceId": { - "description": "ID of parent resource.", - "type": "string", - "example": "<RESOURCE_ID>" - }, - "resourceType": { - "description": "Type of parent resource.", - "type": "string", - "example": "site", - "title": "ProxyResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "site" - ], - "title": "Site" - }, - { - "type": "string", - "enum": [ - "function" - ], - "title": "Function" - } - ] - } - }, - "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "siteId": { - "description": "ID of site to be executed.", - "type": "string", - "example": "<SITE_ID>" - }, - "branch": { - "description": "Name of VCS branch to deploy changes automatically", - "type": "string", - "default": "", - "example": "<BRANCH>" - } - }, - "required": [ - "domain", - "siteId" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/{ruleId}": { - "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", - "tags": [ - "proxy" - ], - "description": "Get a proxy rule by its unique ID.", - "responses": { - "200": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", - "tags": [ - "proxy" - ], - "description": "Delete a proxy rule by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "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": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/proxy\/rules\/{ruleId}\/status": { - "patch": { - "summary": "Update rule status", - "operationId": "proxyUpdateRuleStatus", - "tags": [ - "proxy" - ], - "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": { - "200": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/update-rule-status.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": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/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": { - "group": "reports", - "demo": "advisor\/list-reports.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.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: 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", - "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": { - "group": "reports", - "demo": "advisor\/get-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "reports", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "example": "<REPORT_ID>" - }, - "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": { - "group": "insights", - "demo": "advisor\/list-insights.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "insights", - "demo": "advisor\/get-insight.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "example": "<REPORT_ID>" - }, - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSIGHT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites": { - "get": { - "summary": "List sites", - "operationId": "sitesList", - "tags": [ - "sites" - ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Sites List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/siteList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", - "tags": [ - "sites" - ], - "description": "Create a new site.", - "responses": { - "201": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "siteId": { - "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.", - "type": "string", - "example": "<SITE_ID>" - }, - "name": { - "description": "Site name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "framework": { - "description": "Sites framework.", - "type": "string", - "example": "analog", - "title": "Framework", - "oneOf": [ - { - "type": "string", - "enum": [ - "analog" - ], - "title": "analog" - }, - { - "type": "string", - "enum": [ - "angular" - ], - "title": "angular" - }, - { - "type": "string", - "enum": [ - "nextjs" - ], - "title": "nextjs" - }, - { - "type": "string", - "enum": [ - "react" - ], - "title": "react" - }, - { - "type": "string", - "enum": [ - "nuxt" - ], - "title": "nuxt" - }, - { - "type": "string", - "enum": [ - "vue" - ], - "title": "vue" - }, - { - "type": "string", - "enum": [ - "sveltekit" - ], - "title": "sveltekit" - }, - { - "type": "string", - "enum": [ - "astro" - ], - "title": "astro" - }, - { - "type": "string", - "enum": [ - "tanstack-start" - ], - "title": "tanstack-start" - }, - { - "type": "string", - "enum": [ - "remix" - ], - "title": "remix" - }, - { - "type": "string", - "enum": [ - "lynx" - ], - "title": "lynx" - }, - { - "type": "string", - "enum": [ - "flutter" - ], - "title": "flutter" - }, - { - "type": "string", - "enum": [ - "jaspr" - ], - "title": "jaspr" - }, - { - "type": "string", - "enum": [ - "react-native" - ], - "title": "react-native" - }, - { - "type": "string", - "enum": [ - "vite" - ], - "title": "vite" - }, - { - "type": "string", - "enum": [ - "other" - ], - "title": "other" - } - ] - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "timeout": { - "description": "Maximum request time in seconds.", - "type": "integer", - "default": 30, - "example": 1, - "format": "int32" - }, - "installCommand": { - "description": "Install Command.", - "type": "string", - "default": "", - "example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "description": "Build Command.", - "type": "string", - "default": "", - "example": "<BUILD_COMMAND>" - }, - "startCommand": { - "description": "Custom start command. Leave empty to use default.", - "type": "string", - "default": "", - "example": "<START_COMMAND>" - }, - "outputDirectory": { - "description": "Output Directory for site.", - "type": "string", - "default": "", - "example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "description": "Runtime to use during build step.", - "type": "string", - "example": "node-14.5", - "title": "BuildRuntime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "adapter": { - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "type": "string", - "example": "static", - "title": "Adapter", - "oneOf": [ - { - "type": "string", - "enum": [ - "static" - ], - "title": "static" - }, - { - "type": "string", - "enum": [ - "ssr" - ], - "title": "ssr" - } - ] - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "description": "Fallback file for single page application sites.", - "type": "string", - "default": "", - "example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "description": "Production branch for the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to site code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "buildSpecification": { - "description": "Build specification for the site deployments.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "description": "Runtime specification for the SSR executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - } - }, - "required": [ - "siteId", - "name", - "framework", - "buildRuntime" - ] - } - } - } - } - } - }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", - "tags": [ - "sites" - ], - "description": "Get a list of all frameworks that are currently available on the server instance.", - "responses": { - "200": { - "description": "Frameworks List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/frameworkList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "frameworks", - "demo": "sites\/list-frameworks.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", - "tags": [ - "sites" - ], - "description": "List allowed site specifications for this instance.", - "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "frameworks", - "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": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", - "required": false, - "schema": { - "type": "string", - "example": "runtimes", - "default": "runtimes" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "templates", - "demo": "sites\/list-templates.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "frameworks", - "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "Framework", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "analog" - ], - "title": "analog" - }, - { - "type": "string", - "enum": [ - "angular" - ], - "title": "angular" - }, - { - "type": "string", - "enum": [ - "nextjs" - ], - "title": "nextjs" - }, - { - "type": "string", - "enum": [ - "react" - ], - "title": "react" - }, - { - "type": "string", - "enum": [ - "nuxt" - ], - "title": "nuxt" - }, - { - "type": "string", - "enum": [ - "vue" - ], - "title": "vue" - }, - { - "type": "string", - "enum": [ - "sveltekit" - ], - "title": "sveltekit" - }, - { - "type": "string", - "enum": [ - "astro" - ], - "title": "astro" - }, - { - "type": "string", - "enum": [ - "tanstack-start" - ], - "title": "tanstack-start" - }, - { - "type": "string", - "enum": [ - "remix" - ], - "title": "remix" - }, - { - "type": "string", - "enum": [ - "lynx" - ], - "title": "lynx" - }, - { - "type": "string", - "enum": [ - "flutter" - ], - "title": "flutter" - }, - { - "type": "string", - "enum": [ - "jaspr" - ], - "title": "jaspr" - }, - { - "type": "string", - "enum": [ - "react-native" - ], - "title": "react-native" - }, - { - "type": "string", - "enum": [ - "vite" - ], - "title": "vite" - }, - { - "type": "string", - "enum": [ - "other" - ], - "title": "other" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "useCases", - "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "SiteTemplateUseCase", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "portfolio" - ], - "title": "portfolio" - }, - { - "type": "string", - "enum": [ - "starter" - ], - "title": "starter" - }, - { - "type": "string", - "enum": [ - "events" - ], - "title": "events" - }, - { - "type": "string", - "enum": [ - "ecommerce" - ], - "title": "ecommerce" - }, - { - "type": "string", - "enum": [ - "documentation" - ], - "title": "documentation" - }, - { - "type": "string", - "enum": [ - "blog" - ], - "title": "blog" - }, - { - "type": "string", - "enum": [ - "ai" - ], - "title": "ai" - }, - { - "type": "string", - "enum": [ - "forms" - ], - "title": "forms" - }, - { - "type": "string", - "enum": [ - "dashboard" - ], - "title": "dashboard" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/templates\/{templateId}": { - "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", - "tags": [ - "sites" - ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", - "responses": { - "200": { - "description": "Template Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/templateSite" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "sites\/get-template.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Template ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEMPLATE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}": { - "get": { - "summary": "Get site", - "operationId": "sitesGet", - "tags": [ - "sites" - ], - "description": "Get a site by its unique ID.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", - "tags": [ - "sites" - ], - "description": "Update site by its unique ID.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Site name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "framework": { - "description": "Sites framework.", - "type": "string", - "example": "analog", - "title": "Framework", - "oneOf": [ - { - "type": "string", - "enum": [ - "analog" - ], - "title": "analog" - }, - { - "type": "string", - "enum": [ - "angular" - ], - "title": "angular" - }, - { - "type": "string", - "enum": [ - "nextjs" - ], - "title": "nextjs" - }, - { - "type": "string", - "enum": [ - "react" - ], - "title": "react" - }, - { - "type": "string", - "enum": [ - "nuxt" - ], - "title": "nuxt" - }, - { - "type": "string", - "enum": [ - "vue" - ], - "title": "vue" - }, - { - "type": "string", - "enum": [ - "sveltekit" - ], - "title": "sveltekit" - }, - { - "type": "string", - "enum": [ - "astro" - ], - "title": "astro" - }, - { - "type": "string", - "enum": [ - "tanstack-start" - ], - "title": "tanstack-start" - }, - { - "type": "string", - "enum": [ - "remix" - ], - "title": "remix" - }, - { - "type": "string", - "enum": [ - "lynx" - ], - "title": "lynx" - }, - { - "type": "string", - "enum": [ - "flutter" - ], - "title": "flutter" - }, - { - "type": "string", - "enum": [ - "jaspr" - ], - "title": "jaspr" - }, - { - "type": "string", - "enum": [ - "react-native" - ], - "title": "react-native" - }, - { - "type": "string", - "enum": [ - "vite" - ], - "title": "vite" - }, - { - "type": "string", - "enum": [ - "other" - ], - "title": "other" - } - ] - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "timeout": { - "description": "Maximum request time in seconds.", - "type": "integer", - "default": 30, - "example": 1, - "format": "int32" - }, - "installCommand": { - "description": "Install Command.", - "type": "string", - "default": "", - "example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "description": "Build Command.", - "type": "string", - "default": "", - "example": "<BUILD_COMMAND>" - }, - "startCommand": { - "description": "Custom start command. Leave empty to use default.", - "type": "string", - "default": "", - "example": "<START_COMMAND>" - }, - "outputDirectory": { - "description": "Output Directory for site.", - "type": "string", - "default": "", - "example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "description": "Runtime to use during build step.", - "type": "string", - "example": "node-14.5", - "title": "BuildRuntime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "adapter": { - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "type": "string", - "example": "static", - "title": "Adapter", - "oneOf": [ - { - "type": "string", - "enum": [ - "static" - ], - "title": "static" - }, - { - "type": "string", - "enum": [ - "ssr" - ], - "title": "ssr" - } - ] - }, - "fallbackFile": { - "description": "Fallback file for single page application sites.", - "type": "string", - "default": "", - "example": "<FALLBACK_FILE>" - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>", - "nullable": true - }, - "providerBranch": { - "description": "Production branch for the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to site code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "buildSpecification": { - "description": "Build specification for the site deployments.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "runtimeSpecification": { - "description": "Runtime specification for the SSR executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - }, - "nullable": true - } - }, - "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": { - "group": "sites", - "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, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", - "tags": [ - "sites" - ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "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, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", - "tags": [ - "sites" - ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Deployments List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deploymentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/list-deployments.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", - "tags": [ - "sites" - ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": true, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "installCommand": { - "description": "Install Commands.", - "type": "string", - "example": "<INSTALL_COMMAND>", - "nullable": true - }, - "buildCommand": { - "description": "Build Commands.", - "type": "string", - "example": "<BUILD_COMMAND>", - "nullable": true - }, - "outputDirectory": { - "description": "Output Directory.", - "type": "string", - "example": "<OUTPUT_DIRECTORY>", - "nullable": true - }, - "code": { - "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", - "type": "string", - "format": "binary" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "code" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", - "tags": [ - "sites" - ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-duplicate-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", - "tags": [ - "sites" - ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-template-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "description": "Repository name of the template.", - "type": "string", - "example": "<REPOSITORY>" - }, - "owner": { - "description": "The name of the owner of the template.", - "type": "string", - "example": "<OWNER>" - }, - "rootDirectory": { - "description": "Path to site code in the template repo.", - "type": "string", - "example": "<ROOT_DIRECTORY>" - }, - "type": { - "description": "Type for the reference provided. Can be commit, branch, or tag", - "type": "string", - "example": "branch", - "title": "TemplateReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "Reference value, can be a commit hash, branch name, or release tag", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "tags": [ - "sites" - ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-vcs-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Type of reference passed. Allowed values are: branch, commit", - "type": "string", - "example": "branch", - "title": "VCSReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", - "tags": [ - "sites" - ], - "description": "Get a site deployment by its unique ID.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/get-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", - "tags": [ - "sites" - ], - "description": "Delete a site deployment by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/delete-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", - "tags": [ - "sites" - ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/get-deployment-download.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "sites.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "example": "source", - "title": "DeploymentDownloadType", - "oneOf": [ - { - "type": "string", - "enum": [ - "source" - ], - "title": "source" - }, - { - "type": "string", - "enum": [ - "output" - ], - "title": "output" - } - ], - "default": "source" - }, - "in": "query" - }, - { - "name": "token", - "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", - "tags": [ - "sites" - ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/update-deployment-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/{siteId}\/logs\/{logId}": { - "get": { - "summary": "Get log", - "operationId": "sitesGetLog", - "tags": [ - "sites" - ], - "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": { - "group": "logs", - "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", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LOG_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", - "tags": [ - "sites" - ], - "description": "Delete a site log by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "demo": "sites\/delete-log.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LOG_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "sitesListVariables", - "tags": [ - "sites" - ], - "description": "Get a list of all variables of a specific site.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "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", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", - "tags": [ - "sites" - ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", - "responses": { - "201": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/create-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": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", - "tags": [ - "sites" - ], - "description": "Get a variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "variables", - "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": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", - "tags": [ - "sites" - ], - "description": "Delete a variable by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets": { - "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", - "tags": [ - "storage" - ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Buckets List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucketList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/list-buckets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", - "tags": [ - "storage" - ], - "description": "Create a new storage bucket.", - "responses": { - "201": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/create-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "bucketId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<BUCKET_ID>" - }, - "name": { - "description": "Bucket name", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "fileSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "type": "integer", - "default": {}, - "example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "compression": { - "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", - "type": "string", - "default": "none", - "example": "none", - "title": "Compression", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "gzip" - ], - "title": "gzip" - }, - { - "type": "string", - "enum": [ - "zstd" - ], - "title": "zstd" - } - ] - }, - "encryption": { - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "antivirus": { - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "transformations": { - "description": "Are image transformations enabled?", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "bucketId", - "name" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}": { - "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", - "tags": [ - "storage" - ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/get-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", - "tags": [ - "storage" - ], - "description": "Update a storage bucket by its unique ID.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/update-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Bucket name", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "fileSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "type": "integer", - "default": {}, - "example": 1, - "format": "int32", - "nullable": true - }, - "allowedFileExtensions": { - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "compression": { - "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", - "type": "string", - "default": "none", - "example": "none", - "title": "Compression", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "gzip" - ], - "title": "gzip" - }, - { - "type": "string", - "enum": [ - "zstd" - ], - "title": "zstd" - } - ], - "nullable": true - }, - "encryption": { - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false, - "nullable": true - }, - "antivirus": { - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "transformations": { - "description": "Are image transformations enabled?", - "type": "boolean", - "default": true, - "example": false - } - }, - "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": { - "group": "buckets", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", - "tags": [ - "storage" - ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Files List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/fileList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/list-files.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", - "tags": [ - "storage" - ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", - "responses": { - "201": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "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.", - "type": "string", - "example": "<FILE_ID>" - }, - "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).", - "type": "string", - "format": "binary" - }, - "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).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "folder": { - "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", - "type": "string", - "default": "", - "example": "photos\/2026" - } - }, - "required": [ - "fileId", - "file" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", - "tags": [ - "storage" - ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", - "tags": [ - "storage" - ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/update-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "File name.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - } - } - } - } - } - } - }, - "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": { - "group": "files", - "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, - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", - "tags": [ - "storage" - ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-preview.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "example": "auto", - "title": "ImageGravity", - "oneOf": [ - { - "type": "string", - "enum": [ - "auto" - ], - "title": "auto" - }, - { - "type": "string", - "enum": [ - "center" - ], - "title": "center" - }, - { - "type": "string", - "enum": [ - "top-left" - ], - "title": "top-left" - }, - { - "type": "string", - "enum": [ - "top" - ], - "title": "top" - }, - { - "type": "string", - "enum": [ - "top-right" - ], - "title": "top-right" - }, - { - "type": "string", - "enum": [ - "left" - ], - "title": "left" - }, - { - "type": "string", - "enum": [ - "right" - ], - "title": "right" - }, - { - "type": "string", - "enum": [ - "bottom-left" - ], - "title": "bottom-left" - }, - { - "type": "string", - "enum": [ - "bottom" - ], - "title": "bottom" - }, - { - "type": "string", - "enum": [ - "bottom-right" - ], - "title": "bottom-right" - } - ], - "default": "center" - }, - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "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", - "example": "FFFFFF", - "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", - "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", - "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", - "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", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", - "tags": [ - "tablesDB" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.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 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, - "schema": { - "type": "string", - "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", - "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": { - "group": "tablesdb", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/tablesdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "tablesDBListSpecifications", - "tags": [ - "tablesDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/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": { - "group": "transactions", - "demo": "tablesdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "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" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create 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": { - "group": "transactions", - "demo": "tablesdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "tags": [ - "tablesDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", - "tags": [ - "tablesDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", - "tags": [ - "tablesDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", - "tags": [ - "tablesDB" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createRow": { - "summary": "Stage a row creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", - "tags": [ - "tablesDB" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", - "tags": [ - "tablesDB" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", - "tags": [ - "tablesDB" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "tablesDBCreateFailover", - "tags": [ - "tablesDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "tablesdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/migrations": { - "get": { - "summary": "List migrations", - "operationId": "tablesDBListMigrations", - "tags": [ - "tablesDB" - ], - "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", - "responses": { - "200": { - "description": "Database Migrations List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigrationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/list-migrations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create migration", - "operationId": "tablesDBCreateMigration", - "tags": [ - "tablesDB" - ], - "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", - "responses": { - "201": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "specification": { - "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", - "type": "string", - "example": "s-1vcpu-1gb" - }, - "autoCutover": { - "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "specification" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "tablesDBGetMigration", - "tags": [ - "tablesDB" - ], - "description": "Get a single dedicated migration for a TablesDB database by its ID.", - "responses": { - "200": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/get-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "tablesDBDeleteMigration", - "tags": [ - "tablesDB" - ], - "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/delete-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { - "post": { - "summary": "Cutover migration", - "operationId": "tablesDBCreateCutover", - "tags": [ - "tablesDB" - ], - "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", - "responses": { - "200": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/create-cutover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "tablesDBListOperations", - "tags": [ - "tablesDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "tablesdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "tablesDBGetReplicas", - "tags": [ - "tablesDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "tablesdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "tablesDBGetStatus", - "tags": [ - "tablesDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "tables", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, 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, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", - "tags": [ - "tablesDB" - ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "responses": { - "201": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/create-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "tableId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TABLE_ID>" - }, - "name": { - "description": "Table name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rowSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "columns": { - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "tableId", - "name" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", - "tags": [ - "tablesDB" - ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", - "responses": { - "200": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/get-table.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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", - "tags": [ - "tablesDB" - ], - "description": "Update a table by its unique ID.", - "responses": { - "200": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/update-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Table name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rowSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", - "tags": [ - "tablesDB" - ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/delete-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", - "tags": [ - "tablesDB" - ], - "description": "List columns in the table.", - "responses": { - "200": { - "description": "Columns List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/list-columns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { - "patch": { - "summary": "Update bigint column", - "operationId": "tablesDBUpdateBigIntColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBigint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a boolean column.\n", - "responses": { - "202": { - "description": "ColumnBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-boolean-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { - "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-boolean-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { - "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a date time column according to the ISO 8601 standard.", - "responses": { - "202": { - "description": "ColumnDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-datetime-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update datetime column", - "operationId": "tablesDBUpdateDatetimeColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-datetime-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "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": "ColumnEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEmail" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-email-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEmail" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-email-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { - "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", - "tags": [ - "tablesDB" - ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", - "responses": { - "202": { - "description": "ColumnEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEnum" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "elements": { - "description": "Array of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "elements", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { - "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEnum" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-enum-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "elements": { - "description": "Updated list of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { - "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "ColumnFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnFloat" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { - "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", - "tags": [ - "tablesDB" - ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-integer-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-integer-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "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": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric line column.", - "responses": { - "202": { - "description": "ColumnLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLine" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-line-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLine" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-line-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a longtext column.\n", - "responses": { - "202": { - "description": "ColumnLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-longtext-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a mediumtext column.\n", - "responses": { - "202": { - "description": "ColumnMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-mediumtext-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric point column.", - "responses": { - "202": { - "description": "ColumnPoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPoint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-point-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnPoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPoint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-point-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric polygon column.", - "responses": { - "202": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-polygon-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-polygon-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", - "tags": [ - "tablesDB" - ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", - "responses": { - "202": { - "description": "ColumnRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-relationship-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "relatedTableId": { - "description": "Related Table ID.", - "type": "string", - "example": "<RELATED_TABLE_ID>" - }, - "type": { - "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", - "type": "string", - "example": "oneToOne", - "title": "RelationshipType", - "oneOf": [ - { - "type": "string", - "enum": [ - "oneToOne" - ], - "title": "oneToOne" - }, - { - "type": "string", - "enum": [ - "manyToOne" - ], - "title": "manyToOne" - }, - { - "type": "string", - "enum": [ - "manyToMany" - ], - "title": "manyToMany" - }, - { - "type": "string", - "enum": [ - "oneToMany" - ], - "title": "oneToMany" - } - ] - }, - "twoWay": { - "description": "Is Two Way?", - "type": "boolean", - "default": false, - "example": false - }, - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "twoWayKey": { - "description": "Two Way Column Key.", - "type": "string", - "example": "<TWO_WAY_KEY>", - "nullable": true - }, - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "default": "restrict", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - } - }, - "required": [ - "relatedTableId", - "type" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { - "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": "ColumnRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-relationship-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ], - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a string column.\n", - "responses": { - "202": { - "description": "ColumnString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Column size for text columns, in number of characters.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "columns", - "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, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the string column.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a text column.\n", - "responses": { - "202": { - "description": "ColumnText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnText" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnText" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a URL column.\n", - "responses": { - "202": { - "description": "ColumnURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnUrl" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnUrl" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a varchar column.\n", - "responses": { - "202": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-varchar-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-varchar-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the varchar column.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { - "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", - "tags": [ - "tablesDB" - ], - "description": "Get column by ID.", - "responses": { - "200": { - "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", - "content": { - "application\/json": { - "schema": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/get-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", - "tags": [ - "tablesDB" - ], - "description": "Deletes a column.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", - "tags": [ - "tablesDB" - ], - "description": "List indexes on the table.", - "responses": { - "200": { - "description": "Column Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "tablesdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "indexes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "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`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "TablesDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - }, - { - "type": "string", - "enum": [ - "spatial" - ], - "title": "spatial" - } - ] - }, - "columns": { - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "columns" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", - "tags": [ - "tablesDB" - ], - "description": "Get index by ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "tablesdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "indexes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", - "tags": [ - "tablesDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", - "tags": [ - "tablesDB" - ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/list-rows.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "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", - "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": { - "group": "rows", - "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, - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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", - "platforms": [ - "console", - "server" - ], - "summary": "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rowId": { - "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.", - "type": "string", - "example": "<ROW_ID>" - }, - "data": { - "description": "Row data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rows": { - "description": "Array of rows data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "rowId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", - "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", - "responses": { - "201": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rows": { - "description": "Array of row data as JSON objects. May contain partial rows.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "rows" - ] - } - } - } - } - }, - "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", - "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.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected rows", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", - "tags": [ - "tablesDB" - ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", - "tags": [ - "tablesDB" - ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", - "responses": { - "200": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/get-row.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", - "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.", - "responses": { - "201": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update row data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", - "tags": [ - "tablesDB" - ], - "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": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update row data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", - "tags": [ - "tablesDB" - ], - "description": "Delete a row by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", - "tags": [ - "tablesDB" - ], - "description": "Decrement 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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", - "tags": [ - "teams" - ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", - "responses": { - "200": { - "description": "Teams List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/teamList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", - "tags": [ - "teams" - ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", - "responses": { - "201": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "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.", - "type": "string", - "example": "<TEAM_ID>" - }, - "name": { - "description": "Team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "roles": { - "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 81 characters long.", - "type": "array", - "default": [ - "owner" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", - "tags": [ - "teams" - ], - "description": "Get a team by its ID. All team members have read access for this resource.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", - "tags": [ - "teams" - ], - "description": "Update the team's name by its unique ID.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "New team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", - "tags": [ - "teams" - ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "teamsListInstallations", - "tags": [ - "teams" - ], - "description": "List app installations on a team. Any team member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "teamsCreateInstallation", - "tags": [ - "teams" - ], - "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "teamsGetInstallation", - "tags": [ - "teams" - ], - "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "teamsUpdateInstallation", - "tags": [ - "teams" - ], - "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "teamsDeleteInstallation", - "tags": [ - "teams" - ], - "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", - "tags": [ - "teams" - ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Email of the new team member.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "userId": { - "description": "ID of the user to be added to a team.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "items": { - "type": "string" - } - }, - "url": { - "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.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "description": "Name of the new team member. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", - "tags": [ - "teams" - ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/get-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update team membership", - "operationId": "teamsUpdateMembership", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "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": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/delete-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret key.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "tags": [ - "teams" - ], - "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": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update team preferences", - "operationId": "teamsUpdatePrefs", - "tags": [ - "teams" - ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "List tokens", - "operationId": "tokensList", - "tags": [ - "tokens" - ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Resource Tokens List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceTokenList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "tokens\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "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, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", - "tags": [ - "tokens" - ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", - "responses": { - "201": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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": "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "description": "Token expiry date", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "tokens\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_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": { - "group": "tokens", - "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.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "description": "File token expiry date", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - }, - "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": { - "group": "tokens", - "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", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/usage\/events": { - "get": { - "summary": "List usage events", - "operationId": "usageListEvents", - "tags": [ - "usage" - ], - "description": "Aggregate usage event metrics. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one point per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one point per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down by one or more attributes (service, path, status, country, \u2026). `queries[]` filters the underlying events using the standard Utopia query syntax \u2014 `equal(\"path\", [\"\/v1\/storage\/files\"])`, `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `startsWith(\"path\", [\"\/v1\/storage\"])`, `equal(\"status\", [\"200\", \"201\"])`, `isNotNull(\"resourceId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `contains`, `startsWith`, `endsWith`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", - "responses": { - "200": { - "description": "usageEventList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageEventList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "usage\/list-events.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": [ - "usage.read", - "account" - ], - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "metrics", - "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=executions` or `metrics[]=executions&metrics[]=executions.compute` for stacked charts. On console: `metrics[]=affiliates.clicks`.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "anyOf": [ - { - "title": "UsageEventMetric", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "analytics.events" - ], - "title": "analytics.events" - }, - { - "type": "string", - "enum": [ - "analytics.pageviews" - ], - "title": "analytics.pageviews" - }, - { - "type": "string", - "enum": [ - "analytics.bots.events" - ], - "title": "analytics.bots.events" - }, - { - "type": "string", - "enum": [ - "network.requests" - ], - "title": "network.requests" - }, - { - "type": "string", - "enum": [ - "network.inbound" - ], - "title": "network.inbound" - }, - { - "type": "string", - "enum": [ - "network.outbound" - ], - "title": "network.outbound" - }, - { - "type": "string", - "enum": [ - "webhooks.events.sent" - ], - "title": "webhooks.events.sent" - }, - { - "type": "string", - "enum": [ - "webhooks.events.failed" - ], - "title": "webhooks.events.failed" - }, - { - "type": "string", - "enum": [ - "auth.method.phone" - ], - "title": "auth.method.phone" - }, - { - "type": "string", - "enum": [ - "messages.sent" - ], - "title": "messages.sent" - }, - { - "type": "string", - "enum": [ - "messages.failed" - ], - "title": "messages.failed" - }, - { - "type": "string", - "enum": [ - "messages.sms.sent" - ], - "title": "messages.sms.sent" - }, - { - "type": "string", - "enum": [ - "executions" - ], - "title": "executions" - }, - { - "type": "string", - "enum": [ - "executions.compute" - ], - "title": "executions.compute" - }, - { - "type": "string", - "enum": [ - "executions.mbSeconds" - ], - "title": "executions.mbSeconds" - }, - { - "type": "string", - "enum": [ - "functions.executions" - ], - "title": "functions.executions" - }, - { - "type": "string", - "enum": [ - "sites.executions" - ], - "title": "sites.executions" - }, - { - "type": "string", - "enum": [ - "functions.executions.compute" - ], - "title": "functions.executions.compute" - }, - { - "type": "string", - "enum": [ - "sites.executions.compute" - ], - "title": "sites.executions.compute" - }, - { - "type": "string", - "enum": [ - "functions.executions.mbSeconds" - ], - "title": "functions.executions.mbSeconds" - }, - { - "type": "string", - "enum": [ - "sites.executions.mbSeconds" - ], - "title": "sites.executions.mbSeconds" - }, - { - "type": "string", - "enum": [ - "builds" - ], - "title": "builds" - }, - { - "type": "string", - "enum": [ - "builds.success" - ], - "title": "builds.success" - }, - { - "type": "string", - "enum": [ - "builds.failed" - ], - "title": "builds.failed" - }, - { - "type": "string", - "enum": [ - "builds.compute" - ], - "title": "builds.compute" - }, - { - "type": "string", - "enum": [ - "builds.compute.success" - ], - "title": "builds.compute.success" - }, - { - "type": "string", - "enum": [ - "builds.compute.failed" - ], - "title": "builds.compute.failed" - }, - { - "type": "string", - "enum": [ - "builds.mbSeconds" - ], - "title": "builds.mbSeconds" - }, - { - "type": "string", - "enum": [ - "functions.builds.mbSeconds" - ], - "title": "functions.builds.mbSeconds" - }, - { - "type": "string", - "enum": [ - "sites.builds.mbSeconds" - ], - "title": "sites.builds.mbSeconds" - }, - { - "type": "string", - "enum": [ - "databases.operations.reads" - ], - "title": "databases.operations.reads" - }, - { - "type": "string", - "enum": [ - "databases.operations.writes" - ], - "title": "databases.operations.writes" - }, - { - "type": "string", - "enum": [ - "documentsdb.databases.operations.reads" - ], - "title": "documentsdb.databases.operations.reads" - }, - { - "type": "string", - "enum": [ - "documentsdb.databases.operations.writes" - ], - "title": "documentsdb.databases.operations.writes" - }, - { - "type": "string", - "enum": [ - "vectorsdb.databases.operations.reads" - ], - "title": "vectorsdb.databases.operations.reads" - }, - { - "type": "string", - "enum": [ - "vectorsdb.databases.operations.writes" - ], - "title": "vectorsdb.databases.operations.writes" - }, - { - "type": "string", - "enum": [ - "files.imagesTransformed" - ], - "title": "files.imagesTransformed" - }, - { - "type": "string", - "enum": [ - "avatars.screenshotsGenerated" - ], - "title": "avatars.screenshotsGenerated" - }, - { - "type": "string", - "enum": [ - "realtime.messages.sent" - ], - "title": "realtime.messages.sent" - }, - { - "type": "string", - "enum": [ - "realtime.inbound" - ], - "title": "realtime.inbound" - }, - { - "type": "string", - "enum": [ - "realtime.outbound" - ], - "title": "realtime.outbound" - }, - { - "type": "string", - "enum": [ - "embeddings.text" - ], - "title": "embeddings.text" - }, - { - "type": "string", - "enum": [ - "embeddings.text.totalTokens" - ], - "title": "embeddings.text.totalTokens" - }, - { - "type": "string", - "enum": [ - "embeddings.text.totalDuration" - ], - "title": "embeddings.text.totalDuration" - }, - { - "type": "string", - "enum": [ - "embeddings.text.totalErrors" - ], - "title": "embeddings.text.totalErrors" - }, - { - "type": "string", - "enum": [ - "waf.requests.denied" - ], - "title": "waf.requests.denied" - }, - { - "type": "string", - "enum": [ - "waf.requests.challenged" - ], - "title": "waf.requests.challenged" - }, - { - "type": "string", - "enum": [ - "waf.requests.rateLimited" - ], - "title": "waf.requests.rateLimited" - }, - { - "type": "string", - "enum": [ - "waf.requests.redirected" - ], - "title": "waf.requests.redirected" - }, - { - "type": "string", - "enum": [ - "waf.requests.challengeSolved" - ], - "title": "waf.requests.challengeSolved" - }, - { - "type": "string", - "enum": [ - "waf.challenge.solveTimeMs" - ], - "title": "waf.challenge.solveTimeMs" - }, - { - "type": "string", - "enum": [ - "affiliates.clicks" - ], - "title": "affiliates.clicks" - }, - { - "type": "string", - "enum": [ - "affiliates.signups" - ], - "title": "affiliates.signups" - }, - { - "type": "string", - "enum": [ - "affiliates.conversions" - ], - "title": "affiliates.conversions" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.inbound" - ], - "title": "dedicatedDatabases.inbound" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.outbound" - ], - "title": "dedicatedDatabases.outbound" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.compute" - ], - "title": "dedicatedDatabases.compute" - } - ] - }, - { - "type": "string" - } - ] - } - }, - "in": "query" - }, - { - "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageEventDimension` enum: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "interval", - "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", - "required": false, - "schema": { - "type": "string", - "example": "1m", - "title": "UsageInterval", - "oneOf": [ - { - "type": "string", - "enum": [ - "1m" - ], - "title": "One Minute" - }, - { - "type": "string", - "enum": [ - "15m" - ], - "title": "Fifteen Minutes" - }, - { - "type": "string", - "enum": [ - "30m" - ], - "title": "Thirty Minutes" - }, - { - "type": "string", - "enum": [ - "1h" - ], - "title": "One Hour" - }, - { - "type": "string", - "enum": [ - "1d" - ], - "title": "One Day" - } - ] - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, teamId, resourceId, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "UsageEventDimension", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "path" - ], - "title": "path" - }, - { - "type": "string", - "enum": [ - "method" - ], - "title": "method" - }, - { - "type": "string", - "enum": [ - "status" - ], - "title": "status" - }, - { - "type": "string", - "enum": [ - "service" - ], - "title": "service" - }, - { - "type": "string", - "enum": [ - "resourceType" - ], - "title": "resourceType" - }, - { - "type": "string", - "enum": [ - "country" - ], - "title": "country" - }, - { - "type": "string", - "enum": [ - "continentCode" - ], - "title": "continentCode" - }, - { - "type": "string", - "enum": [ - "city" - ], - "title": "city" - }, - { - "type": "string", - "enum": [ - "region" - ], - "title": "region" - }, - { - "type": "string", - "enum": [ - "hostname" - ], - "title": "hostname" - }, - { - "type": "string", - "enum": [ - "ip" - ], - "title": "ip" - }, - { - "type": "string", - "enum": [ - "osName" - ], - "title": "osName" - }, - { - "type": "string", - "enum": [ - "clientType" - ], - "title": "clientType" - }, - { - "type": "string", - "enum": [ - "clientName" - ], - "title": "clientName" - }, - { - "type": "string", - "enum": [ - "deviceName" - ], - "title": "deviceName" - }, - { - "type": "string", - "enum": [ - "sdk" - ], - "title": "sdk" - }, - { - "type": "string", - "enum": [ - "sdkVersion" - ], - "title": "sdkVersion" - }, - { - "type": "string", - "enum": [ - "teamId" - ], - "title": "teamId" - }, - { - "type": "string", - "enum": [ - "resourceId" - ], - "title": "resourceId" - }, - { - "type": "string", - "enum": [ - "protocol" - ], - "title": "protocol" - }, - { - "type": "string", - "enum": [ - "queryKeys" - ], - "title": "queryKeys" - }, - { - "type": "string", - "enum": [ - "accept" - ], - "title": "accept" - }, - { - "type": "string", - "enum": [ - "acceptLanguage" - ], - "title": "acceptLanguage" - }, - { - "type": "string", - "enum": [ - "postalCode" - ], - "title": "postalCode" - }, - { - "type": "string", - "enum": [ - "latitude" - ], - "title": "latitude" - }, - { - "type": "string", - "enum": [ - "longitude" - ], - "title": "longitude" - }, - { - "type": "string", - "enum": [ - "timeZone" - ], - "title": "timeZone" - }, - { - "type": "string", - "enum": [ - "weatherCode" - ], - "title": "weatherCode" - }, - { - "type": "string", - "enum": [ - "isp" - ], - "title": "isp" - }, - { - "type": "string", - "enum": [ - "autonomousSystemNumber" - ], - "title": "autonomousSystemNumber" - }, - { - "type": "string", - "enum": [ - "autonomousSystemOrganization" - ], - "title": "autonomousSystemOrganization" - }, - { - "type": "string", - "enum": [ - "connectionType" - ], - "title": "connectionType" - }, - { - "type": "string", - "enum": [ - "connectionUsageType" - ], - "title": "connectionUsageType" - }, - { - "type": "string", - "enum": [ - "connectionOrganization" - ], - "title": "connectionOrganization" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "startAt", - "description": "Range start in ISO 8601. Defaults adapt to interval (7d for the no-interval aggregate).", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "endAt", - "description": "Range end in ISO 8601. Defaults to the current time.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "orderBy", - "description": "Column to order by. Allowed: time, value. Default time when an interval is set; otherwise value.", - "required": false, - "schema": { - "type": "string", - "example": "time", - "title": "UsageOrderBy", - "oneOf": [ - { - "type": "string", - "enum": [ - "time" - ], - "title": "time" - }, - { - "type": "string", - "enum": [ - "value" - ], - "title": "value" - } - ], - "default": "time" - }, - "in": "query" - }, - { - "name": "orderDir", - "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, returns the most recent \/ highest-value groups first.", - "required": false, - "schema": { - "type": "string", - "example": "asc", - "title": "UsageOrderDirection", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ], - "default": "desc" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum rows to return (1-5000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 500 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Pagination offset (0-100000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/usage\/gauges": { - "get": { - "summary": "List usage gauges", - "operationId": "usageListGauges", - "tags": [ - "usage" - ], - "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each point carries the latest snapshot in its interval via `argMax(value, time)`. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\nA metric with no stored samples in the window returns an empty `points[]`. A metric that really did read zero returns a point whose `value` is `0`, so \"no such series\" and \"a genuine zero\" are different answers.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down further. Supported on gauges: `resourceId`, `teamId`, `service`, `resourceType`, `ordinal`. `service` and `resourceType` enable per-service \/ per-resource-type panels (e.g. storage-by-service: group `files.storage`, `deployments.storage`, `builds.storage`, `databases.storage` by `service`). `ordinal` separates per-node series for multi-node resources such as dedicated databases. It is a stable per-node identity, not a role \u2014 ordinal 0 is the first member created, and a failover can leave the primary on any ordinal, so read the role from the database's replicas endpoint rather than inferring it here. `queries[]` filters the underlying rows using the standard Utopia query syntax \u2014 `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `equal(\"teamId\", [\"team_x\"])`, `equal(\"ordinal\", [\"0\"])`, `isNotNull(\"teamId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).\n\n`aggregate` selects how the samples in a bucket are combined: `last` (default) is the latest reading \u2014 correct for a snapshot such as storage \u2014 while `max` is the highest reading. Use `max` for a sampled level series: peak concurrent realtime connections is `metrics[]=realtime.connections&aggregate=max`, at whatever `interval` the chart needs, since the peak of a set of samples is just the max of their per-bucket maxima. `realtime.connections` is served only here - it is a concurrency level, not a countable event, so `\/v1\/usage\/events` rejects it.", - "responses": { - "200": { - "description": "usageGaugeList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageGaugeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "gauges", - "demo": "usage\/list-gauges.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "metrics", - "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=files.storage` or `metrics[]=files.storage&metrics[]=deployments.storage` for stacked charts.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "anyOf": [ - { - "title": "UsageGaugeMetric", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "analytics.properties" - ], - "title": "analytics.properties" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "messages" - ], - "title": "messages" - }, - { - "type": "string", - "enum": [ - "sessions" - ], - "title": "sessions" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "collections" - ], - "title": "collections" - }, - { - "type": "string", - "enum": [ - "documents" - ], - "title": "documents" - }, - { - "type": "string", - "enum": [ - "databases.storage" - ], - "title": "databases.storage" - }, - { - "type": "string", - "enum": [ - "documentsdb.databases" - ], - "title": "documentsdb.databases" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections" - ], - "title": "documentsdb.collections" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents" - ], - "title": "documentsdb.documents" - }, - { - "type": "string", - "enum": [ - "documentsdb.databases.storage" - ], - "title": "documentsdb.databases.storage" - }, - { - "type": "string", - "enum": [ - "vectorsdb.databases" - ], - "title": "vectorsdb.databases" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections" - ], - "title": "vectorsdb.collections" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents" - ], - "title": "vectorsdb.documents" - }, - { - "type": "string", - "enum": [ - "vectorsdb.databases.storage" - ], - "title": "vectorsdb.databases.storage" - }, - { - "type": "string", - "enum": [ - "buckets" - ], - "title": "buckets" - }, - { - "type": "string", - "enum": [ - "files" - ], - "title": "files" - }, - { - "type": "string", - "enum": [ - "files.storage" - ], - "title": "files.storage" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "deployments" - ], - "title": "deployments" - }, - { - "type": "string", - "enum": [ - "deployments.storage" - ], - "title": "deployments.storage" - }, - { - "type": "string", - "enum": [ - "builds" - ], - "title": "builds" - }, - { - "type": "string", - "enum": [ - "builds.storage" - ], - "title": "builds.storage" - }, - { - "type": "string", - "enum": [ - "users.mau" - ], - "title": "users.mau" - }, - { - "type": "string", - "enum": [ - "users.dau" - ], - "title": "users.dau" - }, - { - "type": "string", - "enum": [ - "users.wau" - ], - "title": "users.wau" - }, - { - "type": "string", - "enum": [ - "webhooks" - ], - "title": "webhooks" - }, - { - "type": "string", - "enum": [ - "platforms" - ], - "title": "platforms" - }, - { - "type": "string", - "enum": [ - "providers" - ], - "title": "providers" - }, - { - "type": "string", - "enum": [ - "topics" - ], - "title": "topics" - }, - { - "type": "string", - "enum": [ - "targets" - ], - "title": "targets" - }, - { - "type": "string", - "enum": [ - "keys" - ], - "title": "keys" - }, - { - "type": "string", - "enum": [ - "domains" - ], - "title": "domains" - }, - { - "type": "string", - "enum": [ - "realtime.connections" - ], - "title": "realtime.connections" - }, - { - "type": "string", - "enum": [ - "backups.policies" - ], - "title": "backups.policies" - }, - { - "type": "string", - "enum": [ - "backups.storage" - ], - "title": "backups.storage" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.storage" - ], - "title": "dedicatedDatabases.storage" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.connections" - ], - "title": "dedicatedDatabases.connections" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.cpu" - ], - "title": "dedicatedDatabases.cpu" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.memory" - ], - "title": "dedicatedDatabases.memory" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.qps" - ], - "title": "dedicatedDatabases.qps" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.iopsRead" - ], - "title": "dedicatedDatabases.iopsRead" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.iopsWrite" - ], - "title": "dedicatedDatabases.iopsWrite" - }, - { - "type": "string", - "enum": [ - "apps" - ], - "title": "apps" - }, - { - "type": "string", - "enum": [ - "apps.users" - ], - "title": "apps.users" - }, - { - "type": "string", - "enum": [ - "apps.installations" - ], - "title": "apps.installations" - } - ] - }, - { - "type": "string" - } - ] - } - }, - "in": "query" - }, - { - "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageGaugeDimension` enum: service, resourceType, resourceId, teamId, ordinal. Allowed methods: equal, notEqual, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "interval", - "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", - "required": false, - "schema": { - "type": "string", - "example": "1m", - "title": "UsageInterval", - "oneOf": [ - { - "type": "string", - "enum": [ - "1m" - ], - "title": "One Minute" - }, - { - "type": "string", - "enum": [ - "15m" - ], - "title": "Fifteen Minutes" - }, - { - "type": "string", - "enum": [ - "30m" - ], - "title": "Thirty Minutes" - }, - { - "type": "string", - "enum": [ - "1h" - ], - "title": "One Hour" - }, - { - "type": "string", - "enum": [ - "1d" - ], - "title": "One Day" - } - ] - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType, ordinal.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "UsageGaugeDimension", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "resourceId" - ], - "title": "resourceId" - }, - { - "type": "string", - "enum": [ - "teamId" - ], - "title": "teamId" - }, - { - "type": "string", - "enum": [ - "service" - ], - "title": "service" - }, - { - "type": "string", - "enum": [ - "resourceType" - ], - "title": "resourceType" - }, - { - "type": "string", - "enum": [ - "ordinal" - ], - "title": "ordinal" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "startAt", - "description": "Range start in ISO 8601. Defaults to endAt - 7d.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "endAt", - "description": "Range end in ISO 8601. Defaults to the current time.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "orderBy", - "description": "Column to order by. Allowed: time, value. Default time.", - "required": false, - "schema": { - "type": "string", - "example": "time", - "title": "UsageOrderBy", - "oneOf": [ - { - "type": "string", - "enum": [ - "time" - ], - "title": "time" - }, - { - "type": "string", - "enum": [ - "value" - ], - "title": "value" - } - ], - "default": "time" - }, - "in": "query" - }, - { - "name": "orderDir", - "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, this returns the most recent groups first. Pass asc for chronological charting.", - "required": false, - "schema": { - "type": "string", - "example": "asc", - "title": "UsageOrderDirection", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ], - "default": "desc" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum rows to return (1-5000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 500 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Pagination offset (0-100000).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "aggregate", - "description": "How to combine the samples in each bucket. `last` (default) returns the latest reading \u2014 the right answer for a snapshot such as storage. `max` returns the highest reading, which is what a sampled level series needs: peak concurrent realtime connections is the max of `realtime.connections` over the window.", - "required": false, - "schema": { - "type": "string", - "example": "last", - "default": "last" - }, - "in": "query" - } - ] - } - }, - "\/users": { - "get": { - "summary": "List users", - "operationId": "usersList", - "tags": [ - "users" - ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Users List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/userList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create user", - "operationId": "usersCreate", - "tags": [ - "users" - ], - "description": "Create a new user.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone", - "nullable": true - }, - "password": { - "description": "Plain text user password. Must be at least 8 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password", - "nullable": true - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId" - ] - } - } - } - } - } - }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-argon-2-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Argon2.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-bcrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Bcrypt.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/identities": { - "get": { - "summary": "List identities", - "operationId": "usersListIdentities", - "tags": [ - "users" - ], - "description": "Get identities for all users.", - "responses": { - "200": { - "description": "Identities List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/identityList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "users\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.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: 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, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", - "tags": [ - "users" - ], - "description": "Delete an identity by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "users\/delete-identity.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "identityId", - "description": "Identity ID.", - "required": true, - "schema": { - "type": "string", - "example": "<IDENTITY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using MD5.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-ph-pass-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "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.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using PHPass.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-scrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Scrypt.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordSalt": { - "description": "Optional salt used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "description": "Optional CPU cost used to hash password.", - "type": "integer", - "example": 8, - "format": "int32" - }, - "passwordMemory": { - "description": "Optional memory cost used to hash password.", - "type": "integer", - "example": 65536, - "format": "int32" - }, - "passwordParallel": { - "description": "Optional parallelization cost used to hash password.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "passwordLength": { - "description": "Optional hash length used to hash password.", - "type": "integer", - "example": 64, - "format": "int32" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" - ] - } - } - } - } - } - }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-scrypt-modified-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Scrypt Modified.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordSalt": { - "description": "Salt used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "description": "Salt separator used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "description": "Signer key used to hash password.", - "type": "string", - "example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "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": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using SHA.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordVersion": { - "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'", - "type": "string", - "example": "sha1", - "title": "PasswordHash", - "oneOf": [ - { - "type": "string", - "enum": [ - "sha1" - ], - "title": "sha1" - }, - { - "type": "string", - "enum": [ - "sha224" - ], - "title": "sha224" - }, - { - "type": "string", - "enum": [ - "sha256" - ], - "title": "sha256" - }, - { - "type": "string", - "enum": [ - "sha384" - ], - "title": "sha384" - }, - { - "type": "string", - "enum": [ - "sha512\/224" - ], - "title": "sha512\/224" - }, - { - "type": "string", - "enum": [ - "sha512\/256" - ], - "title": "sha512\/256" - }, - { - "type": "string", - "enum": [ - "sha512" - ], - "title": "sha512" - }, - { - "type": "string", - "enum": [ - "sha3-224" - ], - "title": "sha3-224" - }, - { - "type": "string", - "enum": [ - "sha3-256" - ], - "title": "sha3-256" - }, - { - "type": "string", - "enum": [ - "sha3-384" - ], - "title": "sha3-384" - }, - { - "type": "string", - "enum": [ - "sha3-512" - ], - "title": "sha3-512" - } - ] - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/usage": { - "get": { - "summary": "Get users usage stats", - "operationId": "usersGetUsage", - "tags": [ - "users" - ], - "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": "UsageUsers", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageUsers" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "users\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "example": "24h", - "title": "UsageRange", - "oneOf": [ - { - "type": "string", - "enum": [ - "24h" - ], - "title": "24h" - }, - { - "type": "string", - "enum": [ - "30d" - ], - "title": "30d" - }, - { - "type": "string", - "enum": [ - "90d" - ], - "title": "90d" - } - ], - "default": "30d" - }, - "in": "query" - } - ] - } - }, - "\/users\/{userId}": { - "get": { - "summary": "Get user", - "operationId": "usersGet", - "tags": [ - "users" - ], - "description": "Get a user by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", - "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": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", - "tags": [ - "users" - ], - "description": "Update the user email by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/impersonator": { - "patch": { - "summary": "Update user impersonator capability", - "operationId": "usersUpdateImpersonator", - "tags": [ - "users" - ], - "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. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-impersonator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "impersonator": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "impersonator" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", - "tags": [ - "users" - ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", - "responses": { - "201": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-jwt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sessionId": { - "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", - "type": "string", - "default": "recent()", - "example": "recent()" - }, - "duration": { - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "type": "integer", - "default": 900, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", - "tags": [ - "users" - ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-labels.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "type": "array", - "example": [ - "subscriber" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/memberships": { - "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", - "tags": [ - "users" - ], - "description": "Get the user membership list by its unique ID.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "users\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", - "tags": [ - "users" - ], - "description": "Enable or disable MFA on a user account.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "users", - "demo": "users\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, - "methods": [ - { - "name": "updateMfa", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "description": "Enable or disable MFA.", - "type": "boolean", - "example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", - "tags": [ - "users" - ], - "description": "Delete an authenticator app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "users\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { - "get": { - "summary": "Get MFA challenge", - "operationId": "usersGetMFAChallenge", - "tags": [ - "users" - ], - "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", - "responses": { - "200": { - "description": "MFA Challenge Secret", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaChallengeSecret" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mfa", - "demo": "users\/get-mfa-challenge.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "getMFAChallenge", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "challengeId" - ], - "required": [ - "userId", - "challengeId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaChallengeSecret" - } - ], - "description": "", - "demo": "users\/get-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "challengeId", - "description": "ID of the challenge.", - "required": true, - "schema": { - "type": "string", - "example": "<CHALLENGE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", - "tags": [ - "users" - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "responses": { - "200": { - "description": "MFAFactors", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "users\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_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" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", - "tags": [ - "users" - ], - "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": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", - "tags": [ - "users" - ], - "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": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", - "tags": [ - "users" - ], - "description": "Update the user name by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", - "tags": [ - "users" - ], - "description": "Update the user password by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "description": "New user password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", - "tags": [ - "users" - ], - "description": "Update the user phone by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "number": { - "description": "User phone number.", - "type": "string", - "example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "number" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/prefs": { - "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", - "tags": [ - "users" - ], - "description": "Get the user preferences by its unique ID.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", - "tags": [ - "users" - ], - "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/sessions": { - "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", - "tags": [ - "users" - ], - "description": "Get the user sessions list by its unique ID.", - "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.read", - "sessions.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create session", - "operationId": "usersCreateSession", - "tags": [ - "users" - ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", - "tags": [ - "users" - ], - "description": "Delete all user's sessions by using the user's unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/delete-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", - "tags": [ - "users" - ], - "description": "Delete a user sessions by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/delete-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "sessionId", - "description": "Session ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "type": "boolean", - "example": false - } - }, - "required": [ - "status" - ] - } - } - } - } - } - }, - "\/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": { - "group": "targets", - "demo": "users\/list-targets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", - "tags": [ - "users" - ], - "description": "Create a messaging target.", - "responses": { - "201": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/create-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetId": { - "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TARGET_ID>" - }, - "providerType": { - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "type": "string", - "example": "email", - "title": "MessagingProviderType", - "oneOf": [ - { - "type": "string", - "enum": [ - "email" - ], - "title": "email" - }, - { - "type": "string", - "enum": [ - "sms" - ], - "title": "sms" - }, - { - "type": "string", - "enum": [ - "push" - ], - "title": "push" - } - ] - }, - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/targets\/{targetId}": { - "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", - "tags": [ - "users" - ], - "description": "Get a user's push notification target by ID.", - "responses": { - "200": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/get-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "targets", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "default": "", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "type": "string", - "default": "", - "example": "<NAME>" - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", - "tags": [ - "users" - ], - "description": "Delete a messaging target.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/delete-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", - "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", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "length": { - "description": "Token length in characters. The default length is 6 characters", - "type": "integer", - "default": 6, - "example": 4, - "format": "int32" - }, - "expire": { - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", - "tags": [ - "users" - ], - "description": "Update the user email verification status by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emailVerification": { - "description": "User email verification status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "emailVerification" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", - "tags": [ - "users" - ], - "description": "Update the user phone verification status by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "description": "User phone verification status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "phoneVerification" - ] - } - } - } - } - } - }, - "\/vcs\/github\/installations\/{installationId}\/detections": { - "post": { - "summary": "Create repository detection", - "operationId": "vcsCreateRepositoryDetection", - "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", - "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": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerRepositoryId": { - "description": "Repository Id", - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "type": { - "description": "Detector type. Must be one of the following: runtime, framework", - "type": "string", - "example": "runtime", - "title": "VCSDetectionType", - "oneOf": [ - { - "type": "string", - "enum": [ - "runtime" - ], - "title": "runtime" - }, - { - "type": "string", - "enum": [ - "framework" - ], - "title": "framework" - } - ] - }, - "providerRootDirectory": { - "description": "Path to Root Directory", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - } - }, - "required": [ - "providerRepositoryId", - "type" - ] - } - } - } - } - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { - "get": { - "summary": "List repositories", - "operationId": "vcsListRepositories", - "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", - "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" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Detector type. Must be one of the following: runtime, framework", - "required": true, - "schema": { - "type": "string", - "example": "runtime", - "title": "VCSDetectionType", - "oneOf": [ - { - "type": "string", - "enum": [ - "runtime" - ], - "title": "runtime" - }, - { - "type": "string", - "enum": [ - "framework" - ], - "title": "framework" - } - ] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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, and equal on namespace.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create repository", - "operationId": "vcsCreateRepository", - "tags": [ - "vcs" - ], - "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", - "responses": { - "200": { - "description": "ProviderRepository", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerRepository" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Repository name (slug)", - "type": "string", - "example": "<NAME>" - }, - "private": { - "description": "Mark repository public or private", - "type": "boolean", - "example": false - }, - "providerNamespace": { - "description": "Namespace of the git repository. Defaults to the installation's own namespace.", - "type": "string", - "default": "", - "example": "<PROVIDER_NAMESPACE>" - } - }, - "required": [ - "name", - "private" - ] - } - } - } - } - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { - "get": { - "summary": "Get repository", - "operationId": "vcsGetRepository", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerRepository" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { - "get": { - "summary": "List repository branches", - "operationId": "vcsListRepositoryBranches", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/branchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "in": "path" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { - "get": { - "summary": "Get files and directories of a VCS repository", - "operationId": "vcsGetRepositoryContents", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/vcsContentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "in": "path" - }, - { - "name": "providerRootDirectory", - "description": "Path to get contents of nested directory", - "required": false, - "schema": { - "type": "string", - "example": "<PROVIDER_ROOT_DIRECTORY>", - "default": "" - }, - "in": "query" - }, - { - "name": "providerReference", - "description": "Git reference (branch, tag, commit) to get contents from", - "required": false, - "schema": { - "type": "string", - "example": "<PROVIDER_REFERENCE>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { - "patch": { - "summary": "Update external deployment (authorize)", - "operationId": "vcsUpdateExternalDeployments", - "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": { - "group": "repositories", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "repositoryId", - "description": "VCS Repository Id", - "required": true, - "schema": { - "type": "string", - "example": "<REPOSITORY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerPullRequestId": { - "description": "GitHub Pull Request Id", - "type": "string", - "example": "<PROVIDER_PULL_REQUEST_ID>" - } - }, - "required": [ - "providerPullRequestId" - ] - } - } - } - } - } - }, - "\/vcs\/installations": { - "get": { - "summary": "List installations", - "operationId": "vcsListInstallations", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/installationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "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, - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/vcs\/installations\/{installationId}": { - "get": { - "summary": "Get installation", - "operationId": "vcsGetInstallation", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/installation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "installations", - "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/vcs\/installations\/{installationId}\/namespaces": { - "get": { - "summary": "List namespaces", - "operationId": "vcsListNamespaces", - "tags": [ - "vcs" - ], - "description": "List provider namespaces available to a VCS installation. This can include the user personal namespace and any groups or organizations the installation can browse.", - "responses": { - "200": { - "description": "VCS Namespaces List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/vcsNamespaceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "namespaces", - "demo": "vcs\/list-namespaces.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "vectorsdb", - "demo": "vectorsdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.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 columns: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "vectorsDBCreate", - "tags": [ - "vectorsDB" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/vectorsdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "vectorsDBListSpecifications", - "tags": [ - "vectorsDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/vectorsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", - "tags": [ - "vectorsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "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" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", - "tags": [ - "vectorsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "transactions", - "demo": "vectorsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "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": { - "group": "transactions", - "demo": "vectorsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation in a four-dimensional collection", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - ] - } - } - } - } - } - } - } - }, - "\/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": { - "group": "vectorsdb", - "demo": "vectorsdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "vectorsdb", - "demo": "vectorsdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "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": { - "group": "vectorsdb", - "demo": "vectorsdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "collections", - "demo": "vectorsdb\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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": { - "group": "collections", - "demo": "vectorsdb\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "dimension": { - "description": "Embedding dimension.", - "type": "integer", - "example": 4, - "format": "int32" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - }, - "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": { - "group": "collections", - "demo": "vectorsdb\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "collections", - "demo": "vectorsdb\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "dimension": { - "description": "Embedding dimensions.", - "type": "integer", - "example": 4, - "format": "int32" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false, - "nullable": true - } - }, - "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": { - "group": "collections", - "demo": "vectorsdb\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "documents", - "demo": "vectorsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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 524288 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "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": { - "group": "documents", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "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#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "vectorsDB", - "platforms": [ - "console", - "server" - ], - "summary": "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#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", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "key": "value" - } - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "vectorsDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "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", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "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": { - "group": "documents", - "demo": "vectorsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update metadata on explicitly selected documents", - "value": { - "data": { - "metadata": { - "name": "Updated document" - } - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_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": { - "group": "documents", - "demo": "vectorsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { - "post": { - "summary": "Create query", - "operationId": "vectorsDBCreateQuery", - "tags": [ - "vectorsDB" - ], - "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "vectorsdb\/create-query.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID to read uncommitted changes within the transaction.", - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "total": { - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "type": "boolean", - "default": true, - "example": false - }, - "ttl": { - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "documents", - "demo": "vectorsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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": { - "group": "documents", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "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", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update a document in a four-dimensional collection", - "value": { - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document metadata", - "value": { - "data": { - "metadata": { - "name": "Updated document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "indexes", - "demo": "vectorsdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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": { - "group": "indexes", - "demo": "vectorsdb\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "hnsw_euclidean", - "title": "VectorsDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "hnsw_euclidean" - ], - "title": "hnsw_euclidean" - }, - { - "type": "string", - "enum": [ - "hnsw_dot" - ], - "title": "hnsw_dot" - }, - { - "type": "string", - "enum": [ - "hnsw_cosine" - ], - "title": "hnsw_cosine" - }, - { - "type": "string", - "enum": [ - "object" - ], - "title": "object" - }, - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "embeddings" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/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": { - "group": "indexes", - "demo": "vectorsdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "vectorsDBDeleteIndex", - "tags": [ - "vectorsDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "vectorsdb\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "vectorsDBCreateFailover", - "tags": [ - "vectorsDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "vectorsdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/vectorsdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "vectorsDBListOperations", - "tags": [ - "vectorsDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "vectorsdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "vectorsDBGetReplicas", - "tags": [ - "vectorsDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "vectorsdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "vectorsDBGetStatus", - "tags": [ - "vectorsDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/waf\/rules": { - "get": { - "summary": "List WAF rules.", - "operationId": "wafListRules", - "tags": [ - "waf" - ], - "description": "List WAF rules for the current project.\n", - "responses": { - "200": { - "description": "WAF rule list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/list-rules.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/waf\/rules\/bypass": { - "post": { - "summary": "Create a bypass WAF rule.", - "operationId": "wafCreateBypassRule", - "tags": [ - "waf" - ], - "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleBypass", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleBypass" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-bypass-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Leave empty for the API resource type.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Bypass other rules for an IP", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Office network", - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/bypass\/{ruleId}": { - "patch": { - "summary": "Update a bypass WAF rule.", - "operationId": "wafUpdateBypassRule", - "tags": [ - "waf" - ], - "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleBypass", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleBypass" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-bypass-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/challenge": { - "post": { - "summary": "Create a challenge WAF rule.", - "operationId": "wafCreateChallengeRule", - "tags": [ - "waf" - ], - "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleChallenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleChallenge" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-challenge-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "challengeType": { - "description": "Challenge type enforced by the rule.", - "type": "string", - "default": "compute", - "example": "compute" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - }, - "difficulty": { - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", - "type": "integer", - "default": 3, - "example": 1, - "format": "int32" - }, - "ttl": { - "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", - "type": "integer", - "default": 1800, - "example": 900, - "format": "int32" - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Challenge requests to a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Challenge sign-ins", - "conditions": [ - "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/challenge\/{ruleId}": { - "patch": { - "summary": "Update a challenge WAF rule.", - "operationId": "wafUpdateChallengeRule", - "tags": [ - "waf" - ], - "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleChallenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleChallenge" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-challenge-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "challengeType": { - "description": "Challenge type enforced by the rule.", - "type": "string", - "example": "compute", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - }, - "difficulty": { - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "ttl": { - "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", - "type": "integer", - "example": 900, - "format": "int32", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/deny": { - "post": { - "summary": "Create a deny WAF rule.", - "operationId": "wafCreateDenyRule", - "tags": [ - "waf" - ], - "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleDeny", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleDeny" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-deny-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Deny requests from an IP range", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Block abusive range", - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/deny\/{ruleId}": { - "patch": { - "summary": "Update a deny WAF rule.", - "operationId": "wafUpdateDenyRule", - "tags": [ - "waf" - ], - "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleDeny", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleDeny" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-deny-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/rate-limit": { - "post": { - "summary": "Create a rate-limit WAF rule.", - "operationId": "wafCreateRateLimitRule", - "tags": [ - "waf" - ], - "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleRateLimit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRateLimit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-rate-limit-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "limit": { - "description": "Maximum number of matching requests allowed in the configured interval.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "interval": { - "description": "Interval in seconds used for rate limiting.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "key": { - "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", - "type": "string", - "default": "ip", - "example": "ip" - }, - "strategy": { - "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", - "type": "string", - "default": "fixedWindow", - "example": "fixedWindow" - }, - "maxBucketSize": { - "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name", - "limit", - "interval" - ] - }, - "examples": { - "scoped": { - "summary": "Rate limit requests to a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Limit sign-ins", - "limit": 10, - "interval": 60, - "conditions": [ - "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/rate-limit\/{ruleId}": { - "patch": { - "summary": "Update a rate-limit WAF rule.", - "operationId": "wafUpdateRateLimitRule", - "tags": [ - "waf" - ], - "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleRateLimit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRateLimit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-rate-limit-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "limit": { - "description": "Maximum number of matching requests allowed in the configured interval.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "interval": { - "description": "Interval in seconds used for rate limiting.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "key": { - "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", - "type": "string", - "example": "ip", - "nullable": true - }, - "maxBucketSize": { - "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/redirect": { - "post": { - "summary": "Create a redirect WAF rule.", - "operationId": "wafCreateRedirectRule", - "tags": [ - "waf" - ], - "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleRedirect", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRedirect" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-redirect-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "location": { - "description": "Location used for redirect responses.", - "type": "string", - "example": "<LOCATION>" - }, - "statusCode": { - "description": "Integer status code used for redirect responses.", - "type": "integer", - "example": 300, - "format": "int32" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name", - "location", - "statusCode" - ] - }, - "examples": { - "scoped": { - "summary": "Redirect requests for a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Moved page", - "location": "\/new-page", - "statusCode": 301, - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/redirect\/{ruleId}": { - "patch": { - "summary": "Update a redirect WAF rule.", - "operationId": "wafUpdateRedirectRule", - "tags": [ - "waf" - ], - "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleRedirect", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRedirect" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-redirect-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "location": { - "description": "Location used for redirect responses.", - "type": "string", - "example": "<LOCATION>", - "nullable": true - }, - "statusCode": { - "description": "Integer status code used for redirect responses.", - "type": "integer", - "example": 300, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/{ruleId}": { - "get": { - "summary": "Get a WAF rule.", - "operationId": "wafGetRule", - "tags": [ - "waf" - ], - "description": "Get a WAF rule by its ID.\n", - "responses": { - "200": { - "description": "WafRule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a WAF rule.", - "operationId": "wafDeleteRule", - "tags": [ - "waf" - ], - "description": "Delete a WAF rule.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/delete-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/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": { - "group": null, - "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", - "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": { - "group": null, - "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": { - "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.", - "type": "string", - "example": "<WEBHOOK_ID>" - }, - "url": { - "description": "Webhook URL.", - "type": "string", - "example": "https:\/\/example.com\/webhook" - }, - "name": { - "description": "Webhook name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "example": [ - "users.*.create" - ], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Enable or disable a webhook.", - "type": "boolean", - "default": true, - "example": false - }, - "tls": { - "description": "Certificate verification, false for disabled or true for enabled.", - "type": "boolean", - "default": false, - "example": false - }, - "authUsername": { - "description": "Webhook HTTP user. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "<AUTH_USERNAME>" - }, - "authPassword": { - "description": "Webhook HTTP password. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "secret": { - "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.", - "type": "string", - "example": "<SECRET>", - "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": { - "group": null, - "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", - "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": { - "group": null, - "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", - "example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Webhook name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "url": { - "description": "Webhook URL.", - "type": "string", - "example": "https:\/\/example.com\/webhook" - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "example": [ - "users.*.create" - ], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Enable or disable a webhook.", - "type": "boolean", - "default": true, - "example": false - }, - "tls": { - "description": "Certificate verification, false for disabled or true for enabled.", - "type": "boolean", - "default": false, - "example": false - }, - "authUsername": { - "description": "Webhook HTTP user. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "<AUTH_USERNAME>" - }, - "authPassword": { - "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", - "type": "string", - "example": "password", - "format": "password", - "nullable": true - } - }, - "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": { - "group": null, - "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", - "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": { - "group": null, - "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", - "example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "secret": { - "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.", - "type": "string", - "example": "<SECRET>", - "nullable": true - } - } - } - } - } - } - } - } - }, - "tags": [ - { - "name": "ping", - "description": "" - }, - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "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": "documentsDB", - "description": "" - }, - { - "name": "vectorsDB", - "description": "" - }, - { - "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "presences", - "description": "The Presences service allows you to track and manage real-time user presence in your project." - }, - { - "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions." - }, - { - "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." - }, - { - "name": "notifications", - "description": "The Notifications service allows you to read and manage your Appwrite Console notifications." - }, - { - "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications." - }, - { - "name": "console", - "description": "The Console service allows you to interact with console relevant information." - }, - { - "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." - }, - { - "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": "tokens", - "description": "The Tokens service allows you to create and manage resource tokens for secure file access." - }, - { - "name": "users", - "description": "The Users service allows you to manage your project users." - }, - { - "name": "usage", - "description": "" - }, - { - "name": "storage", - "description": "The Storage service allows you to manage your project files." - }, - { - "name": "vcs", - "description": "The VCS service allows you to interact with providers like GitHub, GitLab etc." - }, - { - "name": "webhooks", - "description": "The Webhooks service allows you to manage your project webhooks." - }, - { - "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." - }, - { - "name": "organization", - "description": "The Organization service allows you to manage organization-level projects." - }, - { - "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "advisor", - "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." - }, - { - "name": "mysql", - "description": "" - }, - { - "name": "postgresql", - "description": "" - }, - { - "name": "mongo", - "description": "" - }, - { - "name": "apps", - "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." - }, - { - "name": "oauth2", - "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." - }, - { - "name": "domains", - "description": "" - }, - { - "name": "manager", - "description": "" - }, - { - "name": "organizations", - "description": "The Organizations service allows you to manage organization billing, plans, invoices, and add-ons." - }, - { - "name": "affiliates", - "description": "The Affiliates service allows you to share referral codes, track conversions, and apply earned credits." - }, - { - "name": "backups", - "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." - }, - { - "name": "activities", - "description": "The Activities service allows you to list and inspect project activity events." - }, - { - "name": "analytics", - "description": "" - }, - { - "name": "waf", - "description": "" - }, - { - "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." - }, - { - "name": "embeddings", - "description": "" - }, - { - "name": "assistant", - "description": "" - }, - { - "name": "growth", - "description": "The Growth service allows you to contact the Appwrite team and record self-hosted installations." - } - ], - "components": { - "schemas": { - "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.", - "format": "int32", - "example": 5 - }, - "rows": { - "type": "array", - "description": "List of rows.", - "items": { - "$ref": "#\/components\/schemas\/row" - }, - "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.", - "format": "int32", - "example": 5 - }, - "documents": { - "type": "array", - "description": "List of documents.", - "items": { - "$ref": "#\/components\/schemas\/document" - }, - "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.", - "format": "int32", - "example": 5 - }, - "presences": { - "type": "array", - "description": "List of presences.", - "items": { - "$ref": "#\/components\/schemas\/presence" - }, - "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.", - "format": "int32", - "example": 5 - }, - "tables": { - "type": "array", - "description": "List of tables.", - "items": { - "$ref": "#\/components\/schemas\/table" - }, - "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.", - "format": "int32", - "example": 5 - }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "$ref": "#\/components\/schemas\/collection" - }, - "example": [] - } - }, - "required": [ - "total", - "collections" - ], - "example": { - "total": 5, - "collections": "" - } - }, - "databaseList": { - "description": "Databases List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of databases that matched your query.", - "format": "int32", - "example": 5 - }, - "databases": { - "type": "array", - "description": "List of databases.", - "items": { - "$ref": "#\/components\/schemas\/database" - }, - "example": [] - } - }, - "required": [ - "total", - "databases" - ], - "example": { - "total": 5, - "databases": "" - } - }, - "indexList": { - "description": "Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "format": "int32", - "example": 5 - }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - } - }, - "required": [ - "total", - "indexes" - ], - "example": { - "total": 5, - "indexes": "" - } - }, - "columnIndexList": { - "description": "Column Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "format": "int32", - "example": 5 - }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" - }, - "example": [] - } - }, - "required": [ - "total", - "indexes" - ], - "example": { - "total": 5, - "indexes": "" - } - }, - "userList": { - "description": "Users List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of users that matched your query.", - "format": "int32", - "example": 5 - }, - "users": { - "type": "array", - "description": "List of users.", - "items": { - "$ref": "#\/components\/schemas\/user" - }, - "example": [] - } - }, - "required": [ - "total", - "users" - ], - "example": { - "total": 5, - "users": "" - } - }, - "sessionList": { - "description": "Sessions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sessions that matched your query.", - "format": "int32", - "example": 5 - }, - "sessions": { - "type": "array", - "description": "List of sessions.", - "items": { - "$ref": "#\/components\/schemas\/session" - }, - "example": [] - } - }, - "required": [ - "total", - "sessions" - ], - "example": { - "total": 5, - "sessions": "" - } - }, - "identityList": { - "description": "Identities List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of identities that matched your query.", - "format": "int32", - "example": 5 - }, - "identities": { - "type": "array", - "description": "List of identities.", - "items": { - "$ref": "#\/components\/schemas\/identity" - }, - "example": [] - } - }, - "required": [ - "total", - "identities" - ], - "example": { - "total": 5, - "identities": "" - } - }, - "notificationList": { - "description": "Notifications List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of notifications that matched your query.", - "format": "int32", - "example": 5 - }, - "notifications": { - "type": "array", - "description": "List of notifications.", - "items": { - "$ref": "#\/components\/schemas\/notification" - }, - "example": [] - } - }, - "required": [ - "total", - "notifications" - ], - "example": { - "total": 5, - "notifications": "" - } - }, - "fileList": { - "description": "Files List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of files that matched your query.", - "format": "int32", - "example": 5 - }, - "files": { - "type": "array", - "description": "List of files.", - "items": { - "$ref": "#\/components\/schemas\/file" - }, - "example": [] - } - }, - "required": [ - "total", - "files" - ], - "example": { - "total": 5, - "files": "" - } - }, - "bucketList": { - "description": "Buckets List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of buckets that matched your query.", - "format": "int32", - "example": 5 - }, - "buckets": { - "type": "array", - "description": "List of buckets.", - "items": { - "$ref": "#\/components\/schemas\/bucket" - }, - "example": [] - } - }, - "required": [ - "total", - "buckets" - ], - "example": { - "total": 5, - "buckets": "" - } - }, - "resourceTokenList": { - "description": "Resource Tokens List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "format": "int32", - "example": 5 - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/resourceToken" - }, - "example": [] - } - }, - "required": [ - "total", - "tokens" - ], - "example": { - "total": 5, - "tokens": "" - } - }, - "teamList": { - "description": "Teams List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of teams that matched your query.", - "format": "int32", - "example": 5 - }, - "teams": { - "type": "array", - "description": "List of teams.", - "items": { - "$ref": "#\/components\/schemas\/team" - }, - "example": [] - } - }, - "required": [ - "total", - "teams" - ], - "example": { - "total": 5, - "teams": "" - } - }, - "membershipList": { - "description": "Memberships List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of memberships that matched your query.", - "format": "int32", - "example": 5 - }, - "memberships": { - "type": "array", - "description": "List of memberships.", - "items": { - "$ref": "#\/components\/schemas\/membership" - }, - "example": [] - } - }, - "required": [ - "total", - "memberships" - ], - "example": { - "total": 5, - "memberships": "" - } - }, - "siteList": { - "description": "Sites List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sites that matched your query.", - "format": "int32", - "example": 5 - }, - "sites": { - "type": "array", - "description": "List of sites.", - "items": { - "$ref": "#\/components\/schemas\/site" - }, - "example": [] - } - }, - "required": [ - "total", - "sites" - ], - "example": { - "total": 5, - "sites": "" - } - }, - "templateSiteList": { - "description": "Site Templates List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of templates that matched your query.", - "format": "int32", - "example": 5 - }, - "templates": { - "type": "array", - "description": "List of templates.", - "items": { - "$ref": "#\/components\/schemas\/templateSite" - }, - "example": [] - } - }, - "required": [ - "total", - "templates" - ], - "example": { - "total": 5, - "templates": "" - } - }, - "functionList": { - "description": "Functions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of functions that matched your query.", - "format": "int32", - "example": 5 - }, - "functions": { - "type": "array", - "description": "List of functions.", - "items": { - "$ref": "#\/components\/schemas\/function" - }, - "example": [] - } - }, - "required": [ - "total", - "functions" - ], - "example": { - "total": 5, - "functions": "" - } - }, - "templateFunctionList": { - "description": "Function Templates List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of templates that matched your query.", - "format": "int32", - "example": 5 - }, - "templates": { - "type": "array", - "description": "List of templates.", - "items": { - "$ref": "#\/components\/schemas\/templateFunction" - }, - "example": [] - } - }, - "required": [ - "total", - "templates" - ], - "example": { - "total": 5, - "templates": "" - } - }, - "installationList": { - "description": "Installations List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of installations that matched your query.", - "format": "int32", - "example": 5 - }, - "installations": { - "type": "array", - "description": "List of installations.", - "items": { - "$ref": "#\/components\/schemas\/installation" - }, - "example": [] - } - }, - "required": [ - "total", - "installations" - ], - "example": { - "total": 5, - "installations": "" - } - }, - "providerRepositoryFrameworkList": { - "description": "Framework Provider Repositories List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of frameworkProviderRepositories that matched your query.", - "format": "int32", - "example": 5 - }, - "frameworkProviderRepositories": { - "type": "array", - "description": "List of frameworkProviderRepositories.", - "items": { - "$ref": "#\/components\/schemas\/providerRepositoryFramework" - }, - "example": [] - }, - "type": { - "type": "string", - "description": "Provider repository list type.", - "example": "framework" - } - }, - "required": [ - "total", - "frameworkProviderRepositories", - "type" - ], - "example": { - "total": 5, - "frameworkProviderRepositories": "", - "type": "framework" - } - }, - "providerRepositoryRuntimeList": { - "description": "Runtime Provider Repositories List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of runtimeProviderRepositories that matched your query.", - "format": "int32", - "example": 5 - }, - "runtimeProviderRepositories": { - "type": "array", - "description": "List of runtimeProviderRepositories.", - "items": { - "$ref": "#\/components\/schemas\/providerRepositoryRuntime" - }, - "example": [] - }, - "type": { - "type": "string", - "description": "Provider repository list type.", - "example": "runtime" - } - }, - "required": [ - "total", - "runtimeProviderRepositories", - "type" - ], - "example": { - "total": 5, - "runtimeProviderRepositories": "", - "type": "runtime" - } - }, - "vcsNamespace": { - "description": "VcsNamespace", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "VCS (Version Control System) namespace ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "VCS (Version Control System) namespace display name.", - "example": "Appwrite" - }, - "path": { - "type": "string", - "description": "VCS (Version Control System) namespace path, used to filter repositories by namespace.", - "example": "appwrite" - }, - "type": { - "type": "string", - "description": "Namespace type. Either the user's personal namespace or a group\/organization.", - "example": "user" - }, - "avatarUrl": { - "type": "string", - "description": "Namespace avatar URL.", - "example": "https:\/\/example.com\/avatar.png" - } - }, - "required": [ - "$id", - "name", - "path", - "type", - "avatarUrl" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "Appwrite", - "path": "appwrite", - "type": "user", - "avatarUrl": "https:\/\/example.com\/avatar.png" - } - }, - "vcsNamespaceList": { - "description": "VCS Namespaces List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of namespaces that matched your query.", - "format": "int32", - "example": 5 - }, - "namespaces": { - "type": "array", - "description": "List of namespaces.", - "items": { - "$ref": "#\/components\/schemas\/vcsNamespace" - }, - "example": [] - } - }, - "required": [ - "total", - "namespaces" - ], - "example": { - "total": 5, - "namespaces": "" - } - }, - "branchList": { - "description": "Branches List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of branches that matched your query.", - "format": "int32", - "example": 5 - }, - "branches": { - "type": "array", - "description": "List of branches.", - "items": { - "$ref": "#\/components\/schemas\/branch" - }, - "example": [] - } - }, - "required": [ - "total", - "branches" - ], - "example": { - "total": 5, - "branches": "" - } - }, - "frameworkList": { - "description": "Frameworks List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of frameworks that matched your query.", - "format": "int32", - "example": 5 - }, - "frameworks": { - "type": "array", - "description": "List of frameworks.", - "items": { - "$ref": "#\/components\/schemas\/framework" - }, - "example": [] - } - }, - "required": [ - "total", - "frameworks" - ], - "example": { - "total": 5, - "frameworks": "" - } - }, - "runtimeList": { - "description": "Runtimes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of runtimes that matched your query.", - "format": "int32", - "example": 5 - }, - "runtimes": { - "type": "array", - "description": "List of runtimes.", - "items": { - "$ref": "#\/components\/schemas\/runtime" - }, - "example": [] - } - }, - "required": [ - "total", - "runtimes" - ], - "example": { - "total": 5, - "runtimes": "" - } - }, - "deploymentList": { - "description": "Deployments List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of deployments that matched your query.", - "format": "int32", - "example": 5 - }, - "deployments": { - "type": "array", - "description": "List of deployments.", - "items": { - "$ref": "#\/components\/schemas\/deployment" - }, - "example": [] - } - }, - "required": [ - "total", - "deployments" - ], - "example": { - "total": 5, - "deployments": "" - } - }, - "executionList": { - "description": "Executions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of executions that matched your query.", - "format": "int32", - "example": 5 - }, - "executions": { - "type": "array", - "description": "List of executions.", - "items": { - "$ref": "#\/components\/schemas\/execution" - }, - "example": [] - } - }, - "required": [ - "total", - "executions" - ], - "example": { - "total": 5, - "executions": "" - } - }, - "projectList": { - "description": "Projects List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of projects that matched your query.", - "format": "int32", - "example": 5 - }, - "projects": { - "type": "array", - "description": "List of projects.", - "items": { - "$ref": "#\/components\/schemas\/project" - }, - "example": [] - } - }, - "required": [ - "total", - "projects" - ], - "example": { - "total": 5, - "projects": "" - } - }, - "webhookList": { - "description": "Webhooks List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of webhooks that matched your query.", - "format": "int32", - "example": 5 - }, - "webhooks": { - "type": "array", - "description": "List of webhooks.", - "items": { - "$ref": "#\/components\/schemas\/webhook" - }, - "example": [] - } - }, - "required": [ - "total", - "webhooks" - ], - "example": { - "total": 5, - "webhooks": "" - } - }, - "keyList": { - "description": "API Keys List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of keys that matched your query.", - "format": "int32", - "example": 5 - }, - "keys": { - "type": "array", - "description": "List of keys.", - "items": { - "$ref": "#\/components\/schemas\/key" - }, - "example": [] - } - }, - "required": [ - "total", - "keys" - ], - "example": { - "total": 5, - "keys": "" - } - }, - "countryList": { - "description": "Countries List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of countries that matched your query.", - "format": "int32", - "example": 5 - }, - "countries": { - "type": "array", - "description": "List of countries.", - "items": { - "$ref": "#\/components\/schemas\/country" - }, - "example": [] - } - }, - "required": [ - "total", - "countries" - ], - "example": { - "total": 5, - "countries": "" - } - }, - "continentList": { - "description": "Continents List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of continents that matched your query.", - "format": "int32", - "example": 5 - }, - "continents": { - "type": "array", - "description": "List of continents.", - "items": { - "$ref": "#\/components\/schemas\/continent" - }, - "example": [] - } - }, - "required": [ - "total", - "continents" - ], - "example": { - "total": 5, - "continents": "" - } - }, - "languageList": { - "description": "Languages List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of languages that matched your query.", - "format": "int32", - "example": 5 - }, - "languages": { - "type": "array", - "description": "List of languages.", - "items": { - "$ref": "#\/components\/schemas\/language" - }, - "example": [] - } - }, - "required": [ - "total", - "languages" - ], - "example": { - "total": 5, - "languages": "" - } - }, - "currencyList": { - "description": "Currencies List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of currencies that matched your query.", - "format": "int32", - "example": 5 - }, - "currencies": { - "type": "array", - "description": "List of currencies.", - "items": { - "$ref": "#\/components\/schemas\/currency" - }, - "example": [] - } - }, - "required": [ - "total", - "currencies" - ], - "example": { - "total": 5, - "currencies": "" - } - }, - "phoneList": { - "description": "Phones List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of phones that matched your query.", - "format": "int32", - "example": 5 - }, - "phones": { - "type": "array", - "description": "List of phones.", - "items": { - "$ref": "#\/components\/schemas\/phone" - }, - "example": [] - } - }, - "required": [ - "total", - "phones" - ], - "example": { - "total": 5, - "phones": "" - } - }, - "variableList": { - "description": "Variables List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of variables that matched your query.", - "format": "int32", - "example": 5 - }, - "variables": { - "type": "array", - "description": "List of variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - } - }, - "required": [ - "total", - "variables" - ], - "example": { - "total": 5, - "variables": "" - } - }, - "mockNumberList": { - "description": "Mock Numbers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of mockNumbers that matched your query.", - "format": "int32", - "example": 5 - }, - "mockNumbers": { - "type": "array", - "description": "List of mockNumbers.", - "items": { - "$ref": "#\/components\/schemas\/mockNumber" - }, - "example": [] - } - }, - "required": [ - "total", - "mockNumbers" - ], - "example": { - "total": 5, - "mockNumbers": "" - } - }, - "policyList": { - "description": "Policies List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of policies in the given project.", - "format": "int32", - "example": 10 - }, - "policies": { - "type": "array", - "description": "List of policies.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPwned" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$ref": "#\/components\/schemas\/policyMfaFactors" - }, - { - "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyFreeEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", - "password-history": "#\/components\/schemas\/policyPasswordHistory", - "password-strength": "#\/components\/schemas\/policyPasswordStrength", - "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", - "password-pwned": "#\/components\/schemas\/policyPasswordPwned", - "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", - "mfa-factors": "#\/components\/schemas\/policyMfaFactors", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "policies" - ], - "example": { - "total": 10, - "policies": "" - } - }, - "emailTemplateList": { - "description": "Email Templates List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of templates that matched your query.", - "format": "int32", - "example": 5 - }, - "templates": { - "type": "array", - "description": "List of templates.", - "items": { - "$ref": "#\/components\/schemas\/emailTemplate" - }, - "example": [] - } - }, - "required": [ - "total", - "templates" - ], - "example": { - "total": 5, - "templates": "" - } - }, - "proxyRuleList": { - "description": "Rule List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rules that matched your query.", - "format": "int32", - "example": 5 - }, - "rules": { - "type": "array", - "description": "List of rules.", - "items": { - "$ref": "#\/components\/schemas\/proxyRule" - }, - "example": [] - } - }, - "required": [ - "total", - "rules" - ], - "example": { - "total": 5, - "rules": "" - } - }, - "scheduleList": { - "description": "Schedules List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of schedules that matched your query.", - "format": "int32", - "example": 5 - }, - "schedules": { - "type": "array", - "description": "List of schedules.", - "items": { - "$ref": "#\/components\/schemas\/schedule" - }, - "example": [] - } - }, - "required": [ - "total", - "schedules" - ], - "example": { - "total": 5, - "schedules": "" - } - }, - "stageList": { - "description": "Stages List", - "type": "object", - "properties": { - "stages": { - "type": "array", - "description": "List of stages.", - "items": { - "$ref": "#\/components\/schemas\/stage" - }, - "example": [] - } - }, - "required": [ - "stages" - ], - "example": { - "stages": "" - } - }, - "localeCodeList": { - "description": "Locale codes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of localeCodes that matched your query.", - "format": "int32", - "example": 5 - }, - "localeCodes": { - "type": "array", - "description": "List of localeCodes.", - "items": { - "$ref": "#\/components\/schemas\/localeCode" - }, - "example": [] - } - }, - "required": [ - "total", - "localeCodes" - ], - "example": { - "total": 5, - "localeCodes": "" - } - }, - "providerList": { - "description": "Provider list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of providers that matched your query.", - "format": "int32", - "example": 5 - }, - "providers": { - "type": "array", - "description": "List of providers.", - "items": { - "$ref": "#\/components\/schemas\/provider" - }, - "example": [] - } - }, - "required": [ - "total", - "providers" - ], - "example": { - "total": 5, - "providers": "" - } - }, - "messageList": { - "description": "Message list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of messages that matched your query.", - "format": "int32", - "example": 5 - }, - "messages": { - "type": "array", - "description": "List of messages.", - "items": { - "$ref": "#\/components\/schemas\/message" - }, - "example": [] - } - }, - "required": [ - "total", - "messages" - ], - "example": { - "total": 5, - "messages": "" - } - }, - "topicList": { - "description": "Topic list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of topics that matched your query.", - "format": "int32", - "example": 5 - }, - "topics": { - "type": "array", - "description": "List of topics.", - "items": { - "$ref": "#\/components\/schemas\/topic" - }, - "example": [] - } - }, - "required": [ - "total", - "topics" - ], - "example": { - "total": 5, - "topics": "" - } - }, - "subscriberList": { - "description": "Subscriber list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of subscribers that matched your query.", - "format": "int32", - "example": 5 - }, - "subscribers": { - "type": "array", - "description": "List of subscribers.", - "items": { - "$ref": "#\/components\/schemas\/subscriber" - }, - "example": [] - } - }, - "required": [ - "total", - "subscribers" - ], - "example": { - "total": 5, - "subscribers": "" - } - }, - "targetList": { - "description": "Target list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of targets that matched your query.", - "format": "int32", - "example": 5 - }, - "targets": { - "type": "array", - "description": "List of targets.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - } - }, - "required": [ - "total", - "targets" - ], - "example": { - "total": 5, - "targets": "" - } - }, - "transactionList": { - "description": "Transaction List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of transactions that matched your query.", - "format": "int32", - "example": 5 - }, - "transactions": { - "type": "array", - "description": "List of transactions.", - "items": { - "$ref": "#\/components\/schemas\/transaction" - }, - "example": [] - } - }, - "required": [ - "total", - "transactions" - ], - "example": { - "total": 5, - "transactions": "" - } - }, - "migrationList": { - "description": "Migrations List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of migrations that matched your query.", - "format": "int32", - "example": 5 - }, - "migrations": { - "type": "array", - "description": "List of migrations.", - "items": { - "$ref": "#\/components\/schemas\/migration" - }, - "example": [] - } - }, - "required": [ - "total", - "migrations" - ], - "example": { - "total": 5, - "migrations": "" - } - }, - "specificationList": { - "description": "Specifications List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of specifications that matched your query.", - "format": "int32", - "example": 5 - }, - "specifications": { - "type": "array", - "description": "List of specifications.", - "items": { - "$ref": "#\/components\/schemas\/specification" - }, - "example": [] - } - }, - "required": [ - "total", - "specifications" - ], - "example": { - "total": 5, - "specifications": "" - } - }, - "vcsContentList": { - "description": "VCS Content List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of contents that matched your query.", - "format": "int32", - "example": 5 - }, - "contents": { - "type": "array", - "description": "List of contents.", - "items": { - "$ref": "#\/components\/schemas\/vcsContent" - }, - "example": [] - } - }, - "required": [ - "total", - "contents" - ], - "example": { - "total": 5, - "contents": "" - } - }, - "vectorsdbCollectionList": { - "description": "VectorsDB Collections List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of collections that matched your query.", - "format": "int32", - "example": 5 - }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" - }, - "example": [] - } - }, - "required": [ - "total", - "collections" - ], - "example": { - "total": 5, - "collections": "" - } - }, - "embeddingList": { - "description": "Embedding list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of embeddings that matched your query.", - "format": "int32", - "example": 5 - }, - "embeddings": { - "type": "array", - "description": "List of embeddings.", - "items": { - "$ref": "#\/components\/schemas\/embedding" - }, - "example": [] - } - }, - "required": [ - "total", - "embeddings" - ], - "example": { - "total": 5, - "embeddings": "" - } - }, - "insightList": { - "description": "Insights List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of insights that matched your query.", - "format": "int32", - "example": 5 - }, - "insights": { - "type": "array", - "description": "List of insights.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "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.", - "format": "int32", - "example": 5 - }, - "reports": { - "type": "array", - "description": "List of reports.", - "items": { - "$ref": "#\/components\/schemas\/report" - }, - "example": [] - } - }, - "required": [ - "total", - "reports" - ], - "example": { - "total": 5, - "reports": "" - } - }, - "database": { - "description": "Database", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Database name.", - "example": "My Database" - }, - "$createdAt": { - "type": "string", - "description": "Database creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Database update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "enabled": { - "type": "boolean", - "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "type": { - "description": "Database type.", - "example": "legacy", - "title": "DatabaseType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "legacy" - ], - "title": "legacy" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "mysql" - ], - "title": "mysql" - }, - { - "type": "string", - "enum": [ - "postgresql" - ], - "title": "postgresql" - }, - { - "type": "string", - "enum": [ - "mongodb" - ], - "title": "mongodb" - } - ] - }, - "status": { - "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", - "readOnly": true, - "example": "ready", - "title": "DatabaseStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "provisioning" - ], - "title": "provisioning" - }, - { - "type": "string", - "enum": [ - "ready" - ], - "title": "ready" - }, - { - "type": "string", - "enum": [ - "inactive" - ], - "title": "inactive" - }, - { - "type": "string", - "enum": [ - "paused" - ], - "title": "paused" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "deleted" - ], - "title": "deleted" - }, - { - "type": "string", - "enum": [ - "restoring" - ], - "title": "restoring" - }, - { - "type": "string", - "enum": [ - "scaling" - ], - "title": "scaling" - }, - { - "type": "string", - "enum": [ - "upgrading" - ], - "title": "upgrading" - }, - { - "type": "string", - "enum": [ - "migrating" - ], - "title": "migrating" - }, - { - "type": "string", - "enum": [ - "pausing" - ], - "title": "pausing" - }, - { - "type": "string", - "enum": [ - "resuming" - ], - "title": "resuming" - }, - { - "type": "string", - "enum": [ - "failing-over" - ], - "title": "failing-over" - } - ], - "nullable": true - }, - "engine": { - "type": "string", - "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", - "readOnly": true, - "example": "postgresql", - "nullable": true - }, - "specification": { - "type": "string", - "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", - "readOnly": true, - "example": "s-2vcpu-2gb", - "nullable": true - }, - "replicas": { - "type": "integer", - "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", - "format": "int32", - "readOnly": true, - "example": 0, - "nullable": true - }, - "error": { - "type": "string", - "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", - "readOnly": true, - "example": "", - "nullable": true - }, - "containerStatus": { - "type": "string", - "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", - "readOnly": true, - "example": "active", - "nullable": true - }, - "lifecycleState": { - "type": "string", - "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", - "readOnly": true, - "example": "active", - "nullable": true - }, - "policies": { - "type": "array", - "description": "Database backup policies.", - "items": { - "$ref": "#\/components\/schemas\/backupPolicy" - }, - "example": [], - "nullable": true - }, - "archives": { - "type": "array", - "description": "Database backup archives.", - "items": { - "$ref": "#\/components\/schemas\/backupArchive" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "enabled", - "type" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "My Database", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "enabled": false, - "type": "legacy", - "status": "ready", - "engine": "postgresql", - "specification": "s-2vcpu-2gb", - "replicas": 0, - "error": "", - "containerStatus": "active", - "lifecycleState": "active", - "policies": {}, - "archives": {} - } - }, - "embedding": { - "description": "Embedding", - "type": "object", - "properties": { - "model": { - "type": "string", - "description": "Embedding model used to generate embeddings.", - "example": "nomic-embed-text" - }, - "dimension": { - "type": "integer", - "description": "Number of dimensions for each embedding vector.", - "format": "int32", - "example": 768 - }, - "embedding": { - "type": "array", - "description": "Embedding vector values. If an error occurs, this will be an empty array.", - "items": { - "type": "number", - "format": "double" - }, - "example": [ - 0.01, - 0.02, - 0.03 - ] - }, - "error": { - "type": "string", - "description": "Error message if embedding generation fails. Empty string if no error.", - "example": "Error message" - } - }, - "required": [ - "model", - "dimension", - "embedding", - "error" - ], - "example": { - "model": "nomic-embed-text", - "dimension": 768, - "embedding": [ - 0.01, - 0.02, - 0.03 - ], - "error": "Error message" - } - }, - "collection": { - "description": "Collection", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Collection ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Collection name.", - "example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "attributes": { - "type": "array", - "description": "Collection attributes.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Collection indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "format": "int32", - "example": 1500 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Collection", - "enabled": false, - "documentSecurity": true, - "attributes": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500 - } - }, - "attributeList": { - "description": "Attributes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of attributes in the given collection.", - "format": "int32", - "example": 5 - }, - "attributes": { - "type": "array", - "description": "List of attributes.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - } - }, - "required": [ - "total", - "attributes" - ], - "example": { - "total": 5, - "attributes": "" - } - }, - "attributeString": { - "description": "AttributeString", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Attribute size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "attributeInteger": { - "description": "AttributeInteger", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "integer" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "int32", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "integer", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "attributeBigint": { - "description": "AttributeBigInt", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "bigint" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "int64", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "bigint", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "attributeFloat": { - "description": "AttributeFloat", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "percentageCompleted" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "double" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "format": "double", - "example": 1.5, - "nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "format": "double", - "example": 10.5, - "nullable": true - }, - "default": { - "type": "number", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "double", - "example": 2.5, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "percentageCompleted", - "type": "double", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1.5, - "max": 10.5, - "default": 2.5 - } - }, - "attributeBoolean": { - "description": "AttributeBoolean", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "isEnabled" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "boolean" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "isEnabled", - "type": "boolean", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": false - } - }, - "attributeEmail": { - "description": "AttributeEmail", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "userEmail" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "email" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default@example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "userEmail", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "email", - "default": "default@example.com" - } - }, - "attributeEnum": { - "description": "AttributeEnum", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "status" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "elements": { - "type": "array", - "description": "Array of elements in enumerated type.", - "items": { - "type": "string" - }, - "example": [ - "element" - ] - }, - "format": { - "type": "string", - "description": "String format.", - "example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "element", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "elements", - "format" - ], - "example": { - "key": "status", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "elements": "element", - "format": "enum", - "default": "element" - } - }, - "attributeIp": { - "description": "AttributeIP", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "ipAddress" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "ip" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "192.0.2.0", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "ipAddress", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "ip", - "default": "192.0.2.0" - } - }, - "attributeUrl": { - "description": "AttributeURL", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "githubUrl" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "url" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "http:\/\/example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "githubUrl", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "url", - "default": "http:\/\/example.com" - } - }, - "attributeDatetime": { - "description": "AttributeDatetime", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "birthDay" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "datetime" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "example": "datetime" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Only null is optional", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "birthDay", - "type": "datetime", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "default": "2020-10-15T06:38:00.000+00:00" - } - }, - "attributeRelationship": { - "description": "AttributeRelationship", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "relatedCollection": { - "type": "string", - "description": "The ID of the related collection.", - "example": "collection" - }, - "relationType": { - "type": "string", - "description": "The type of the relationship.", - "example": "oneToOne|oneToMany|manyToOne|manyToMany" - }, - "twoWay": { - "type": "boolean", - "description": "Is the relationship two-way?", - "example": false - }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "example": "string" - }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "example": "restrict|cascade|setNull" - }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "example": "parent|child" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "relatedCollection", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "relatedCollection": "collection", - "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", - "twoWay": false, - "twoWayKey": "string", - "onDelete": "restrict|cascade|setNull", - "side": "parent|child" - } - }, - "attributePoint": { - "description": "AttributePoint", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - 0, - 0 - ] - } - }, - "attributeLine": { - "description": "AttributeLine", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] - } - }, - "attributePolygon": { - "description": "AttributePolygon", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] - } - }, - "attributeVarchar": { - "description": "AttributeVarchar", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Attribute size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "attributeText": { - "description": "AttributeText", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "attributeMediumtext": { - "description": "AttributeMediumtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "attributeLongtext": { - "description": "AttributeLongtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "vectorsdbCollection": { - "description": "VectorsDB Collection", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Collection ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Collection name.", - "example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "attributes": { - "type": "array", - "description": "Collection attributes.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/attributeObject" - }, - { - "$ref": "#\/components\/schemas\/attributeVector" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "object": "#\/components\/schemas\/attributeObject", - "vector": "#\/components\/schemas\/attributeVector" - } - } - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Collection indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "format": "int32", - "example": 1500 - }, - "dimension": { - "type": "integer", - "description": "Embedding dimension.", - "format": "int32", - "example": 1536 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed", - "dimension" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Collection", - "enabled": false, - "documentSecurity": true, - "attributes": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500, - "dimension": 1536 - } - }, - "attributeObject": { - "description": "AttributeObject", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "attributeVector": { - "description": "AttributeVector", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Vector dimensions.", - "format": "int32", - "example": 1536 - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 1536 - } - }, - "table": { - "description": "Table", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Table ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Table creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Table update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Table name.", - "example": "My Table" - }, - "enabled": { - "type": "boolean", - "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "rowSecurity": { - "type": "boolean", - "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "columns": { - "type": "array", - "description": "Table columns.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Table indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum row size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used row size in bytes based on defined columns.", - "format": "int32", - "example": 1500 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "rowSecurity", - "columns", - "indexes", - "bytesMax", - "bytesUsed" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Table", - "enabled": false, - "rowSecurity": true, - "columns": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500 - } - }, - "columnList": { - "description": "Columns List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of columns in the given table.", - "format": "int32", - "example": 5 - }, - "columns": { - "type": "array", - "description": "List of columns.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - } - }, - "required": [ - "total", - "columns" - ], - "example": { - "total": 5, - "columns": "" - } - }, - "columnString": { - "description": "ColumnString", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Column size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "columnInteger": { - "description": "ColumnInteger", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "integer" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "int32", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "integer", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "columnBigint": { - "description": "ColumnBigInt", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "bigint" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "int64", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "bigint", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "columnFloat": { - "description": "ColumnFloat", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "percentageCompleted" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "double" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "format": "double", - "example": 1.5, - "nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "format": "double", - "example": 10.5, - "nullable": true - }, - "default": { - "type": "number", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "double", - "example": 2.5, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "percentageCompleted", - "type": "double", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1.5, - "max": 10.5, - "default": 2.5 - } - }, - "columnBoolean": { - "description": "ColumnBoolean", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "isEnabled" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "boolean" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "isEnabled", - "type": "boolean", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": false - } - }, - "columnEmail": { - "description": "ColumnEmail", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "userEmail" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "email" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default@example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "userEmail", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "email", - "default": "default@example.com" - } - }, - "columnEnum": { - "description": "ColumnEnum", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "status" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "elements": { - "type": "array", - "description": "Array of elements in enumerated type.", - "items": { - "type": "string" - }, - "example": [ - "element" - ] - }, - "format": { - "type": "string", - "description": "String format.", - "example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "element", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "elements", - "format" - ], - "example": { - "key": "status", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "elements": "element", - "format": "enum", - "default": "element" - } - }, - "columnIp": { - "description": "ColumnIP", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "ipAddress" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "ip" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "192.0.2.0", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "ipAddress", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "ip", - "default": "192.0.2.0" - } - }, - "columnUrl": { - "description": "ColumnURL", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "githubUrl" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "url" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "https:\/\/example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "githubUrl", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "url", - "default": "https:\/\/example.com" - } - }, - "columnDatetime": { - "description": "ColumnDatetime", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "birthDay" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "datetime" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "example": "datetime" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Only null is optional", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "birthDay", - "type": "datetime", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "default": "2020-10-15T06:38:00.000+00:00" - } - }, - "columnRelationship": { - "description": "ColumnRelationship", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "relatedTable": { - "type": "string", - "description": "The ID of the related table.", - "example": "table" - }, - "relationType": { - "type": "string", - "description": "The type of the relationship.", - "example": "oneToOne|oneToMany|manyToOne|manyToMany" - }, - "twoWay": { - "type": "boolean", - "description": "Is the relationship two-way?", - "example": false - }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "example": "string" - }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "example": "restrict|cascade|setNull" - }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "example": "parent|child" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "relatedTable", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "relatedTable": "table", - "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", - "twoWay": false, - "twoWayKey": "string", - "onDelete": "restrict|cascade|setNull", - "side": "parent|child" - } - }, - "columnPoint": { - "description": "ColumnPoint", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - 0, - 0 - ] - } - }, - "columnLine": { - "description": "ColumnLine", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] - } - }, - "columnPolygon": { - "description": "ColumnPolygon", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] - } - }, - "columnVarchar": { - "description": "ColumnVarchar", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Column size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "columnText": { - "description": "ColumnText", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "columnMediumtext": { - "description": "ColumnMediumtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "columnLongtext": { - "description": "ColumnLongtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "index": { - "description": "Index", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Index ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Index creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Index update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Index key.", - "example": "index1" - }, - "type": { - "type": "string", - "description": "Index type.", - "example": "primary" - }, - "status": { - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", - "example": "string" - }, - "attributes": { - "type": "array", - "description": "Index attributes.", - "items": { - "type": "string" - }, - "example": [] - }, - "lengths": { - "type": "array", - "description": "Index attributes length.", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [] - }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "type", - "status", - "error", - "attributes", - "lengths" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "index1", - "type": "primary", - "status": "available", - "error": "string", - "attributes": [], - "lengths": [], - "orders": [] - } - }, - "columnIndex": { - "description": "Index", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Index ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Index creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Index update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Index Key.", - "example": "index1" - }, - "type": { - "type": "string", - "description": "Index type.", - "example": "primary" - }, - "status": { - "type": "string", - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", - "example": "string" - }, - "columns": { - "type": "array", - "description": "Index columns.", - "items": { - "type": "string" - }, - "example": [] - }, - "lengths": { - "type": "array", - "description": "Index columns length.", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [] - }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "type", - "status", - "error", - "columns", - "lengths" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "index1", - "type": "primary", - "status": "available", - "error": "string", - "columns": [], - "lengths": [], - "orders": [] - } - }, - "row": { - "description": "Row", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Row ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Row sequence ID.", - "readOnly": true, - "example": "1" - }, - "$tableId": { - "type": "string", - "description": "Table ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Row creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Row update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$tableId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$tableId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ] - } - }, - "document": { - "description": "Document", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Document ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Document sequence ID.", - "readOnly": true, - "example": "1" - }, - "$collectionId": { - "type": "string", - "description": "Collection ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Document creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Document update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$collectionId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$collectionId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "username": "john.doe", - "email": "john.doe@example.com", - "fullName": "John Doe", - "age": 30, - "isAdmin": false - } - }, - "presence": { - "description": "Presence", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Presence ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Presence creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Presence update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "674af8f3e12a5f9ac0be" - }, - "status": { - "type": "string", - "description": "Presence status.", - "example": "online", - "nullable": true - }, - "source": { - "type": "string", - "description": "Presence source.", - "example": "HTTP" - }, - "expiresAt": { - "type": "string", - "description": "Presence expiry date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "metadata": { - "type": "object", - "additionalProperties": true, - "description": "Presence metadata.", - "example": { - "key": "value" - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "userId", - "source" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "userId": "674af8f3e12a5f9ac0be", - "status": "online", - "source": "HTTP", - "expiresAt": "2020-10-15T06:38:00.000+00:00", - "metadata": { - "key": "value" - } - } - }, - "user": { - "description": "User", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "password": { - "type": "string", - "description": "Hashed user password.", - "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "nullable": true - }, - "hash": { - "type": "string", - "description": "Password hashing algorithm.", - "example": "argon2", - "nullable": true - }, - "hashOptions": { - "type": "object", - "description": "Password hashing algorithm configuration.", - "example": {}, - "allOf": [ - { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/algoArgon2" - }, - { - "$ref": "#\/components\/schemas\/algoScrypt" - }, - { - "$ref": "#\/components\/schemas\/algoScryptModified" - }, - { - "$ref": "#\/components\/schemas\/algoBcrypt" - }, - { - "$ref": "#\/components\/schemas\/algoPhpass" - }, - { - "$ref": "#\/components\/schemas\/algoSha" - }, - { - "$ref": "#\/components\/schemas\/algoMd5" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "argon2": "#\/components\/schemas\/algoArgon2", - "scrypt": "#\/components\/schemas\/algoScrypt", - "scryptMod": "#\/components\/schemas\/algoScryptModified", - "bcrypt": "#\/components\/schemas\/algoBcrypt", - "phpass": "#\/components\/schemas\/algoPhpass", - "sha": "#\/components\/schemas\/algoSha", - "md5": "#\/components\/schemas\/algoMd5" - } - } - } - ], - "nullable": true - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "hash": "argon2", - "hashOptions": {}, - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "algoMd5": { - "description": "AlgoMD5", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "md5" - } - }, - "required": [ - "type" - ], - "example": { - "type": "md5" - } - }, - "algoSha": { - "description": "AlgoSHA", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "sha" - } - }, - "required": [ - "type" - ], - "example": { - "type": "sha" - } - }, - "algoPhpass": { - "description": "AlgoPHPass", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "phpass" - } - }, - "required": [ - "type" - ], - "example": { - "type": "phpass" - } - }, - "algoBcrypt": { - "description": "AlgoBcrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "bcrypt" - } - }, - "required": [ - "type" - ], - "example": { - "type": "bcrypt" - } - }, - "algoScrypt": { - "description": "AlgoScrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scrypt" - }, - "costCpu": { - "type": "integer", - "description": "CPU complexity of computed hash.", - "format": "int32", - "example": 8 - }, - "costMemory": { - "type": "integer", - "description": "Memory complexity of computed hash.", - "format": "int32", - "example": 14 - }, - "costParallel": { - "type": "integer", - "description": "Parallelization of computed hash.", - "format": "int32", - "example": 1 - }, - "length": { - "type": "integer", - "description": "Length used to compute hash.", - "format": "int32", - "example": 64 - } - }, - "required": [ - "type", - "costCpu", - "costMemory", - "costParallel", - "length" - ], - "example": { - "type": "scrypt", - "costCpu": 8, - "costMemory": 14, - "costParallel": 1, - "length": 64 - } - }, - "algoScryptModified": { - "description": "AlgoScryptModified", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scryptMod" - }, - "salt": { - "type": "string", - "description": "Salt used to compute hash.", - "example": "UxLMreBr6tYyjQ==" - }, - "saltSeparator": { - "type": "string", - "description": "Separator used to compute hash.", - "example": "Bw==" - }, - "signerKey": { - "type": "string", - "description": "Key used to compute hash.", - "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "required": [ - "type", - "salt", - "saltSeparator", - "signerKey" - ], - "example": { - "type": "scryptMod", - "salt": "UxLMreBr6tYyjQ==", - "saltSeparator": "Bw==", - "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "algoArgon2": { - "description": "AlgoArgon2", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "argon2" - }, - "memoryCost": { - "type": "integer", - "description": "Memory used to compute hash.", - "format": "int32", - "example": 65536 - }, - "timeCost": { - "type": "integer", - "description": "Amount of time consumed to compute hash", - "format": "int32", - "example": 4 - }, - "threads": { - "type": "integer", - "description": "Number of threads used to compute hash.", - "format": "int32", - "example": 3 - } - }, - "required": [ - "type", - "memoryCost", - "timeCost", - "threads" - ], - "example": { - "type": "argon2", - "memoryCost": 65536, - "timeCost": 4, - "threads": 3 - } - }, - "account": { - "description": "Account", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "preferences": { - "description": "Preferences", - "type": "object", - "additionalProperties": true, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - }, - "session": { - "description": "Session", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Session ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Session creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Session update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "expire": { - "type": "string", - "description": "Session expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "provider": { - "type": "string", - "description": "Session Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "Session Provider User ID.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Session Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Session Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "ip": { - "type": "string", - "description": "IP in use when the session was created.", - "example": "127.0.0.1" - }, - "osCode": { - "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "example": "Mac" - }, - "osName": { - "type": "string", - "description": "Operating system name.", - "example": "Mac" - }, - "osVersion": { - "type": "string", - "description": "Operating system version.", - "example": "Mac" - }, - "clientType": { - "type": "string", - "description": "Client type.", - "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).", - "example": "CM" - }, - "clientName": { - "type": "string", - "description": "Client name.", - "example": "Chrome Mobile iOS" - }, - "clientVersion": { - "type": "string", - "description": "Client version.", - "example": "84.0" - }, - "clientEngine": { - "type": "string", - "description": "Client engine name.", - "example": "WebKit" - }, - "clientEngineVersion": { - "type": "string", - "description": "Client engine name.", - "example": "605.1.15" - }, - "deviceName": { - "type": "string", - "description": "Device name.", - "example": "smartphone" - }, - "deviceBrand": { - "type": "string", - "description": "Device brand name.", - "example": "Google" - }, - "deviceModel": { - "type": "string", - "description": "Device model name.", - "example": "Nexus 5" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "current": { - "type": "boolean", - "description": "Returns true if this the current user session.", - "example": true - }, - "factors": { - "type": "array", - "description": "Returns a list of active session factors.", - "items": { - "type": "string" - }, - "example": [ - "email" - ] - }, - "secret": { - "type": "string", - "description": "Secret used to authenticate the user. Only included if the request was made with an API key", - "example": "5e5bb8c16897e" - }, - "mfaUpdatedAt": { - "type": "string", - "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "expire", - "provider", - "providerUid", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "ip", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName", - "current", - "factors", - "secret", - "mfaUpdatedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "expire": "2020-10-15T06:38:00.000+00:00", - "provider": "email", - "providerUid": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "ip": "127.0.0.1", - "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", - "current": true, - "factors": [ - "email" - ], - "secret": "5e5bb8c16897e", - "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "identity": { - "description": "Identity", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Identity ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Identity creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Identity update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "provider": { - "type": "string", - "description": "Identity Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "ID of the User in the Identity Provider.", - "example": "5e5bb8c16897e" - }, - "providerEmail": { - "type": "string", - "description": "Email of the User in the Identity Provider.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Identity Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Identity Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerIdToken": { - "type": "string", - "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", - "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "provider", - "providerUid", - "providerEmail", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "providerIdToken" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "provider": "email", - "providerUid": "5e5bb8c16897e", - "providerEmail": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "notification": { - "description": "Notification", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Notification ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Notification creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Notification update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "messageId": { - "type": "string", - "description": "Stable message ID used for dedup.", - "example": "session.create", - "nullable": true - }, - "type": { - "type": "string", - "description": "Notification type: info, warning, error.", - "example": "info" - }, - "channel": { - "type": "string", - "description": "Channel: email, sms, push, console, webhook.", - "example": "email" - }, - "resourceType": { - "type": "string", - "description": "Resource type this notification is addressed to.", - "example": "users" - }, - "resourceId": { - "type": "string", - "description": "Resource ID this notification is addressed to.", - "example": "5e5bb8c16897e" - }, - "parentResourceType": { - "type": "string", - "description": "Parent resource type for the notification.", - "example": "projects" - }, - "parentResourceId": { - "type": "string", - "description": "Parent resource ID for the notification.", - "example": "5e5bb8c16897e" - }, - "projectId": { - "type": "string", - "description": "Project the notification pertains to.", - "example": "5e5bb8c16897e", - "nullable": true - }, - "title": { - "type": "string", - "description": "Notification title.", - "example": "New sign-in detected" - }, - "body": { - "type": "string", - "description": "Notification body.", - "example": "A new device signed in to your account." - }, - "read": { - "type": "boolean", - "description": "Whether the notification has been read.", - "example": false, - "nullable": true - }, - "firstSeen": { - "type": "string", - "description": "First time the notification was viewed from a notification logo.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "lastSeen": { - "type": "string", - "description": "Most recent time the notification was viewed from a notification logo.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "channel", - "resourceType", - "resourceId", - "parentResourceType", - "parentResourceId", - "title", - "body" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "messageId": "session.create", - "type": "info", - "channel": "email", - "resourceType": "users", - "resourceId": "5e5bb8c16897e", - "parentResourceType": "projects", - "parentResourceId": "5e5bb8c16897e", - "projectId": "5e5bb8c16897e", - "title": "New sign-in detected", - "body": "A new device signed in to your account.", - "read": false, - "firstSeen": "2020-10-15T06:38:00.000+00:00", - "lastSeen": "2020-10-15T06:38:00.000+00:00" - } - }, - "token": { - "description": "Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "secret": { - "type": "string", - "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "phrase": { - "type": "string", - "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", - "example": "Golden Fox" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "secret", - "expire", - "phrase" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "secret": "", - "expire": "2020-10-15T06:38:00.000+00:00", - "phrase": "Golden Fox" - } - }, - "jwt": { - "description": "JWT", - "type": "object", - "properties": { - "jwt": { - "type": "string", - "description": "JWT encoded string.", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "jwt" - ], - "example": { - "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "locale": { - "description": "Locale", - "type": "object", - "properties": { - "ip": { - "type": "string", - "description": "User IP address.", - "example": "127.0.0.1" - }, - "countryCode": { - "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", - "example": "US" - }, - "country": { - "type": "string", - "description": "Country name. This field support localization.", - "example": "United States" - }, - "continentCode": { - "type": "string", - "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", - "example": "NA" - }, - "continent": { - "type": "string", - "description": "Continent name. This field support localization.", - "example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "example": false - }, - "currency": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "example": "USD" - }, - "city": { - "type": "string", - "description": "City", - "example": "Kathmandu", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Name of timezone", - "example": "Asia\/Kathmandu", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Postal code", - "example": "44600", - "nullable": true - }, - "latitude": { - "type": "number", - "description": "Latitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "longitude": { - "type": "number", - "description": "Longitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) of the IP", - "example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN", - "example": "GOOGLE", - "nullable": true - }, - "isp": { - "type": "string", - "description": "Internet service provider of the IP", - "example": "Google", - "nullable": true - }, - "connectionType": { - "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "example": "cable", - "nullable": true - }, - "connectionUsageType": { - "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "example": "residential", - "nullable": true - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP", - "example": "Google LLC", - "nullable": true - } - }, - "required": [ - "ip", - "countryCode", - "country", - "continentCode", - "continent", - "eu", - "currency" - ], - "example": { - "ip": "127.0.0.1", - "countryCode": "US", - "country": "United States", - "continentCode": "NA", - "continent": "North America", - "eu": false, - "currency": "USD", - "city": "Kathmandu", - "timeZone": "Asia\/Kathmandu", - "postalCode": "44600", - "latitude": "82.345", - "longitude": "82.345", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "isp": "Google", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC" - } - }, - "localeCode": { - "description": "LocaleCode", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", - "example": "en-us" - }, - "name": { - "type": "string", - "description": "Locale name", - "example": "US" - } - }, - "required": [ - "code", - "name" - ], - "example": { - "code": "en-us", - "name": "US" - } - }, - "file": { - "description": "File", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "File ID.", - "example": "5e5ea5c16897e" - }, - "bucketId": { - "type": "string", - "description": "Bucket ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "File creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "File update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "name": { - "type": "string", - "description": "File name.", - "example": "Pink.png" - }, - "folder": { - "type": "string", - "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", - "example": "photos\/2026\/" - }, - "key": { - "type": "string", - "description": "Full virtual path of the file: the folder followed by the file name.", - "example": "photos\/2026\/Pink.png" - }, - "signature": { - "type": "string", - "description": "File MD5 signature.", - "example": "5d529fd02b544198ae075bd57c1762bb" - }, - "mimeType": { - "type": "string", - "description": "File mime type.", - "example": "image\/png" - }, - "sizeOriginal": { - "type": "integer", - "description": "File original size in bytes.", - "format": "int32", - "example": 17890 - }, - "sizeActual": { - "type": "integer", - "description": "File actual stored size in bytes after compression and\/or encryption.", - "format": "int32", - "example": 12345 - }, - "chunksTotal": { - "type": "integer", - "description": "Total number of chunks available", - "format": "int32", - "example": 17890 - }, - "chunksUploaded": { - "type": "integer", - "description": "Total number of chunks uploaded", - "format": "int32", - "example": 17890 - }, - "encryption": { - "type": "boolean", - "description": "Whether file contents are encrypted at rest.", - "example": true - }, - "compression": { - "type": "string", - "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", - "example": "gzip" - } - }, - "required": [ - "$id", - "bucketId", - "$createdAt", - "$updatedAt", - "$permissions", - "name", - "folder", - "key", - "signature", - "mimeType", - "sizeOriginal", - "sizeActual", - "chunksTotal", - "chunksUploaded", - "encryption", - "compression" - ], - "example": { - "$id": "5e5ea5c16897e", - "bucketId": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "name": "Pink.png", - "folder": "photos\/2026\/", - "key": "photos\/2026\/Pink.png", - "signature": "5d529fd02b544198ae075bd57c1762bb", - "mimeType": "image\/png", - "sizeOriginal": 17890, - "sizeActual": 12345, - "chunksTotal": 17890, - "chunksUploaded": 17890, - "encryption": true, - "compression": "gzip" - } - }, - "bucket": { - "description": "Bucket", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Bucket ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Bucket creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Bucket update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "fileSecurity": { - "type": "boolean", - "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "name": { - "type": "string", - "description": "Bucket name.", - "example": "Documents" - }, - "enabled": { - "type": "boolean", - "description": "Bucket enabled.", - "example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size supported.", - "format": "int32", - "example": 100 - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions.", - "items": { - "type": "string" - }, - "example": [ - "jpg", - "png" - ] - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", - "example": "gzip" - }, - "encryption": { - "type": "boolean", - "description": "Bucket is encrypted.", - "example": false - }, - "antivirus": { - "type": "boolean", - "description": "Virus scanning is enabled.", - "example": false - }, - "transformations": { - "type": "boolean", - "description": "Image transformations are enabled.", - "example": false - }, - "totalSize": { - "type": "integer", - "description": "Total size of this bucket in bytes.", - "format": "int32", - "example": 128 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "fileSecurity", - "name", - "enabled", - "maximumFileSize", - "allowedFileExtensions", - "compression", - "encryption", - "antivirus", - "transformations", - "totalSize" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "fileSecurity": true, - "name": "Documents", - "enabled": false, - "maximumFileSize": 100, - "allowedFileExtensions": [ - "jpg", - "png" - ], - "compression": "gzip", - "encryption": false, - "antivirus": false, - "transformations": false, - "totalSize": 128 - } - }, - "resourceToken": { - "description": "ResourceToken", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "5e5ea5c168bb8:5e5ea5c168bb8" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "files" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "secret": { - "type": "string", - "description": "JWT encoded string.", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "resourceId", - "resourceType", - "expire", - "secret", - "accessedAt" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", - "resourceType": "files", - "expire": "2020-10-15T06:38:00.000+00:00", - "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", - "accessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "team": { - "description": "Team", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Team creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "total": { - "type": "integer", - "description": "Total number of team members.", - "format": "int32", - "example": 7 - }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "total", - "prefs" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "VIP", - "total": 7, - "prefs": { - "theme": "pink", - "timezone": "UTC" - } - } - }, - "membership": { - "description": "Membership", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Membership ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Membership creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Membership update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User name. Hide this attribute by toggling membership privacy in the Console.", - "example": "John Doe" - }, - "userEmail": { - "type": "string", - "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", - "example": "john@appwrite.io" - }, - "userPhone": { - "type": "string", - "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", - "example": "+1 555 555 5555" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "teamName": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "invited": { - "type": "string", - "description": "Date, the user has been invited to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "joined": { - "type": "string", - "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "confirm": { - "type": "boolean", - "description": "User confirmation status, true if the user has joined the team or false otherwise.", - "example": false - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", - "example": false - }, - "userAccessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "roles": { - "type": "array", - "description": "User list of roles", - "items": { - "type": "string" - }, - "example": [ - "owner" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "userName", - "userEmail", - "userPhone", - "teamId", - "teamName", - "invited", - "joined", - "confirm", - "mfa", - "userAccessedAt", - "roles" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "userName": "John Doe", - "userEmail": "john@appwrite.io", - "userPhone": "+1 555 555 5555", - "teamId": "5e5ea5c16897e", - "teamName": "VIP", - "invited": "2020-10-15T06:38:00.000+00:00", - "joined": "2020-10-15T06:38:00.000+00:00", - "confirm": false, - "mfa": false, - "userAccessedAt": "2020-10-15T06:38:00.000+00:00", - "roles": [ - "owner" - ] - } - }, - "site": { - "description": "Site", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Site ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Site creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Site update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Site name.", - "example": "My Site" - }, - "enabled": { - "type": "boolean", - "description": "Site enabled.", - "example": false - }, - "live": { - "type": "boolean", - "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", - "example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "example": false - }, - "framework": { - "type": "string", - "description": "Site framework.", - "example": "react" - }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "deploymentId": { - "type": "string", - "description": "Site's active deployment ID.", - "example": "5e5ea5c16897e" - }, - "deploymentCreatedAt": { - "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "deploymentScreenshotLight": { - "type": "string", - "description": "Screenshot of active deployment with light theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "deploymentScreenshotDark": { - "type": "string", - "description": "Screenshot of active deployment with dark theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentId": { - "type": "string", - "description": "Site's latest deployment ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentCreatedAt": { - "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentStatus": { - "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "example": "ready" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "vars": { - "type": "array", - "description": "Site variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - }, - "timeout": { - "type": "integer", - "description": "Site request timeout in seconds.", - "format": "int32", - "example": 300 - }, - "installCommand": { - "type": "string", - "description": "The install command used to install the site dependencies.", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "The build command used to build the site.", - "example": "npm run build" - }, - "startCommand": { - "type": "string", - "description": "Custom command to use when starting site runtime.", - "example": "node custom-server.mjs" - }, - "outputDirectory": { - "type": "string", - "description": "The directory where the site build output is located.", - "example": "build" - }, - "installationId": { - "type": "string", - "description": "Site VCS (Version Control System) installation id.", - "example": "6m40at4ejk5h2u9s1hboo" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "appwrite" - }, - "providerBranch": { - "type": "string", - "description": "VCS (Version Control System) branch name", - "example": "main" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site in VCS (Version Control System) repository", - "example": "sites\/helloWorld" - }, - "providerSilentMode": { - "type": "boolean", - "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", - "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" - }, - "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" - }, - "example": [ - "src\/**", - "!docs\/**" - ] - }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "type": "string", - "description": "Machine specification for SSR executions.", - "example": "s-1vcpu-512mb" - }, - "buildRuntime": { - "type": "string", - "description": "Site build runtime.", - "example": "node-22" - }, - "adapter": { - "type": "string", - "description": "Site framework adapter.", - "example": "static" - }, - "fallbackFile": { - "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", - "example": "index.html" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "enabled", - "live", - "logging", - "framework", - "deploymentRetention", - "deploymentId", - "deploymentCreatedAt", - "deploymentScreenshotLight", - "deploymentScreenshotDark", - "latestDeploymentId", - "latestDeploymentCreatedAt", - "latestDeploymentStatus", - "scopes", - "vars", - "timeout", - "installCommand", - "buildCommand", - "startCommand", - "outputDirectory", - "installationId", - "providerRepositoryId", - "providerBranch", - "providerRootDirectory", - "providerSilentMode", - "providerBranches", - "providerPaths", - "buildSpecification", - "runtimeSpecification", - "buildRuntime", - "adapter", - "fallbackFile" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Site", - "enabled": false, - "live": false, - "logging": false, - "framework": "react", - "deploymentRetention": 7, - "deploymentId": "5e5ea5c16897e", - "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "deploymentScreenshotLight": "5e5ea5c16897e", - "deploymentScreenshotDark": "5e5ea5c16897e", - "latestDeploymentId": "5e5ea5c16897e", - "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentStatus": "ready", - "scopes": "users.read", - "vars": [], - "timeout": 300, - "installCommand": "npm install", - "buildCommand": "npm run build", - "startCommand": "node custom-server.mjs", - "outputDirectory": "build", - "installationId": "6m40at4ejk5h2u9s1hboo", - "providerRepositoryId": "appwrite", - "providerBranch": "main", - "providerRootDirectory": "sites\/helloWorld", - "providerSilentMode": false, - "providerBranches": [ - "main", - "feat\/*" - ], - "providerPaths": [ - "src\/**", - "!docs\/**" - ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb", - "buildRuntime": "node-22", - "adapter": "static", - "fallbackFile": "index.html" - } - }, - "templateSite": { - "description": "Template Site", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Site Template ID.", - "example": "starter" - }, - "name": { - "type": "string", - "description": "Site Template Name.", - "example": "Starter site" - }, - "tagline": { - "type": "string", - "description": "Short description of template", - "example": "Minimal web app integrating with Appwrite." - }, - "demoUrl": { - "type": "string", - "description": "URL hosting a template demo.", - "example": "https:\/\/nextjs-starter.appwrite.network\/", - "nullable": true - }, - "screenshotDark": { - "type": "string", - "description": "File URL with preview screenshot in dark theme preference.", - "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png" - }, - "screenshotLight": { - "type": "string", - "description": "File URL with preview screenshot in light theme preference.", - "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png" - }, - "useCases": { - "type": "array", - "description": "Site use cases.", - "items": { - "type": "string" - }, - "example": [ - "Starter" - ] - }, - "frameworks": { - "type": "array", - "description": "List of frameworks that can be used with this template.", - "items": { - "$ref": "#\/components\/schemas\/templateFramework" - }, - "example": [] - }, - "vcsProvider": { - "type": "string", - "description": "VCS (Version Control System) Provider.", - "example": "github" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "templates" - }, - "providerOwner": { - "type": "string", - "description": "VCS (Version Control System) Owner.", - "example": "appwrite" - }, - "providerVersion": { - "type": "string", - "description": "VCS (Version Control System) branch version (tag).", - "example": "main" - }, - "variables": { - "type": "array", - "description": "Site variables.", - "items": { - "$ref": "#\/components\/schemas\/templateVariable" - }, - "example": [] - } - }, - "required": [ - "key", - "name", - "tagline", - "screenshotDark", - "screenshotLight", - "useCases", - "frameworks", - "vcsProvider", - "providerRepositoryId", - "providerOwner", - "providerVersion", - "variables" - ], - "example": { - "key": "starter", - "name": "Starter site", - "tagline": "Minimal web app integrating with Appwrite.", - "demoUrl": "https:\/\/nextjs-starter.appwrite.network\/", - "screenshotDark": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png", - "screenshotLight": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png", - "useCases": "Starter", - "frameworks": [], - "vcsProvider": "github", - "providerRepositoryId": "templates", - "providerOwner": "appwrite", - "providerVersion": "main", - "variables": [] - } - }, - "templateFramework": { - "description": "Template Framework", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Parent framework key.", - "example": "sveltekit" - }, - "name": { - "type": "string", - "description": "Framework Name.", - "example": "SvelteKit" - }, - "installCommand": { - "type": "string", - "description": "The install command used to install the dependencies.", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "The build command used to build the deployment.", - "example": "npm run build" - }, - "outputDirectory": { - "type": "string", - "description": "The output directory to store the build output.", - "example": ".\/build" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site in VCS (Version Control System) repository", - "example": ".\/svelte-kit\/starter" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime used during build step of template.", - "example": "node-22" - }, - "adapter": { - "type": "string", - "description": "Site framework runtime", - "example": "ssr" - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for SPA. Only relevant for static serve runtime.", - "example": "index.html", - "nullable": true - } - }, - "required": [ - "key", - "name", - "installCommand", - "buildCommand", - "outputDirectory", - "providerRootDirectory", - "buildRuntime", - "adapter" - ], - "example": { - "key": "sveltekit", - "name": "SvelteKit", - "installCommand": "npm install", - "buildCommand": "npm run build", - "outputDirectory": ".\/build", - "providerRootDirectory": ".\/svelte-kit\/starter", - "buildRuntime": "node-22", - "adapter": "ssr", - "fallbackFile": "index.html" - } - }, - "function": { - "description": "Function", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Function ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Function creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Function update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "execute": { - "type": "array", - "description": "Execution permissions.", - "items": { - "type": "string" - }, - "example": [ - "users" - ] - }, - "name": { - "type": "string", - "description": "Function name.", - "example": "My Function" - }, - "enabled": { - "type": "boolean", - "description": "Function enabled.", - "example": false - }, - "live": { - "type": "boolean", - "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", - "example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "example": false - }, - "runtime": { - "type": "string", - "description": "Function execution and build runtime.", - "example": "python-3.8" - }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "deploymentId": { - "type": "string", - "description": "Function's active deployment ID.", - "example": "5e5ea5c16897e" - }, - "deploymentCreatedAt": { - "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentId": { - "type": "string", - "description": "Function's latest deployment ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentCreatedAt": { - "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentStatus": { - "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "example": "ready" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "vars": { - "type": "array", - "description": "Function variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - }, - "events": { - "type": "array", - "description": "Function trigger events.", - "items": { - "type": "string" - }, - "example": [ - "account.create" - ] - }, - "schedule": { - "type": "string", - "description": "Function execution schedule in CRON format.", - "example": "5 4 * * *" - }, - "timeout": { - "type": "integer", - "description": "Function execution timeout in seconds.", - "format": "int32", - "example": 300 - }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file used to execute the deployment.", - "example": "index.js" - }, - "commands": { - "type": "string", - "description": "The build command used to build the deployment.", - "example": "npm install" - }, - "version": { - "type": "string", - "description": "Version of Open Runtimes used for the function.", - "example": "v2" - }, - "installationId": { - "type": "string", - "description": "Function VCS (Version Control System) installation id.", - "example": "6m40at4ejk5h2u9s1hboo" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "appwrite" - }, - "providerBranch": { - "type": "string", - "description": "VCS (Version Control System) branch name", - "example": "main" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function in VCS (Version Control System) repository", - "example": "functions\/helloWorld" - }, - "providerSilentMode": { - "type": "boolean", - "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", - "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" - }, - "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" - }, - "example": [ - "src\/**", - "!docs\/**" - ] - }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "type": "string", - "description": "Machine specification for executions.", - "example": "s-1vcpu-512mb" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "execute", - "name", - "enabled", - "live", - "logging", - "runtime", - "deploymentRetention", - "deploymentId", - "deploymentCreatedAt", - "latestDeploymentId", - "latestDeploymentCreatedAt", - "latestDeploymentStatus", - "scopes", - "vars", - "events", - "schedule", - "timeout", - "entrypoint", - "commands", - "version", - "installationId", - "providerRepositoryId", - "providerBranch", - "providerRootDirectory", - "providerSilentMode", - "providerBranches", - "providerPaths", - "buildSpecification", - "runtimeSpecification" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "execute": "users", - "name": "My Function", - "enabled": false, - "live": false, - "logging": false, - "runtime": "python-3.8", - "deploymentRetention": 7, - "deploymentId": "5e5ea5c16897e", - "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentId": "5e5ea5c16897e", - "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentStatus": "ready", - "scopes": "users.read", - "vars": [], - "events": "account.create", - "schedule": "5 4 * * *", - "timeout": 300, - "entrypoint": "index.js", - "commands": "npm install", - "version": "v2", - "installationId": "6m40at4ejk5h2u9s1hboo", - "providerRepositoryId": "appwrite", - "providerBranch": "main", - "providerRootDirectory": "functions\/helloWorld", - "providerSilentMode": false, - "providerBranches": [ - "main", - "feat\/*" - ], - "providerPaths": [ - "src\/**", - "!docs\/**" - ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb" - } - }, - "templateFunction": { - "description": "Template Function", - "type": "object", - "properties": { - "icon": { - "type": "string", - "description": "Function Template Icon.", - "example": "icon-lightning-bolt" - }, - "id": { - "type": "string", - "description": "Function Template ID.", - "example": "starter" - }, - "name": { - "type": "string", - "description": "Function Template Name.", - "example": "Starter function" - }, - "tagline": { - "type": "string", - "description": "Function Template Tagline.", - "example": "A simple function to get started." - }, - "permissions": { - "type": "array", - "description": "Execution permissions.", - "items": { - "type": "string" - }, - "example": [ - "any" - ] - }, - "events": { - "type": "array", - "description": "Function trigger events.", - "items": { - "type": "string" - }, - "example": [ - "account.create" - ] - }, - "cron": { - "type": "string", - "description": "Function execution schedult in CRON format.", - "example": "0 0 * * *" - }, - "timeout": { - "type": "integer", - "description": "Function execution timeout in seconds.", - "format": "int32", - "example": 300 - }, - "useCases": { - "type": "array", - "description": "Function use cases.", - "items": { - "type": "string" - }, - "example": [ - "Starter" - ] - }, - "runtimes": { - "type": "array", - "description": "List of runtimes that can be used with this template.", - "items": { - "$ref": "#\/components\/schemas\/templateRuntime" - }, - "example": [] - }, - "instructions": { - "type": "string", - "description": "Function Template Instructions.", - "example": "For documentation and instructions check out <link>." - }, - "vcsProvider": { - "type": "string", - "description": "VCS (Version Control System) Provider.", - "example": "github" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "templates" - }, - "providerOwner": { - "type": "string", - "description": "VCS (Version Control System) Owner.", - "example": "appwrite" - }, - "providerVersion": { - "type": "string", - "description": "VCS (Version Control System) branch version (tag).", - "example": "main" - }, - "variables": { - "type": "array", - "description": "Function variables.", - "items": { - "$ref": "#\/components\/schemas\/templateVariable" - }, - "example": [] - }, - "scopes": { - "type": "array", - "description": "Function scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - } - }, - "required": [ - "icon", - "id", - "name", - "tagline", - "permissions", - "events", - "cron", - "timeout", - "useCases", - "runtimes", - "instructions", - "vcsProvider", - "providerRepositoryId", - "providerOwner", - "providerVersion", - "variables", - "scopes" - ], - "example": { - "icon": "icon-lightning-bolt", - "id": "starter", - "name": "Starter function", - "tagline": "A simple function to get started.", - "permissions": "any", - "events": "account.create", - "cron": "0 0 * * *", - "timeout": 300, - "useCases": "Starter", - "runtimes": [], - "instructions": "For documentation and instructions check out <link>.", - "vcsProvider": "github", - "providerRepositoryId": "templates", - "providerOwner": "appwrite", - "providerVersion": "main", - "variables": [], - "scopes": "users.read" - } - }, - "templateRuntime": { - "description": "Template Runtime", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Runtime Name.", - "example": "node-19.0" - }, - "commands": { - "type": "string", - "description": "The build command used to build the deployment.", - "example": "npm install" - }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file used to execute the deployment.", - "example": "index.js" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function in VCS (Version Control System) repository", - "example": "node\/starter" - } - }, - "required": [ - "name", - "commands", - "entrypoint", - "providerRootDirectory" - ], - "example": { - "name": "node-19.0", - "commands": "npm install", - "entrypoint": "index.js", - "providerRootDirectory": "node\/starter" - } - }, - "templateVariable": { - "description": "Template Variable", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable Name.", - "example": "APPWRITE_DATABASE_ID" - }, - "description": { - "type": "string", - "description": "Variable Description.", - "example": "The ID of the Appwrite database that contains the collection to sync." - }, - "value": { - "type": "string", - "description": "Variable Value.", - "example": "512" - }, - "secret": { - "type": "boolean", - "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", - "example": false - }, - "placeholder": { - "type": "string", - "description": "Variable Placeholder.", - "example": "64a55...7b912" - }, - "required": { - "type": "boolean", - "description": "Is the variable required?", - "example": false - }, - "type": { - "type": "string", - "description": "Variable Type.", - "example": "password" - } - }, - "required": [ - "name", - "description", - "value", - "secret", - "placeholder", - "required", - "type" - ], - "example": { - "name": "APPWRITE_DATABASE_ID", - "description": "The ID of the Appwrite database that contains the collection to sync.", - "value": "512", - "secret": false, - "placeholder": "64a55...7b912", - "required": false, - "type": "password" - } - }, - "installation": { - "description": "Installation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Function ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Function creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Function update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "provider": { - "type": "string", - "description": "VCS (Version Control System) provider name.", - "example": "github" - }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name.", - "example": "appwrite" - }, - "providerInstallationId": { - "type": "string", - "description": "VCS (Version Control System) installation ID.", - "example": "5322" - }, - "organizationUrl": { - "type": "string", - "description": "VCS (Version Control System) organization URL. Points at the configured instance, which is not the provider's own host for a self-hosted install.", - "example": "https:\/\/github.com\/appwrite" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "provider", - "organization", - "providerInstallationId", - "organizationUrl" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "provider": "github", - "organization": "appwrite", - "providerInstallationId": "5322", - "organizationUrl": "https:\/\/github.com\/appwrite" - } - }, - "providerRepository": { - "description": "ProviderRepository", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "VCS (Version Control System) repository ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "VCS (Version Control System) repository name.", - "example": "appwrite" - }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name", - "example": "appwrite" - }, - "provider": { - "type": "string", - "description": "VCS (Version Control System) provider name.", - "example": "github" - }, - "private": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "example": true - }, - "defaultBranch": { - "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "example": "main" - }, - "providerInstallationId": { - "type": "string", - "description": "VCS (Version Control System) installation ID.", - "example": "108104697" - }, - "authorized": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "example": true - }, - "pushedAt": { - "type": "string", - "description": "Last commit date in ISO 8601 format.", - "example": "datetime" - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "type": "string" - }, - "example": [ - "PORT", - "NODE_ENV" - ] - } - }, - "required": [ - "id", - "name", - "organization", - "provider", - "private", - "defaultBranch", - "providerInstallationId", - "authorized", - "pushedAt", - "variables" - ], - "example": { - "id": "5e5ea5c16897e", - "name": "appwrite", - "organization": "appwrite", - "provider": "github", - "private": true, - "defaultBranch": "main", - "providerInstallationId": "108104697", - "authorized": true, - "pushedAt": "datetime", - "variables": [ - "PORT", - "NODE_ENV" - ] - } - }, - "providerRepositoryFramework": { - "description": "ProviderRepositoryFramework", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "VCS (Version Control System) repository ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "VCS (Version Control System) repository name.", - "example": "appwrite" - }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name", - "example": "appwrite" - }, - "provider": { - "type": "string", - "description": "VCS (Version Control System) provider name.", - "example": "github" - }, - "private": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "example": true - }, - "defaultBranch": { - "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "example": "main" - }, - "providerInstallationId": { - "type": "string", - "description": "VCS (Version Control System) installation ID.", - "example": "108104697" - }, - "authorized": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "example": true - }, - "pushedAt": { - "type": "string", - "description": "Last commit date in ISO 8601 format.", - "example": "datetime" - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "type": "string" - }, - "example": [ - "PORT", - "NODE_ENV" - ] - }, - "framework": { - "type": "string", - "description": "Auto-detected framework. Empty if type is not \"framework\".", - "example": "nextjs" - } - }, - "required": [ - "id", - "name", - "organization", - "provider", - "private", - "defaultBranch", - "providerInstallationId", - "authorized", - "pushedAt", - "variables", - "framework" - ], - "example": { - "id": "5e5ea5c16897e", - "name": "appwrite", - "organization": "appwrite", - "provider": "github", - "private": true, - "defaultBranch": "main", - "providerInstallationId": "108104697", - "authorized": true, - "pushedAt": "datetime", - "variables": [ - "PORT", - "NODE_ENV" - ], - "framework": "nextjs" - } - }, - "providerRepositoryRuntime": { - "description": "ProviderRepositoryRuntime", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "VCS (Version Control System) repository ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "VCS (Version Control System) repository name.", - "example": "appwrite" - }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name", - "example": "appwrite" - }, - "provider": { - "type": "string", - "description": "VCS (Version Control System) provider name.", - "example": "github" - }, - "private": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", - "example": true - }, - "defaultBranch": { - "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "example": "main" - }, - "providerInstallationId": { - "type": "string", - "description": "VCS (Version Control System) installation ID.", - "example": "108104697" - }, - "authorized": { - "type": "boolean", - "description": "Is VCS (Version Control System) repository authorized for the installation?", - "example": true - }, - "pushedAt": { - "type": "string", - "description": "Last commit date in ISO 8601 format.", - "example": "datetime" - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "type": "string" - }, - "example": [ - "PORT", - "NODE_ENV" - ] - }, - "runtime": { - "type": "string", - "description": "Auto-detected runtime. Empty if type is not \"runtime\".", - "example": "node-22" - } - }, - "required": [ - "id", - "name", - "organization", - "provider", - "private", - "defaultBranch", - "providerInstallationId", - "authorized", - "pushedAt", - "variables", - "runtime" - ], - "example": { - "id": "5e5ea5c16897e", - "name": "appwrite", - "organization": "appwrite", - "provider": "github", - "private": true, - "defaultBranch": "main", - "providerInstallationId": "108104697", - "authorized": true, - "pushedAt": "datetime", - "variables": [ - "PORT", - "NODE_ENV" - ], - "runtime": "node-22" - } - }, - "detectionFramework": { - "description": "DetectionFramework", - "type": "object", - "properties": { - "type": { - "description": "Repository detection type.", - "example": "framework", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "framework" - ], - "title": "framework" - } - ] - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "$ref": "#\/components\/schemas\/detectionVariable" - }, - "example": [], - "nullable": true - }, - "framework": { - "type": "string", - "description": "Framework", - "example": "nuxt" - }, - "installCommand": { - "type": "string", - "description": "Site Install Command", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "Site Build Command", - "example": "npm run build" - }, - "outputDirectory": { - "type": "string", - "description": "Site Output Directory", - "example": "dist" - } - }, - "required": [ - "type", - "framework", - "installCommand", - "buildCommand", - "outputDirectory" - ], - "example": { - "type": "framework", - "variables": {}, - "framework": "nuxt", - "installCommand": "npm install", - "buildCommand": "npm run build", - "outputDirectory": "dist" - } - }, - "detectionRuntime": { - "description": "DetectionRuntime", - "type": "object", - "properties": { - "type": { - "description": "Repository detection type.", - "example": "runtime", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "runtime" - ], - "title": "runtime" - } - ] - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "$ref": "#\/components\/schemas\/detectionVariable" - }, - "example": [], - "nullable": true - }, - "runtime": { - "type": "string", - "description": "Runtime", - "example": "node" - }, - "entrypoint": { - "type": "string", - "description": "Function Entrypoint", - "example": "index.js" - }, - "commands": { - "type": "string", - "description": "Function install and build commands", - "example": "npm install && npm run build" - } - }, - "required": [ - "type", - "runtime", - "entrypoint", - "commands" - ], - "example": { - "type": "runtime", - "variables": {}, - "runtime": "node", - "entrypoint": "index.js", - "commands": "npm install && npm run build" - } - }, - "detectionVariable": { - "description": "DetectionVariable", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of environment variable", - "example": "NODE_ENV" - }, - "value": { - "type": "string", - "description": "Value of environment variable", - "example": "production" - } - }, - "required": [ - "name", - "value" - ], - "example": { - "name": "NODE_ENV", - "value": "production" - } - }, - "vcsContent": { - "description": "VcsContents", - "type": "object", - "properties": { - "size": { - "type": "integer", - "description": "Content size in bytes. Only files have size, and for directories, 0 is returned.", - "format": "int32", - "example": 1523, - "nullable": true - }, - "isDirectory": { - "type": "boolean", - "description": "If a content is a directory. Directories can be used to check nested contents.", - "example": true, - "nullable": true - }, - "name": { - "type": "string", - "description": "Name of directory or file.", - "example": "Main.java" - } - }, - "required": [ - "name" - ], - "example": { - "size": 1523, - "isDirectory": true, - "name": "Main.java" - } - }, - "branch": { - "description": "Branch", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Branch Name.", - "example": "main" - } - }, - "required": [ - "name" - ], - "example": { - "name": "main" - } - }, - "runtime": { - "description": "Runtime", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Runtime ID.", - "example": "python-3.8" - }, - "key": { - "type": "string", - "description": "Parent runtime key.", - "example": "python" - }, - "name": { - "type": "string", - "description": "Runtime Name.", - "example": "Python" - }, - "version": { - "type": "string", - "description": "Runtime version.", - "example": "3.8" - }, - "base": { - "type": "string", - "description": "Base Docker image used to build the runtime.", - "example": "python:3.8-alpine" - }, - "image": { - "type": "string", - "description": "Image name of Docker Hub.", - "example": "appwrite\\\/runtime-for-python:3.8" - }, - "logo": { - "type": "string", - "description": "Name of the logo image.", - "example": "python.png" - }, - "supports": { - "type": "array", - "description": "List of supported architectures.", - "items": { - "type": "string" - }, - "example": [ - "amd64" - ] - } - }, - "required": [ - "$id", - "key", - "name", - "version", - "base", - "image", - "logo", - "supports" - ], - "example": { - "$id": "python-3.8", - "key": "python", - "name": "Python", - "version": "3.8", - "base": "python:3.8-alpine", - "image": "appwrite\\\/runtime-for-python:3.8", - "logo": "python.png", - "supports": "amd64" - } - }, - "framework": { - "description": "Framework", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Framework key.", - "example": "sveltekit" - }, - "name": { - "type": "string", - "description": "Framework Name.", - "example": "SvelteKit" - }, - "buildRuntime": { - "type": "string", - "description": "Default runtime version.", - "example": "node-22" - }, - "runtimes": { - "type": "array", - "description": "List of supported runtime versions.", - "items": { - "type": "string" - }, - "example": [ - "static-1", - "node-22" - ] - }, - "adapters": { - "type": "array", - "description": "List of supported adapters.", - "items": { - "$ref": "#\/components\/schemas\/frameworkAdapter" - }, - "example": [ - { - "key": "static", - "buildRuntime": "node-22", - "buildCommand": "npm run build", - "installCommand": "npm install", - "outputDirectory": ".\/dist" - } - ] - } - }, - "required": [ - "key", - "name", - "buildRuntime", - "runtimes", - "adapters" - ], - "example": { - "key": "sveltekit", - "name": "SvelteKit", - "buildRuntime": "node-22", - "runtimes": [ - "static-1", - "node-22" - ], - "adapters": [ - { - "key": "static", - "buildRuntime": "node-22", - "buildCommand": "npm run build", - "installCommand": "npm install", - "outputDirectory": ".\/dist" - } - ] - } - }, - "frameworkAdapter": { - "description": "Framework Adapter", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Adapter key.", - "example": "static" - }, - "installCommand": { - "type": "string", - "description": "Default command to download dependencies.", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "Default command to build site into output directory.", - "example": "npm run build" - }, - "outputDirectory": { - "type": "string", - "description": "Default output directory of build.", - "example": ".\/dist" - }, - "fallbackFile": { - "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", - "example": "index.html", - "nullable": true - } - }, - "required": [ - "key", - "installCommand", - "buildCommand", - "outputDirectory" - ], - "example": { - "key": "static", - "installCommand": "npm install", - "buildCommand": "npm run build", - "outputDirectory": ".\/dist", - "fallbackFile": "index.html" - } - }, - "deployment": { - "description": "Deployment", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Deployment ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Deployment update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "type": { - "type": "string", - "description": "Type of deployment.", - "example": "vcs" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "5e5ea6g16897e" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "functions" - }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file to use to execute the deployment code.", - "example": "index.js" - }, - "sourceSize": { - "type": "integer", - "description": "The code size in bytes.", - "format": "int32", - "example": 128 - }, - "buildSize": { - "type": "integer", - "description": "The build output size in bytes.", - "format": "int32", - "example": 128 - }, - "totalSize": { - "type": "integer", - "description": "The total size in bytes (source and build output).", - "format": "int32", - "example": 128 - }, - "buildId": { - "type": "string", - "description": "The current build ID.", - "example": "5e5ea5c16897e" - }, - "activate": { - "type": "boolean", - "description": "Whether the deployment should be automatically activated.", - "example": true - }, - "screenshotLight": { - "type": "string", - "description": "Screenshot with light theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "screenshotDark": { - "type": "string", - "description": "Screenshot with dark theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "status": { - "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", - "example": "ready", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "waiting" - ], - "title": "waiting" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "building" - ], - "title": "building" - }, - { - "type": "string", - "enum": [ - "ready" - ], - "title": "ready" - }, - { - "type": "string", - "enum": [ - "canceled" - ], - "title": "canceled" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "buildLogs": { - "type": "string", - "description": "The build logs.", - "example": "Compiling source files..." - }, - "buildDuration": { - "type": "integer", - "description": "The current build time in seconds.", - "format": "int32", - "example": 128 - }, - "providerRepositoryName": { - "type": "string", - "description": "The name of the vcs provider repository", - "example": "database" - }, - "providerRepositoryOwner": { - "type": "string", - "description": "The name of the vcs provider repository owner", - "example": "utopia" - }, - "providerRepositoryUrl": { - "type": "string", - "description": "The url of the vcs provider repository", - "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" - }, - "providerCommitHash": { - "type": "string", - "description": "The commit hash of the vcs commit", - "example": "7c3f25d" - }, - "providerCommitAuthorUrl": { - "type": "string", - "description": "The url of vcs commit author", - "example": "https:\/\/github.com\/vermakhushboo" - }, - "providerCommitAuthor": { - "type": "string", - "description": "The name of vcs commit author", - "example": "Khushboo Verma" - }, - "providerCommitMessage": { - "type": "string", - "description": "The commit message", - "example": "Update index.js" - }, - "providerCommitUrl": { - "type": "string", - "description": "The url of the vcs commit", - "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" - }, - "providerBranch": { - "type": "string", - "description": "The branch of the vcs repository", - "example": "0.7.x" - }, - "providerBranchUrl": { - "type": "string", - "description": "The branch of the vcs repository", - "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "resourceId", - "resourceType", - "entrypoint", - "sourceSize", - "buildSize", - "totalSize", - "buildId", - "activate", - "screenshotLight", - "screenshotDark", - "status", - "buildLogs", - "buildDuration", - "providerRepositoryName", - "providerRepositoryOwner", - "providerRepositoryUrl", - "providerCommitHash", - "providerCommitAuthorUrl", - "providerCommitAuthor", - "providerCommitMessage", - "providerCommitUrl", - "providerBranch", - "providerBranchUrl" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "type": "vcs", - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", - "entrypoint": "index.js", - "sourceSize": 128, - "buildSize": 128, - "totalSize": 128, - "buildId": "5e5ea5c16897e", - "activate": true, - "screenshotLight": "5e5ea5c16897e", - "screenshotDark": "5e5ea5c16897e", - "status": "ready", - "buildLogs": "Compiling source files...", - "buildDuration": 128, - "providerRepositoryName": "database", - "providerRepositoryOwner": "utopia", - "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", - "providerCommitHash": "7c3f25d", - "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", - "providerCommitAuthor": "Khushboo Verma", - "providerCommitMessage": "Update index.js", - "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", - "providerBranch": "0.7.x", - "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" - } - }, - "execution": { - "description": "Execution", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Execution ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Execution creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Execution update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Execution roles.", - "items": { - "type": "string" - }, - "example": [ - "any" - ] - }, - "resourceId": { - "type": "string", - "description": "Function or site ID.", - "example": "5e5ea6g16897e" - }, - "resourceType": { - "description": "Execution resource type.", - "example": "functions", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - } - ] - }, - "deploymentId": { - "type": "string", - "description": "Deployment ID used to create the execution.", - "example": "5e5ea5c16897e" - }, - "trigger": { - "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", - "example": "http", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "http" - ], - "title": "http" - }, - { - "type": "string", - "enum": [ - "schedule" - ], - "title": "schedule" - }, - { - "type": "string", - "enum": [ - "event" - ], - "title": "event" - } - ] - }, - "status": { - "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", - "example": "processing", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "waiting" - ], - "title": "waiting" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "scheduled" - ], - "title": "scheduled" - } - ] - }, - "requestMethod": { - "type": "string", - "description": "HTTP request method type.", - "example": "GET" - }, - "requestPath": { - "type": "string", - "description": "HTTP request path and query.", - "example": "\/articles?id=5" - }, - "requestHeaders": { - "type": "array", - "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "responseStatusCode": { - "type": "integer", - "description": "HTTP response status code.", - "format": "int32", - "example": 200 - }, - "responseBody": { - "type": "string", - "description": "HTTP response body. This will return empty unless execution is created as synchronous.", - "example": "" - }, - "responseHeaders": { - "type": "array", - "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "logs": { - "type": "string", - "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "errors": { - "type": "string", - "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "duration": { - "type": "number", - "description": "Total time the resource(function\/site) took to respond, in seconds.", - "format": "double", - "example": 1.23 - }, - "scheduledAt": { - "type": "string", - "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "resourceId", - "resourceType", - "deploymentId", - "trigger", - "status", - "requestMethod", - "requestPath", - "requestHeaders", - "responseStatusCode", - "responseBody", - "responseHeaders", - "logs", - "errors", - "duration" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "any" - ], - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", - "deploymentId": "5e5ea5c16897e", - "trigger": "http", - "status": "processing", - "requestMethod": "GET", - "requestPath": "\/articles?id=5", - "requestHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "responseStatusCode": 200, - "responseBody": "", - "responseHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "logs": "", - "errors": "", - "duration": 1.23, - "scheduledAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "project": { - "description": "Project", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Project creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Project update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Project name.", - "example": "New Project" - }, - "teamId": { - "type": "string", - "description": "Project team ID.", - "example": "1592981250" - }, - "region": { - "type": "string", - "description": "Project region", - "example": "fra" - }, - "smtpEnabled": { - "type": "boolean", - "description": "Status for custom SMTP", - "example": false - }, - "smtpSenderName": { - "type": "string", - "description": "SMTP sender name", - "example": "John Appwrite" - }, - "smtpSenderEmail": { - "type": "string", - "description": "SMTP sender email", - "example": "john@appwrite.io" - }, - "smtpReplyToName": { - "type": "string", - "description": "SMTP reply to name", - "example": "Support Team" - }, - "smtpReplyToEmail": { - "type": "string", - "description": "SMTP reply to email", - "example": "support@appwrite.io" - }, - "smtpHost": { - "type": "string", - "description": "SMTP server host name", - "example": "mail.appwrite.io" - }, - "smtpPort": { - "type": "integer", - "description": "SMTP server port", - "format": "int32", - "example": 25 - }, - "smtpUsername": { - "type": "string", - "description": "SMTP server username", - "example": "emailuser" - }, - "smtpPassword": { - "type": "string", - "description": "SMTP server password. This property is write-only and always returned empty.", - "format": "password", - "example": "smtp-password" - }, - "smtpSecure": { - "type": "string", - "description": "SMTP server secure protocol", - "example": "tls" - }, - "pingCount": { - "type": "integer", - "description": "Number of times the ping was received for this project.", - "format": "int32", - "example": 1 - }, - "pingedAt": { - "type": "string", - "description": "Last ping datetime in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "labels": { - "type": "array", - "description": "Labels for the project.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "status": { - "type": "string", - "description": "Project status", - "example": "active" - }, - "onboarding": { - "type": "object", - "additionalProperties": true, - "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", - "example": {} - }, - "authMethods": { - "type": "array", - "description": "List of auth methods.", - "items": { - "$ref": "#\/components\/schemas\/projectAuthMethod" - }, - "example": [] - }, - "services": { - "type": "array", - "description": "List of services.", - "items": { - "$ref": "#\/components\/schemas\/projectService" - }, - "example": [] - }, - "protocols": { - "type": "array", - "description": "List of protocols.", - "items": { - "$ref": "#\/components\/schemas\/projectProtocol" - }, - "example": [] - }, - "blocks": { - "type": "array", - "description": "Project blocks information", - "items": { - "$ref": "#\/components\/schemas\/block" - }, - "example": [] - }, - "consoleAccessedAt": { - "type": "string", - "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "wafEnabled": { - "type": "boolean", - "description": "Whether WAF enforcement is enabled for the project.", - "example": true, - "nullable": true - }, - "billingLimits": { - "type": "object", - "description": "Billing limits reached", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingLimits" - } - ], - "nullable": true - }, - "firstAccessedAt": { - "type": "string", - "description": "First time the project received a non-console API request. Empty until the project is used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "mcpAccessedAt": { - "type": "string", - "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "oAuth2ServerEnabled": { - "type": "boolean", - "description": "OAuth2 server status", - "example": false, - "nullable": true - }, - "oAuth2ServerAuthorizationUrl": { - "type": "string", - "description": "OAuth2 server authorization URL", - "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "nullable": true - }, - "oAuth2ServerScopes": { - "type": "array", - "description": "OAuth2 server allowed scopes", - "items": { - "type": "string" - }, - "example": [ - "read", - "write" - ], - "nullable": true - }, - "oAuth2ServerDefaultScopes": { - "type": "array", - "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", - "items": { - "type": "string" - }, - "example": [ - "read" - ], - "nullable": true - }, - "oAuth2ServerInstallationScopes": { - "type": "array", - "description": "Scopes an application may request when installed on a team", - "items": { - "type": "string" - }, - "example": [ - "project:all" - ], - "nullable": true - }, - "oAuth2ServerAuthorizationDetailsTypes": { - "type": "array", - "description": "OAuth2 server accepted RFC 9396 authorization_details types", - "items": { - "type": "string" - }, - "example": [ - "calendar" - ], - "nullable": true - }, - "oAuth2ServerAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for confidential clients", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerRefreshTokenDuration": { - "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for confidential clients", - "format": "int32", - "example": 86400, - "nullable": true - }, - "oAuth2ServerPublicAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerPublicRefreshTokenDuration": { - "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", - "format": "int32", - "example": 2592000, - "nullable": true - }, - "oAuth2ServerInstallationAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for app installation access tokens", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerConfidentialPkce": { - "type": "boolean", - "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "example": false, - "nullable": true - }, - "oAuth2ServerVerificationUrl": { - "type": "string", - "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", - "example": "https:\/\/cloud.appwrite.io\/device", - "nullable": true - }, - "oAuth2ServerUserCodeLength": { - "type": "integer", - "description": "Number of characters in the device flow user code, excluding the formatting separator.", - "format": "int32", - "example": 8, - "nullable": true - }, - "oAuth2ServerUserCodeFormat": { - "type": "string", - "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", - "example": "alphanumeric", - "nullable": true - }, - "oAuth2ServerDeviceCodeDuration": { - "type": "integer", - "description": "Lifetime in seconds of device flow device codes and user codes.", - "format": "int32", - "example": 600, - "nullable": true - }, - "oAuth2ServerDiscoveryUrl": { - "type": "string", - "description": "OAuth2 server discovery URL", - "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "teamId", - "region", - "smtpEnabled", - "smtpSenderName", - "smtpSenderEmail", - "smtpReplyToName", - "smtpReplyToEmail", - "smtpHost", - "smtpPort", - "smtpUsername", - "smtpPassword", - "smtpSecure", - "pingCount", - "pingedAt", - "labels", - "status", - "onboarding", - "authMethods", - "services", - "protocols", - "blocks", - "consoleAccessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "New Project", - "teamId": "1592981250", - "region": "fra", - "smtpEnabled": false, - "smtpSenderName": "John Appwrite", - "smtpSenderEmail": "john@appwrite.io", - "smtpReplyToName": "Support Team", - "smtpReplyToEmail": "support@appwrite.io", - "smtpHost": "mail.appwrite.io", - "smtpPort": 25, - "smtpUsername": "emailuser", - "smtpPassword": "smtp-password", - "smtpSecure": "tls", - "pingCount": 1, - "pingedAt": "2020-10-15T06:38:00.000+00:00", - "labels": [ - "vip" - ], - "status": "active", - "onboarding": {}, - "authMethods": {}, - "services": {}, - "protocols": {}, - "blocks": "", - "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", - "wafEnabled": true, - "billingLimits": "", - "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", - "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", - "oAuth2ServerEnabled": false, - "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "oAuth2ServerScopes": [ - "read", - "write" - ], - "oAuth2ServerDefaultScopes": [ - "read" - ], - "oAuth2ServerInstallationScopes": [ - "project:all" - ], - "oAuth2ServerAuthorizationDetailsTypes": [ - "calendar" - ], - "oAuth2ServerAccessTokenDuration": 3600, - "oAuth2ServerRefreshTokenDuration": 86400, - "oAuth2ServerPublicAccessTokenDuration": 3600, - "oAuth2ServerPublicRefreshTokenDuration": 2592000, - "oAuth2ServerInstallationAccessTokenDuration": 3600, - "oAuth2ServerConfidentialPkce": false, - "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", - "oAuth2ServerUserCodeLength": 8, - "oAuth2ServerUserCodeFormat": "alphanumeric", - "oAuth2ServerDeviceCodeDuration": 600, - "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" - } - }, - "projectAuthMethod": { - "description": "ProjectAuthMethod", - "type": "object", - "properties": { - "$id": { - "description": "Auth method ID.", - "example": "email-password", - "title": "ProjectAuthMethodId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "email-password" - ], - "title": "email-password" - }, - { - "type": "string", - "enum": [ - "magic-url" - ], - "title": "magic-url" - }, - { - "type": "string", - "enum": [ - "email-otp" - ], - "title": "email-otp" - }, - { - "type": "string", - "enum": [ - "anonymous" - ], - "title": "anonymous" - }, - { - "type": "string", - "enum": [ - "invites" - ], - "title": "invites" - }, - { - "type": "string", - "enum": [ - "jwt" - ], - "title": "jwt" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Auth method status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "email-password", - "enabled": false - } - }, - "projectService": { - "description": "ProjectService", - "type": "object", - "properties": { - "$id": { - "description": "Service ID.", - "example": "sites", - "title": "ProjectServiceId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "avatars" - ], - "title": "avatars" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "locale" - ], - "title": "locale" - }, - { - "type": "string", - "enum": [ - "health" - ], - "title": "health" - }, - { - "type": "string", - "enum": [ - "project" - ], - "title": "project" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "vcs" - ], - "title": "vcs" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "proxy" - ], - "title": "proxy" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "migrations" - ], - "title": "migrations" - }, - { - "type": "string", - "enum": [ - "messaging" - ], - "title": "messaging" - }, - { - "type": "string", - "enum": [ - "advisor" - ], - "title": "advisor" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Service status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "sites", - "enabled": false - } - }, - "projectProtocol": { - "description": "ProjectProtocol", - "type": "object", - "properties": { - "$id": { - "description": "Protocol ID.", - "example": "graphql", - "title": "ProjectProtocolId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "rest" - ], - "title": "rest" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "websocket" - ], - "title": "websocket" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Protocol status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "graphql", - "enabled": false - } - }, - "webhook": { - "description": "Webhook", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Webhook ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Webhook creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Webhook update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Webhook name.", - "example": "My Webhook" - }, - "url": { - "type": "string", - "description": "Webhook URL endpoint.", - "example": "https:\/\/example.com\/webhook" - }, - "events": { - "type": "array", - "description": "Webhook trigger events.", - "items": { - "type": "string" - }, - "example": [ - "databases.tables.update", - "databases.collections.update" - ] - }, - "tls": { - "type": "boolean", - "description": "Indicates if SSL \/ TLS certificate verification is enabled.", - "example": true - }, - "authUsername": { - "type": "string", - "description": "HTTP basic authentication username.", - "example": "username" - }, - "authPassword": { - "type": "string", - "description": "HTTP basic authentication password. Write-only: always returned empty.", - "format": "password", - "example": "webhook-password" - }, - "secret": { - "type": "string", - "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", - "example": "ad3d581ca230e2b7059c545e5a" - }, - "enabled": { - "type": "boolean", - "description": "Indicates if this webhook is enabled.", - "example": true - }, - "logs": { - "type": "string", - "description": "Webhook error logs from the most recent failure.", - "example": "Failed to connect to remote server." - }, - "attempts": { - "type": "integer", - "description": "Number of consecutive failed webhook attempts.", - "format": "int32", - "example": 10 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "url", - "events", - "tls", - "authUsername", - "authPassword", - "secret", - "enabled", - "logs", - "attempts" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Webhook", - "url": "https:\/\/example.com\/webhook", - "events": [ - "databases.tables.update", - "databases.collections.update" - ], - "tls": true, - "authUsername": "username", - "authPassword": "webhook-password", - "secret": "ad3d581ca230e2b7059c545e5a", - "enabled": true, - "logs": "Failed to connect to remote server.", - "attempts": 10 - } - }, - "key": { - "description": "Key", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Key creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Key update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Key name.", - "example": "My API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "secret": { - "type": "string", - "description": "Secret key.", - "example": "919c2d18fb5d4...a2ae413da83346ad2" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "example": [ - "appwrite:flutter" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "expire", - "scopes", - "secret", - "accessedAt", - "sdks" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "scopes": "users.read", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" - } - }, - "ephemeralKey": { - "description": "Ephemeral Key", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Key creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Key update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Key name.", - "example": "My API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "secret": { - "type": "string", - "description": "Secret key.", - "example": "919c2d18fb5d4...a2ae413da83346ad2" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "example": [ - "appwrite:flutter" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "expire", - "scopes", - "secret", - "accessedAt", - "sdks" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "scopes": "users.read", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" - } - }, - "mockNumber": { - "description": "Mock Number", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", - "example": "+1612842323" - }, - "otp": { - "type": "string", - "description": "Mock OTP for the number. ", - "example": "123456" - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "number", - "otp", - "$createdAt", - "$updatedAt" - ], - "example": { - "number": "+1612842323", - "otp": "123456", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "oAuth2Github": { - "description": "OAuth2GitHub", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", - "example": "e4d87900000000540733" - }, - "clientSecret": { - "type": "string", - "description": "GitHub OAuth2 client secret.", - "example": "5e07c00000000000000000000000000000198bcc" - }, - "prompt": { - "type": "array", - "description": "GitHub OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "select_account" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "e4d87900000000540733", - "clientSecret": "5e07c00000000000000000000000000000198bcc", - "prompt": [ - "select_account" - ] - } - }, - "oAuth2Discord": { - "description": "OAuth2Discord", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Discord OAuth2 client ID.", - "example": "950722000000343754" - }, - "clientSecret": { - "type": "string", - "description": "Discord OAuth2 client secret.", - "example": "YmPXnM000000000000000000002zFg5D" - }, - "prompt": { - "type": "array", - "description": "Discord OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "950722000000343754", - "clientSecret": "YmPXnM000000000000000000002zFg5D", - "prompt": [ - "none" - ] - } - }, - "oAuth2Figma": { - "description": "OAuth2Figma", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Figma OAuth2 client ID.", - "example": "byay5H0000000000VtiI40" - }, - "clientSecret": { - "type": "string", - "description": "Figma OAuth2 client secret.", - "example": "yEpOYn0000000000000000004iIsU5" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "byay5H0000000000VtiI40", - "clientSecret": "yEpOYn0000000000000000004iIsU5" - } - }, - "oAuth2Dropbox": { - "description": "OAuth2Dropbox", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "appKey": { - "type": "string", - "description": "Dropbox OAuth2 app key.", - "example": "jl000000000009t" - }, - "appSecret": { - "type": "string", - "description": "Dropbox OAuth2 app secret.", - "example": "g200000000000vw" - } - }, - "required": [ - "$id", - "enabled", - "appKey", - "appSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "appKey": "jl000000000009t", - "appSecret": "g200000000000vw" - } - }, - "oAuth2Dailymotion": { - "description": "OAuth2Dailymotion", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "apiKey": { - "type": "string", - "description": "Dailymotion OAuth2 API key.", - "example": "07a9000000000000067f" - }, - "apiSecret": { - "type": "string", - "description": "Dailymotion OAuth2 API secret.", - "example": "a399a90000000000000000000000000000d90639" - } - }, - "required": [ - "$id", - "enabled", - "apiKey", - "apiSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "apiKey": "07a9000000000000067f", - "apiSecret": "a399a90000000000000000000000000000d90639" - } - }, - "oAuth2Bitbucket": { - "description": "OAuth2Bitbucket", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "key": { - "type": "string", - "description": "Bitbucket OAuth2 key.", - "example": "Knt70000000000ByRc" - }, - "secret": { - "type": "string", - "description": "Bitbucket OAuth2 secret.", - "example": "NMfLZJ00000000000000000000TLQdDx" - } - }, - "required": [ - "$id", - "enabled", - "key", - "secret" - ], - "example": { - "$id": "github", - "enabled": false, - "key": "Knt70000000000ByRc", - "secret": "NMfLZJ00000000000000000000TLQdDx" - } - }, - "oAuth2Bitly": { - "description": "OAuth2Bitly", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Bitly OAuth2 client ID.", - "example": "d95151000000000000000000000000000067af9b" - }, - "clientSecret": { - "type": "string", - "description": "Bitly OAuth2 client secret.", - "example": "a13e250000000000000000000000000000d73095" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "d95151000000000000000000000000000067af9b", - "clientSecret": "a13e250000000000000000000000000000d73095" - } - }, - "oAuth2Box": { - "description": "OAuth2Box", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Box OAuth2 client ID.", - "example": "deglcs00000000000000000000x2og6y" - }, - "clientSecret": { - "type": "string", - "description": "Box OAuth2 client secret.", - "example": "OKM1f100000000000000000000eshEif" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "deglcs00000000000000000000x2og6y", - "clientSecret": "OKM1f100000000000000000000eshEif" - } - }, - "oAuth2Autodesk": { - "description": "OAuth2Autodesk", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Autodesk OAuth2 client ID.", - "example": "5zw90v00000000000000000000kVYXN7" - }, - "clientSecret": { - "type": "string", - "description": "Autodesk OAuth2 client secret.", - "example": "7I000000000000MW" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "5zw90v00000000000000000000kVYXN7", - "clientSecret": "7I000000000000MW" - } - }, - "oAuth2Google": { - "description": "OAuth2Google", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Google OAuth2 client ID.", - "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" - }, - "clientSecret": { - "type": "string", - "description": "Google OAuth2 client secret.", - "example": "GOCSPX-2k8gsR0000000000000000VNahJj" - }, - "prompt": { - "type": "array", - "description": "Google OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "consent" - ] - }, - "nativeEnabled": { - "type": "boolean", - "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", - "example": false - }, - "nativeClientIds": { - "type": "array", - "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", - "items": { - "type": "string" - }, - "example": [ - "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "nativeEnabled", - "nativeClientIds" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", - "prompt": [ - "consent" - ], - "nativeEnabled": false, - "nativeClientIds": [ - "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" - ] - } - }, - "oAuth2Zoom": { - "description": "OAuth2Zoom", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Zoom OAuth2 client ID.", - "example": "QMAC00000000000000w0AQ" - }, - "clientSecret": { - "type": "string", - "description": "Zoom OAuth2 client secret.", - "example": "GAWsG4000000000000000000007U01ON" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "QMAC00000000000000w0AQ", - "clientSecret": "GAWsG4000000000000000000007U01ON" - } - }, - "oAuth2Zoho": { - "description": "OAuth2Zoho", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Zoho OAuth2 client ID.", - "example": "1000.83C178000000000000000000RPNX0B" - }, - "clientSecret": { - "type": "string", - "description": "Zoho OAuth2 client secret.", - "example": "fb5cac000000000000000000000000000000a68f6e" - }, - "prompt": { - "type": "array", - "description": "Zoho OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "consent" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "1000.83C178000000000000000000RPNX0B", - "clientSecret": "fb5cac000000000000000000000000000000a68f6e", - "prompt": [ - "consent" - ] - } - }, - "oAuth2Yandex": { - "description": "OAuth2Yandex", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Yandex OAuth2 client ID.", - "example": "6a8a6a0000000000000000000091483c" - }, - "clientSecret": { - "type": "string", - "description": "Yandex OAuth2 client secret.", - "example": "bbf98500000000000000000000c75a63" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6a8a6a0000000000000000000091483c", - "clientSecret": "bbf98500000000000000000000c75a63" - } - }, - "oAuth2X": { - "description": "OAuth2X", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "customerKey": { - "type": "string", - "description": "X OAuth2 customer key.", - "example": "slzZV0000000000000NFLaWT" - }, - "secretKey": { - "type": "string", - "description": "X OAuth2 secret key.", - "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" - } - }, - "required": [ - "$id", - "enabled", - "customerKey", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "customerKey": "slzZV0000000000000NFLaWT", - "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" - } - }, - "oAuth2WordPress": { - "description": "OAuth2WordPress", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "WordPress OAuth2 client ID.", - "example": "130005" - }, - "clientSecret": { - "type": "string", - "description": "WordPress OAuth2 client secret.", - "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "130005", - "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "oAuth2Webflow": { - "description": "OAuth2Webflow", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Webflow OAuth2 client ID.", - "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" - }, - "clientSecret": { - "type": "string", - "description": "Webflow OAuth2 client secret.", - "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", - "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" - } - }, - "oAuth2Twitch": { - "description": "OAuth2Twitch", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Twitch OAuth2 client ID.", - "example": "vvi0in000000000000000000ikmt9p" - }, - "clientSecret": { - "type": "string", - "description": "Twitch OAuth2 client secret.", - "example": "pmapue000000000000000000zylw3v" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "vvi0in000000000000000000ikmt9p", - "clientSecret": "pmapue000000000000000000zylw3v" - } - }, - "oAuth2Stripe": { - "description": "OAuth2Stripe", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Stripe OAuth2 client ID.", - "example": "ca_UKibXX0000000000000000000006byvR" - }, - "apiSecretKey": { - "type": "string", - "description": "Stripe OAuth2 API secret key.", - "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "apiSecretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "ca_UKibXX0000000000000000000006byvR", - "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" - } - }, - "oAuth2Spotify": { - "description": "OAuth2Spotify", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Spotify OAuth2 client ID.", - "example": "6ec271000000000000000000009beace" - }, - "clientSecret": { - "type": "string", - "description": "Spotify OAuth2 client secret.", - "example": "db068a000000000000000000008b5b9f" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6ec271000000000000000000009beace", - "clientSecret": "db068a000000000000000000008b5b9f" - } - }, - "oAuth2Slack": { - "description": "OAuth2Slack", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Slack OAuth2 client ID.", - "example": "23000000089.15000000000023" - }, - "clientSecret": { - "type": "string", - "description": "Slack OAuth2 client secret.", - "example": "81656000000000000000000000f3d2fd" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "23000000089.15000000000023", - "clientSecret": "81656000000000000000000000f3d2fd" - } - }, - "oAuth2Podio": { - "description": "OAuth2Podio", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Podio OAuth2 client ID.", - "example": "appwrite-oauth-test-app" - }, - "clientSecret": { - "type": "string", - "description": "Podio OAuth2 client secret.", - "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "appwrite-oauth-test-app", - "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" - } - }, - "oAuth2Notion": { - "description": "OAuth2Notion", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "oauthClientId": { - "type": "string", - "description": "Notion OAuth2 client ID.", - "example": "341d8700-0000-0000-0000-000000446ee3" - }, - "oauthClientSecret": { - "type": "string", - "description": "Notion OAuth2 client secret.", - "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" - } - }, - "required": [ - "$id", - "enabled", - "oauthClientId", - "oauthClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", - "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" - } - }, - "oAuth2Salesforce": { - "description": "OAuth2Salesforce", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "customerKey": { - "type": "string", - "description": "Salesforce OAuth2 consumer key.", - "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" - }, - "customerSecret": { - "type": "string", - "description": "Salesforce OAuth2 consumer secret.", - "example": "3w000000000000e2" - }, - "prompt": { - "type": "array", - "description": "Salesforce OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "login" - ] - } - }, - "required": [ - "$id", - "enabled", - "customerKey", - "customerSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "customerSecret": "3w000000000000e2", - "prompt": [ - "login" - ] - } - }, - "oAuth2Yahoo": { - "description": "OAuth2Yahoo", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Yahoo OAuth2 client ID.", - "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" - }, - "clientSecret": { - "type": "string", - "description": "Yahoo OAuth2 client secret.", - "example": "cf978f0000000000000000000000000000c5e2e9" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "clientSecret": "cf978f0000000000000000000000000000c5e2e9" - } - }, - "oAuth2Cloudflare": { - "description": "OAuth2Cloudflare", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Cloudflare OAuth2 client ID.", - "example": "4b866000000000000000000000c9e4e2" - }, - "clientSecret": { - "type": "string", - "description": "Cloudflare OAuth2 client secret.", - "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "4b866000000000000000000000c9e4e2", - "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" - } - }, - "oAuth2HuggingFace": { - "description": "OAuth2HuggingFace", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Hugging Face OAuth2 client ID.", - "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" - }, - "clientSecret": { - "type": "string", - "description": "Hugging Face OAuth2 client secret.", - "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", - "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" - } - }, - "oAuth2Linkedin": { - "description": "OAuth2Linkedin", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "LinkedIn OAuth2 client ID.", - "example": "770000000000dv" - }, - "primaryClientSecret": { - "type": "string", - "description": "LinkedIn OAuth2 primary client secret.", - "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "primaryClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "770000000000dv", - "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" - } - }, - "oAuth2Disqus": { - "description": "OAuth2Disqus", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "publicKey": { - "type": "string", - "description": "Disqus OAuth2 public key.", - "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" - }, - "secretKey": { - "type": "string", - "description": "Disqus OAuth2 secret key.", - "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" - } - }, - "required": [ - "$id", - "enabled", - "publicKey", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" - } - }, - "oAuth2Amazon": { - "description": "OAuth2Amazon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Amazon OAuth2 client ID.", - "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" - }, - "clientSecret": { - "type": "string", - "description": "Amazon OAuth2 client secret.", - "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" - } - }, - "oAuth2Etsy": { - "description": "OAuth2Etsy", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "keyString": { - "type": "string", - "description": "Etsy OAuth2 keystring.", - "example": "nsgzxh0000000000008j85a2" - }, - "sharedSecret": { - "type": "string", - "description": "Etsy OAuth2 shared secret.", - "example": "tp000000ru" - } - }, - "required": [ - "$id", - "enabled", - "keyString", - "sharedSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "keyString": "nsgzxh0000000000008j85a2", - "sharedSecret": "tp000000ru" - } - }, - "oAuth2Facebook": { - "description": "OAuth2Facebook", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "appId": { - "type": "string", - "description": "Facebook OAuth2 app ID.", - "example": "260600000007694" - }, - "appSecret": { - "type": "string", - "description": "Facebook OAuth2 app secret.", - "example": "2d0b2800000000000000000000d38af4" - } - }, - "required": [ - "$id", - "enabled", - "appId", - "appSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "appId": "260600000007694", - "appSecret": "2d0b2800000000000000000000d38af4" - } - }, - "oAuth2Tradeshift": { - "description": "OAuth2Tradeshift", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "oauth2ClientId": { - "type": "string", - "description": "Tradeshift OAuth2 client ID.", - "example": "appwrite-test-org.appwrite-test-app" - }, - "oauth2ClientSecret": { - "type": "string", - "description": "Tradeshift OAuth2 client secret.", - "example": "7cb52700-0000-0000-0000-000000ca5b83" - } - }, - "required": [ - "$id", - "enabled", - "oauth2ClientId", - "oauth2ClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "oauth2ClientId": "appwrite-test-org.appwrite-test-app", - "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" - } - }, - "oAuth2Paypal": { - "description": "OAuth2Paypal", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "PayPal OAuth2 client ID.", - "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" - }, - "secretKey": { - "type": "string", - "description": "PayPal OAuth2 secret key.", - "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" - } - }, - "oAuth2Gitlab": { - "description": "OAuth2Gitlab", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "applicationId": { - "type": "string", - "description": "GitLab OAuth2 application ID.", - "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" - }, - "secret": { - "type": "string", - "description": "GitLab OAuth2 secret.", - "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" - }, - "endpoint": { - "type": "string", - "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", - "example": "https:\/\/gitlab.com" - } - }, - "required": [ - "$id", - "enabled", - "applicationId", - "secret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "endpoint": "https:\/\/gitlab.com" - } - }, - "oAuth2Appwrite": { - "description": "OAuth2Appwrite", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Appwrite OAuth2 client ID.", - "example": "6a42000000000000b5a0" - }, - "clientSecret": { - "type": "string", - "description": "Appwrite OAuth2 client secret.", - "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6a42000000000000b5a0", - "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" - } - }, - "oAuth2Authentik": { - "description": "OAuth2Authentik", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Authentik OAuth2 client ID.", - "example": "dTKOPa0000000000000000000000000000e7G8hv" - }, - "clientSecret": { - "type": "string", - "description": "Authentik OAuth2 client secret.", - "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" - }, - "endpoint": { - "type": "string", - "description": "Authentik OAuth2 endpoint domain.", - "example": "example.authentik.com" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "dTKOPa0000000000000000000000000000e7G8hv", - "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "endpoint": "example.authentik.com" - } - }, - "oAuth2Auth0": { - "description": "OAuth2Auth0", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Auth0 OAuth2 client ID.", - "example": "OaOkIA000000000000000000005KLSYq" - }, - "clientSecret": { - "type": "string", - "description": "Auth0 OAuth2 client secret.", - "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" - }, - "prompt": { - "type": "array", - "description": "Auth0 OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - }, - "endpoint": { - "type": "string", - "description": "Auth0 OAuth2 endpoint domain.", - "example": "example.us.auth0.com" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "OaOkIA000000000000000000005KLSYq", - "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "prompt": [ - "none" - ], - "endpoint": "example.us.auth0.com" - } - }, - "oAuth2FusionAuth": { - "description": "OAuth2FusionAuth", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "FusionAuth OAuth2 client ID.", - "example": "b2222c00-0000-0000-0000-000000862097" - }, - "clientSecret": { - "type": "string", - "description": "FusionAuth OAuth2 client secret.", - "example": "Jx4s0C0000000000000000000000000000000wGqLsc" - }, - "endpoint": { - "type": "string", - "description": "FusionAuth OAuth2 endpoint domain.", - "example": "example.fusionauth.io" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "b2222c00-0000-0000-0000-000000862097", - "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", - "endpoint": "example.fusionauth.io" - } - }, - "oAuth2Keycloak": { - "description": "OAuth2Keycloak", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Keycloak OAuth2 client ID.", - "example": "appwrite-o0000000st-app" - }, - "clientSecret": { - "type": "string", - "description": "Keycloak OAuth2 client secret.", - "example": "jdjrJd00000000000000000000HUsaZO" - }, - "endpoint": { - "type": "string", - "description": "Keycloak OAuth2 endpoint domain.", - "example": "keycloak.example.com" - }, - "realmName": { - "type": "string", - "description": "Keycloak OAuth2 realm name.", - "example": "appwrite-realm" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint", - "realmName" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "appwrite-o0000000st-app", - "clientSecret": "jdjrJd00000000000000000000HUsaZO", - "endpoint": "keycloak.example.com", - "realmName": "appwrite-realm" - } - }, - "oAuth2Oidc": { - "description": "OAuth2Oidc", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "OpenID Connect OAuth2 client ID.", - "example": "qibI2x0000000000000000000000000006L2YFoG" - }, - "clientSecret": { - "type": "string", - "description": "OpenID Connect OAuth2 client secret.", - "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" - }, - "prompt": { - "type": "array", - "description": "OpenID Connect prompt values controlling the authentication and consent screens.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", - "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/authorize" - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/token" - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/userinfo" - }, - "maxAge": { - "type": "integer", - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", - "format": "int32", - "example": 3600, - "nullable": true - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "wellKnownURL", - "authorizationURL", - "tokenURL", - "userInfoURL" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "qibI2x0000000000000000000000000006L2YFoG", - "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "prompt": [ - "none" - ], - "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", - "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", - "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", - "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", - "maxAge": 3600 - } - }, - "oAuth2Okta": { - "description": "OAuth2Okta", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Okta OAuth2 client ID.", - "example": "0oa00000000000000698" - }, - "clientSecret": { - "type": "string", - "description": "Okta OAuth2 client secret.", - "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" - }, - "prompt": { - "type": "array", - "description": "Okta OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - }, - "domain": { - "type": "string", - "description": "Okta OAuth2 domain.", - "example": "trial-6400025.okta.com" - }, - "authorizationServerId": { - "type": "string", - "description": "Okta OAuth2 authorization server ID.", - "example": "aus000000000000000h7z" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "domain", - "authorizationServerId" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "0oa00000000000000698", - "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "prompt": [ - "none" - ], - "domain": "trial-6400025.okta.com", - "authorizationServerId": "aus000000000000000h7z" - } - }, - "oAuth2Kick": { - "description": "OAuth2Kick", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Kick OAuth2 client ID.", - "example": "01KQ7C00000000000001MFHS32" - }, - "clientSecret": { - "type": "string", - "description": "Kick OAuth2 client secret.", - "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "01KQ7C00000000000001MFHS32", - "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" - } - }, - "oAuth2Apple": { - "description": "OAuth2Apple", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "apple" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "serviceId": { - "type": "string", - "description": "Apple OAuth2 service ID.", - "example": "ip.appwrite.app.web" - }, - "keyId": { - "type": "string", - "description": "Apple OAuth2 key ID.", - "example": "P4000000N8" - }, - "teamId": { - "type": "string", - "description": "Apple OAuth2 team ID.", - "example": "D4000000R6" - }, - "p8File": { - "type": "string", - "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", - "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" - }, - "nativeEnabled": { - "type": "boolean", - "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", - "example": false - }, - "nativeClientIds": { - "type": "array", - "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", - "items": { - "type": "string" - }, - "example": [ - "com.example.app" - ] - } - }, - "required": [ - "$id", - "enabled", - "serviceId", - "keyId", - "teamId", - "p8File", - "nativeEnabled", - "nativeClientIds" - ], - "example": { - "$id": "apple", - "enabled": false, - "serviceId": "ip.appwrite.app.web", - "keyId": "P4000000N8", - "teamId": "D4000000R6", - "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "nativeEnabled": false, - "nativeClientIds": [ - "com.example.app" - ] - } - }, - "oAuth2Microsoft": { - "description": "OAuth2Microsoft", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "applicationId": { - "type": "string", - "description": "Microsoft OAuth2 application ID.", - "example": "00001111-aaaa-2222-bbbb-3333cccc4444" - }, - "applicationSecret": { - "type": "string", - "description": "Microsoft OAuth2 application secret.", - "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" - }, - "prompt": { - "type": "array", - "description": "Microsoft OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - }, - "tenant": { - "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", - "example": "common" - } - }, - "required": [ - "$id", - "enabled", - "applicationId", - "applicationSecret", - "prompt", - "tenant" - ], - "example": { - "$id": "github", - "enabled": false, - "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", - "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "prompt": [ - "none" - ], - "tenant": "common" - } - }, - "oAuth2Resend": { - "description": "OAuth2Resend", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Resend OAuth2 client ID.", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" - }, - "clientSecret": { - "type": "string", - "description": "Resend OAuth2 client secret.", - "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", - "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" - } - }, - "oAuth2TikTok": { - "description": "OAuth2TikTok", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "TikTok OAuth2 client key.", - "example": "awz000000000tyw0" - }, - "clientSecret": { - "type": "string", - "description": "TikTok OAuth2 client secret.", - "example": "6wXewM00000000000000000000yXnite" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "awz000000000tyw0", - "clientSecret": "6wXewM00000000000000000000yXnite" - } - }, - "oAuth2Kakao": { - "description": "OAuth2Kakao", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Kakao OAuth2 REST API key.", - "example": "839ff5000000000000000000013206de" - }, - "clientSecret": { - "type": "string", - "description": "Kakao OAuth2 client secret.", - "example": "jLNVOK00000000000000000000yJebea" - }, - "prompt": { - "type": "array", - "description": "Kakao OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "create" - ], - "title": "create" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "839ff5000000000000000000013206de", - "clientSecret": "jLNVOK00000000000000000000yJebea", - "prompt": [ - "none" - ] - } - }, - "oAuth2ProviderList": { - "description": "OAuth2 Providers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of OAuth2 providers in the given project.", - "format": "int32", - "example": 5 - }, - "providers": { - "type": "array", - "description": "List of OAuth2 providers.", - "items": { - "anyOf": [ - { - "$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\/oAuth2Webflow" - }, - { - "$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\/oAuth2Appwrite" - }, - { - "$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" - }, - { - "$ref": "#\/components\/schemas\/oAuth2HuggingFace" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Resend" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - }, - { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - ], - "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", - "webflow": "#\/components\/schemas\/oAuth2Webflow", - "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", - "appwrite": "#\/components\/schemas\/oAuth2Appwrite", - "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", - "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", - "resend": "#\/components\/schemas\/oAuth2Resend", - "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", - "tiktok": "#\/components\/schemas\/oAuth2TikTok", - "kakao": "#\/components\/schemas\/oAuth2Kakao" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "providers" - ], - "example": { - "total": 5, - "providers": "" - } - }, - "policyPasswordDictionary": { - "description": "Policy Password Dictionary", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether password dictionary policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyPasswordHistory": { - "description": "Policy Password History", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Password history length. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 5 - } - }, - "policyPasswordStrength": { - "description": "Policy Password Strength", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "min": { - "type": "integer", - "description": "Minimum password length required for user passwords.", - "format": "int32", - "example": 12 - }, - "uppercase": { - "type": "boolean", - "description": "Whether passwords must include at least one uppercase letter.", - "example": true - }, - "lowercase": { - "type": "boolean", - "description": "Whether passwords must include at least one lowercase letter.", - "example": true - }, - "number": { - "type": "boolean", - "description": "Whether passwords must include at least one number.", - "example": true - }, - "symbols": { - "type": "boolean", - "description": "Whether passwords must include at least one symbol.", - "example": true - } - }, - "required": [ - "$id", - "min", - "uppercase", - "lowercase", - "number", - "symbols" - ], - "example": { - "$id": "password-dictionary", - "min": 12, - "uppercase": true, - "lowercase": true, - "number": true, - "symbols": true - } - }, - "policyPasswordPersonalData": { - "description": "Policy Password Personal Data", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether password personal data policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyPasswordPwned": { - "description": "Policy Password Pwned", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", - "example": true - }, - "sessions": { - "type": "boolean", - "description": "Whether a sign-in with a breached password is refused until the password is reset.", - "example": false - }, - "users": { - "type": "boolean", - "description": "Whether a breached password is rejected when a user signs up or sets a new password.", - "example": false - } - }, - "required": [ - "$id", - "enabled", - "sessions", - "users" - ], - "example": { - "$id": "password-dictionary", - "enabled": true, - "sessions": false, - "users": false - } - }, - "policySessionAlert": { - "description": "Policy Session Alert", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether session alert policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policySessionDuration": { - "description": "Policy Session Duration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "duration": { - "type": "integer", - "description": "Session duration in seconds.", - "format": "int32", - "example": 3600 - } - }, - "required": [ - "$id", - "duration" - ], - "example": { - "$id": "password-dictionary", - "duration": 3600 - } - }, - "policySessionInvalidation": { - "description": "Policy Session Invalidation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether session invalidation policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policySessionLimit": { - "description": "Policy Session Limit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 10 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 10 - } - }, - "policyUserLimit": { - "description": "Policy User Limit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 100 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 100 - } - }, - "policyMembershipPrivacy": { - "description": "Policy Membership Privacy", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "userId": { - "type": "boolean", - "description": "Whether user ID is visible in memberships.", - "example": true - }, - "userEmail": { - "type": "boolean", - "description": "Whether user email is visible in memberships.", - "example": true - }, - "userPhone": { - "type": "boolean", - "description": "Whether user phone is visible in memberships.", - "example": true - }, - "userName": { - "type": "boolean", - "description": "Whether user name is visible in memberships.", - "example": true - }, - "userMFA": { - "type": "boolean", - "description": "Whether user MFA status is visible in memberships.", - "example": true - }, - "userAccessedAt": { - "type": "boolean", - "description": "Whether user last access time is visible in memberships.", - "example": true - } - }, - "required": [ - "$id", - "userId", - "userEmail", - "userPhone", - "userName", - "userMFA", - "userAccessedAt" - ], - "example": { - "$id": "password-dictionary", - "userId": true, - "userEmail": true, - "userPhone": true, - "userName": true, - "userMFA": true, - "userAccessedAt": true - } - }, - "policyMfaFactors": { - "description": "Policy MFA Factors", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "totp": { - "type": "boolean", - "description": "Whether TOTP can be used to complete an MFA challenge.", - "example": true - }, - "email": { - "type": "boolean", - "description": "Whether email can be used to complete an MFA challenge.", - "example": true - }, - "phone": { - "type": "boolean", - "description": "Whether phone (SMS) can be used to complete an MFA challenge.", - "example": true - }, - "custom": { - "type": "boolean", - "description": "Whether the custom factor can be used to complete an MFA challenge.", - "example": true - } - }, - "required": [ - "$id", - "totp", - "email", - "phone", - "custom" - ], - "example": { - "$id": "password-dictionary", - "totp": true, - "email": true, - "phone": true, - "custom": true - } - }, - "policyDenyAliasedEmail": { - "description": "Policy Deny Aliased Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny aliased email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyDisposableEmail": { - "description": "Policy Deny Disposable Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny disposable email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyFreeEmail": { - "description": "Policy Deny Free Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny free email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyCorporateEmail": { - "description": "Policy Deny Corporate Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny non-corporate email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "platformWeb": { - "description": "Platform Web", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "hostname": { - "type": "string", - "description": "Web app hostname. Empty string for other platforms.", - "example": "app.example.com" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "hostname", - "key" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "hostname": "app.example.com" - } - }, - "platformApple": { - "description": "Platform Apple", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "bundleIdentifier" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "bundleIdentifier": "com.company.appname" - } - }, - "platformAndroid": { - "description": "Platform Android", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "applicationId": { - "type": "string", - "description": "Android application ID.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "applicationId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "applicationId": "com.company.appname" - } - }, - "platformWindows": { - "description": "Platform Windows", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "packageIdentifierName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "packageIdentifierName": "com.company.appname" - } - }, - "platformLinux": { - "description": "Platform Linux", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "packageName": { - "type": "string", - "description": "Linux package name.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "packageName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "packageName": "com.company.appname" - } - }, - "platformList": { - "description": "Platforms List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of platforms in the given project.", - "format": "int32", - "example": 5 - }, - "platforms": { - "type": "array", - "description": "List of platforms.", - "items": { - "anyOf": [ - { - "$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" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "platforms" - ], - "example": { - "total": 5, - "platforms": "" - } - }, - "variable": { - "description": "Variable", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Variable ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Variable key.", - "example": "API_KEY" - }, - "value": { - "type": "string", - "description": "Variable value.", - "example": "myPa$$word1" - }, - "secret": { - "type": "boolean", - "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", - "example": false - }, - "resourceType": { - "type": "string", - "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", - "example": "function" - }, - "resourceId": { - "type": "string", - "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", - "example": "myAwesomeFunction" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "value", - "secret", - "resourceType", - "resourceId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "API_KEY", - "value": "myPa$$word1", - "secret": false, - "resourceType": "function", - "resourceId": "myAwesomeFunction" - } - }, - "country": { - "description": "Country", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "code": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "United States", - "code": "US" - } - }, - "continent": { - "description": "Continent", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Continent name.", - "example": "Europe" - }, - "code": { - "type": "string", - "description": "Continent two letter code.", - "example": "EU" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "Europe", - "code": "EU" - } - }, - "language": { - "description": "Language", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Language name.", - "example": "Italian" - }, - "code": { - "type": "string", - "description": "Language two-character ISO 639-1 codes.", - "example": "it" - }, - "nativeName": { - "type": "string", - "description": "Language native name.", - "example": "Italiano" - } - }, - "required": [ - "name", - "code", - "nativeName" - ], - "example": { - "name": "Italian", - "code": "it", - "nativeName": "Italiano" - } - }, - "currency": { - "description": "Currency", - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "Currency symbol.", - "example": "$" - }, - "name": { - "type": "string", - "description": "Currency name.", - "example": "US dollar" - }, - "symbolNative": { - "type": "string", - "description": "Currency native symbol.", - "example": "$" - }, - "decimalDigits": { - "type": "integer", - "description": "Number of decimal digits.", - "format": "int32", - "example": 2 - }, - "rounding": { - "type": "number", - "description": "Currency digit rounding.", - "format": "double", - "example": 0 - }, - "code": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", - "example": "USD" - }, - "namePlural": { - "type": "string", - "description": "Currency plural name", - "example": "US dollars" - } - }, - "required": [ - "symbol", - "name", - "symbolNative", - "decimalDigits", - "rounding", - "code", - "namePlural" - ], - "example": { - "symbol": "$", - "name": "US dollar", - "symbolNative": "$", - "decimalDigits": 2, - "rounding": 0, - "code": "USD", - "namePlural": "US dollars" - } - }, - "phone": { - "description": "Phone", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Phone code.", - "example": "+1" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - } - }, - "required": [ - "code", - "countryCode", - "countryName" - ], - "example": { - "code": "+1", - "countryCode": "US", - "countryName": "United States" - } - }, - "metric": { - "description": "Metric", - "type": "object", - "properties": { - "value": { - "type": "integer", - "description": "The value of this metric at the timestamp.", - "format": "int32", - "example": 1 - }, - "date": { - "type": "string", - "description": "The date at which this metric was aggregated in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "value", - "date" - ], - "example": { - "value": 1, - "date": "2020-10-15T06:38:00.000+00:00" - } - }, - "usageUsers": { - "description": "UsageUsers", - "type": "object", - "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "example": "30d" - }, - "usersTotal": { - "type": "integer", - "description": "Total aggregated number of statistics of users.", - "format": "int32", - "example": 0 - }, - "sessionsTotal": { - "type": "integer", - "description": "Total aggregated number of active sessions.", - "format": "int32", - "example": 0 - }, - "users": { - "type": "array", - "description": "Aggregated number of users per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "sessions": { - "type": "array", - "description": "Aggregated number of active sessions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - } - }, - "required": [ - "range", - "usersTotal", - "sessionsTotal", - "users", - "sessions" - ], - "example": { - "range": "30d", - "usersTotal": 0, - "sessionsTotal": 0, - "users": [], - "sessions": [] - } - }, - "usagePresence": { - "description": "UsagePresence", - "type": "object", - "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "example": "30d" - }, - "usersOnlineTotal": { - "type": "integer", - "description": "Current total number of online users.", - "format": "int32", - "example": 0 - }, - "presences": { - "type": "array", - "description": "Aggregated number of online users per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - } - }, - "required": [ - "range", - "usersOnlineTotal", - "presences" - ], - "example": { - "range": "30d", - "usersOnlineTotal": 0, - "presences": [] - } - }, - "usageDataPoint": { - "description": "usageDataPoint", - "type": "object", - "properties": { - "time": { - "type": "string", - "description": "Bucket start timestamp in ISO 8601. Omitted for flat dimension aggregates.", - "example": "2026-04-09T12:00:00.000+00:00", - "nullable": true - }, - "value": { - "type": "number", - "description": "Aggregated value for the point.", - "format": "double", - "example": 5000 - }, - "path": { - "type": "string", - "description": "Value when broken down by `path`.", - "example": "\/v1\/storage\/files", - "nullable": true - }, - "method": { - "type": "string", - "description": "Value when broken down by `method`.", - "example": "POST", - "nullable": true - }, - "status": { - "type": "string", - "description": "Value when broken down by `status`.", - "example": "201", - "nullable": true - }, - "service": { - "type": "string", - "description": "Value when broken down by `service`.", - "example": "storage", - "nullable": true - }, - "country": { - "type": "string", - "description": "Value when broken down by `country`.", - "example": "us", - "nullable": true - }, - "region": { - "type": "string", - "description": "Value when broken down by `region`.", - "example": "default", - "nullable": true - }, - "hostname": { - "type": "string", - "description": "Value when broken down by `hostname`.", - "example": "app.example.com", - "nullable": true - }, - "ip": { - "type": "string", - "description": "Value when broken down by `ip`.", - "example": "192.0.2.44", - "nullable": true - }, - "protocol": { - "type": "string", - "description": "Value when broken down by `protocol`.", - "example": "https", - "nullable": true - }, - "accept": { - "type": "string", - "description": "Value when broken down by `accept`.", - "example": "application\/json", - "nullable": true - }, - "acceptLanguage": { - "type": "string", - "description": "Value when broken down by `acceptLanguage`.", - "example": "en-US", - "nullable": true - }, - "queryKeys": { - "type": "string", - "description": "Value when broken down by `queryKeys`.", - "example": "project,mode", - "nullable": true - }, - "osName": { - "type": "string", - "description": "Value when broken down by `osName`.", - "example": "iOS", - "nullable": true - }, - "clientType": { - "type": "string", - "description": "Value when broken down by `clientType`.", - "example": "browser", - "nullable": true - }, - "clientName": { - "type": "string", - "description": "Value when broken down by `clientName`.", - "example": "Chrome", - "nullable": true - }, - "sdk": { - "type": "string", - "description": "Value when broken down by `sdk`.", - "example": "web", - "nullable": true - }, - "sdkVersion": { - "type": "string", - "description": "Value when broken down by `sdkVersion`.", - "example": "14.0.0", - "nullable": true - }, - "deviceName": { - "type": "string", - "description": "Value when broken down by `deviceName`.", - "example": "smartphone", - "nullable": true - }, - "resourceId": { - "type": "string", - "description": "Value when broken down by `resourceId`.", - "example": "abc123", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "Value when broken down by `resourceType`.", - "example": "bucket", - "nullable": true - }, - "ordinal": { - "type": "string", - "description": "Value when broken down by `ordinal`.", - "example": "0", - "nullable": true - }, - "continentCode": { - "type": "string", - "description": "Continent code when broken down by `continentCode`.", - "example": "NA", - "nullable": true - }, - "city": { - "type": "string", - "description": "City name when broken down by `city`.", - "example": "Mountain View", - "nullable": true - }, - "subdivisions": { - "type": "string", - "description": "Region\/state chain when broken down by `subdivisions`.", - "example": "California", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Postal code when broken down by `postalCode`.", - "example": "94043", - "nullable": true - }, - "latitude": { - "type": "string", - "description": "Latitude when broken down by `latitude`.", - "example": "37.4223", - "nullable": true - }, - "longitude": { - "type": "string", - "description": "Longitude when broken down by `longitude`.", - "example": "-122.0848", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Time zone when broken down by `timeZone`.", - "example": "America\/Los_Angeles", - "nullable": true - }, - "weatherCode": { - "type": "string", - "description": "Weather station code when broken down by `weatherCode`.", - "example": "USCA0746", - "nullable": true - }, - "isp": { - "type": "string", - "description": "Internet service provider when broken down by `isp`.", - "example": "Google", - "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) when broken down by `autonomousSystemNumber`.", - "example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization owning the ASN when broken down by `autonomousSystemOrganization`.", - "example": "GOOGLE", - "nullable": true - }, - "connectionType": { - "type": "string", - "description": "Connection type when broken down by `connectionType`.", - "example": "cable", - "nullable": true - }, - "connectionUsageType": { - "type": "string", - "description": "Connection usage type when broken down by `connectionUsageType`.", - "example": "residential", - "nullable": true - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP when broken down by `connectionOrganization`.", - "example": "Google LLC", - "nullable": true - }, - "teamId": { - "type": "string", - "description": "Owning team ID when broken down by `teamId`.", - "example": "team_abc", - "nullable": true - } - }, - "required": [ - "value" - ], - "example": { - "time": "2026-04-09T12:00:00.000+00:00", - "value": 5000, - "path": "\/v1\/storage\/files", - "method": "POST", - "status": "201", - "service": "storage", - "country": "us", - "region": "default", - "hostname": "app.example.com", - "ip": "192.0.2.44", - "protocol": "https", - "accept": "application\/json", - "acceptLanguage": "en-US", - "queryKeys": "project,mode", - "osName": "iOS", - "clientType": "browser", - "clientName": "Chrome", - "sdk": "web", - "sdkVersion": "14.0.0", - "deviceName": "smartphone", - "resourceId": "abc123", - "resourceType": "bucket", - "ordinal": "0", - "continentCode": "NA", - "city": "Mountain View", - "subdivisions": "California", - "postalCode": "94043", - "latitude": "37.4223", - "longitude": "-122.0848", - "timeZone": "America\/Los_Angeles", - "weatherCode": "USCA0746", - "isp": "Google", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC", - "teamId": "team_abc" - } - }, - "usageMetric": { - "description": "usageMetric", - "type": "object", - "properties": { - "metric": { - "type": "string", - "description": "Metric key this series describes.", - "example": "files.storage" - }, - "points": { - "type": "array", - "description": "Data points in the requested order.", - "items": { - "$ref": "#\/components\/schemas\/usageDataPoint" - }, - "example": [] - } - }, - "required": [ - "metric", - "points" - ], - "example": { - "metric": "files.storage", - "points": "" - } - }, - "usageEventList": { - "description": "usageEventList", - "type": "object", - "properties": { - "interval": { - "type": "string", - "description": "Requested interval, or an empty string for a flat aggregate.", - "example": "1h" - }, - "metrics": { - "type": "array", - "description": "One series per requested event metric.", - "items": { - "$ref": "#\/components\/schemas\/usageMetric" - }, - "example": [] - } - }, - "required": [ - "interval", - "metrics" - ], - "example": { - "interval": "1h", - "metrics": "" - } - }, - "usageGaugeList": { - "description": "usageGaugeList", - "type": "object", - "properties": { - "interval": { - "type": "string", - "description": "Requested interval, or an empty string for a flat aggregate.", - "example": "1h" - }, - "metrics": { - "type": "array", - "description": "One series per requested gauge metric.", - "items": { - "$ref": "#\/components\/schemas\/usageMetric" - }, - "example": [] - } - }, - "required": [ - "interval", - "metrics" - ], - "example": { - "interval": "1h", - "metrics": "" - } - }, - "headers": { - "description": "Headers", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Header name.", - "example": "Content-Type" - }, - "value": { - "type": "string", - "description": "Header value.", - "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.", - "format": "int32", - "example": 512 - }, - "cpus": { - "type": "number", - "description": "Number of CPUs.", - "format": "double", - "example": 1 - }, - "enabled": { - "type": "boolean", - "description": "Is size enabled.", - "example": true - }, - "slug": { - "type": "string", - "description": "Size slug.", - "example": "s-1vcpu-512mb" - } - }, - "required": [ - "memory", - "cpus", - "enabled", - "slug" - ], - "example": { - "memory": 512, - "cpus": 1, - "enabled": true, - "slug": "s-1vcpu-512mb" - } - }, - "proxyRule": { - "description": "Rule", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Rule creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Rule update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "domain": { - "type": "string", - "description": "Domain name.", - "example": "appwrite.company.com" - }, - "type": { - "type": "string", - "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", - "example": "deployment" - }, - "trigger": { - "type": "string", - "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", - "example": "manual" - }, - "redirectUrl": { - "type": "string", - "description": "URL to redirect to. Used if type is \"redirect\"", - "example": "https:\/\/appwrite.io\/docs" - }, - "redirectStatusCode": { - "type": "integer", - "description": "Status code to apply during redirect. Used if type is \"redirect\"", - "format": "int32", - "example": 301 - }, - "deploymentId": { - "type": "string", - "description": "ID of deployment. Used if type is \"deployment\"", - "example": "n3u9feiwmf" - }, - "deploymentResourceType": { - "description": "Type of deployment resource: function, site, or dedicatedDatabase.", - "example": "function", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "function" - ], - "title": "function" - }, - { - "type": "string", - "enum": [ - "site" - ], - "title": "site" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabase" - ], - "title": "dedicatedDatabase" - } - ], - "nullable": true - }, - "deploymentResourceId": { - "type": "string", - "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", - "example": "n3u9feiwmf" - }, - "deploymentVcsProviderBranch": { - "type": "string", - "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", - "example": "main" - }, - "status": { - "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", - "example": "verified", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "unverified" - ], - "title": "unverified" - }, - { - "type": "string", - "enum": [ - "verifying" - ], - "title": "verifying" - }, - { - "type": "string", - "enum": [ - "verified" - ], - "title": "verified" - } - ] - }, - "logs": { - "type": "string", - "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", - "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." - }, - "renewAt": { - "type": "string", - "description": "Certificate auto-renewal date in ISO 8601 format.", - "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.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Schedule creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Schedule update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceType": { - "type": "string", - "description": "The resource type associated with this schedule.", - "example": "function" - }, - "resourceId": { - "type": "string", - "description": "The resource ID associated with this schedule.", - "example": "5e5ea5c16897e" - }, - "resourceUpdatedAt": { - "type": "string", - "description": "Change-tracking timestamp used by the scheduler to detect resource changes in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "The project ID associated with this schedule.", - "example": "5e5ea5c16897e" - }, - "schedule": { - "type": "string", - "description": "The CRON schedule expression.", - "example": "5 4 * * *" - }, - "data": { - "type": "object", - "additionalProperties": true, - "description": "Schedule data used to store resource-specific context needed for execution.", - "example": {} - }, - "active": { - "type": "boolean", - "description": "Whether the schedule is active.", - "example": true - }, - "region": { - "type": "string", - "description": "The region where the schedule is deployed.", - "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" - } - }, - "stage": { - "description": "Stage", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Stage ID.", - "example": "tablesDB.create" - }, - "sdk": { - "type": "string", - "description": "SDK method key (namespace.name) for this stage.", - "example": "tablesDB.create" - }, - "status": { - "type": "string", - "description": "Stage status.", - "example": "completed" - }, - "at": { - "type": "string", - "description": "When the stage was completed or skipped, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "actorType": { - "type": "string", - "description": "Actor type when the stage was recorded.", - "example": "user" - } - }, - "required": [ - "id", - "sdk", - "status", - "at", - "actorType" - ], - "example": { - "id": "tablesDB.create", - "sdk": "tablesDB.create", - "status": "completed", - "at": "2020-10-15T06:38:00.000+00:00", - "actorType": "user" - } - }, - "emailTemplate": { - "description": "EmailTemplate", - "type": "object", - "properties": { - "templateId": { - "type": "string", - "description": "Template type", - "example": "verification" - }, - "locale": { - "type": "string", - "description": "Template locale", - "example": "en_us" - }, - "message": { - "type": "string", - "description": "Template message", - "example": "Click on the link to verify your account." - }, - "senderName": { - "type": "string", - "description": "Name of the sender", - "example": "My User" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "example": "mail@appwrite.io" - }, - "replyToEmail": { - "type": "string", - "description": "Reply to email address", - "example": "emails@appwrite.io" - }, - "replyToName": { - "type": "string", - "description": "Reply to name", - "example": "Support Team" - }, - "subject": { - "type": "string", - "description": "Email subject", - "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.", - "example": "appwrite.io" - }, - "_APP_DOMAIN_TARGET_A": { - "type": "string", - "description": "A target for your Appwrite custom domains.", - "example": "127.0.0.1" - }, - "_APP_COMPUTE_BUILD_TIMEOUT": { - "type": "integer", - "description": "Maximum build timeout in seconds.", - "format": "int32", - "example": 900 - }, - "_APP_DOMAIN_TARGET_AAAA": { - "type": "string", - "description": "AAAA target for your Appwrite custom domains.", - "example": "::1" - }, - "_APP_DOMAIN_TARGET_CAA": { - "type": "string", - "description": "CAA target for your Appwrite custom domains.", - "example": "digicert.com" - }, - "_APP_STORAGE_LIMIT": { - "type": "integer", - "description": "Maximum file size allowed for file upload in bytes.", - "format": "int32", - "example": 30000000 - }, - "_APP_COMPUTE_SIZE_LIMIT": { - "type": "integer", - "description": "Maximum file size allowed for deployment in bytes.", - "format": "int32", - "example": 30000000 - }, - "_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'.", - "example": "enabled" - }, - "_APP_VCS_ENABLED": { - "type": "boolean", - "description": "Defines if VCS (Version Control System) is enabled.", - "example": true - }, - "_APP_VCS_PROVIDERS": { - "type": "array", - "description": "List of configured VCS providers.", - "items": { - "type": "string" - }, - "example": [ - "github" - ] - }, - "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": { - "type": "array", - "description": "List of configured VCS providers that support repository creation.", - "items": { - "type": "string" - }, - "example": [ - "github" - ] - }, - "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": { - "type": "array", - "description": "List of configured VCS providers that can host public repositories.", - "items": { - "type": "string" - }, - "example": [ - "github" - ] - }, - "_APP_DOMAIN_ENABLED": { - "type": "boolean", - "description": "Defines if main domain is configured. If so, custom domains can be created.", - "example": true - }, - "_APP_ASSISTANT_ENABLED": { - "type": "boolean", - "description": "Defines if AI assistant is enabled.", - "example": true - }, - "_APP_DOMAIN_SITES": { - "type": "string", - "description": "A comma separated list of domains to use for site URLs.", - "example": "sites.localhost,sites.example.com" - }, - "_APP_DOMAIN_FUNCTIONS": { - "type": "string", - "description": "A domain to use for function URLs.", - "example": "functions.localhost" - }, - "_APP_OPTIONS_FORCE_HTTPS": { - "type": "string", - "description": "Defines if HTTPS is enforced for all requests.", - "example": "enabled" - }, - "_APP_DOMAINS_NAMESERVERS": { - "type": "string", - "description": "Comma-separated list of nameservers.", - "example": "ns1.example.com,ns2.example.com" - }, - "_APP_DB_ADAPTER": { - "type": "string", - "description": "Database adapter in use.", - "example": "mysql" - }, - "supportForRelationships": { - "type": "boolean", - "description": "Whether the database adapter supports relationships.", - "example": true - }, - "supportForOperators": { - "type": "boolean", - "description": "Whether the database adapter supports operators.", - "example": true - }, - "supportForSpatials": { - "type": "boolean", - "description": "Whether the database adapter supports spatial attributes.", - "example": true - }, - "supportForSpatialIndexNull": { - "type": "boolean", - "description": "Whether the database adapter supports spatial indexes on nullable columns.", - "example": false - }, - "supportForFulltextWildcard": { - "type": "boolean", - "description": "Whether the database adapter supports fulltext wildcard search.", - "example": true - }, - "supportForMultipleFulltextIndexes": { - "type": "boolean", - "description": "Whether the database adapter supports multiple fulltext indexes per collection.", - "example": true - }, - "supportForAttributeResizing": { - "type": "boolean", - "description": "Whether the database adapter supports resizing attributes.", - "example": true - }, - "supportForSchemas": { - "type": "boolean", - "description": "Whether the database adapter supports fixed schemas with row width limits.", - "example": true - }, - "maxIndexLength": { - "type": "integer", - "description": "Maximum index length supported by the database adapter.", - "format": "int32", - "example": 768 - }, - "supportForIntegerIds": { - "type": "boolean", - "description": "Whether the database adapter uses integer sequence IDs.", - "example": true - }, - "_APP_CONSOLE_EMAIL_VERIFICATION": { - "type": "string", - "description": "Whether email verification for console users is required. Can be \"true\" or \"false\".", - "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_VCS_PROVIDERS", - "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION", - "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES", - "_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_VCS_PROVIDERS": [ - "github" - ], - "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": [ - "github" - ], - "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": [ - "github" - ], - "_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`).", - "example": "clientId" - }, - "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.", - "example": "Client ID or App ID" - }, - "example": { - "type": "string", - "description": "Example value for this parameter.", - "example": "e4d87900000000540733" - }, - "hint": { - "type": "string", - "description": "Optional hint for this parameter, typically calling out a common wrong value. Empty string when no hint is set.", - "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.", - "example": "github" - }, - "parameters": { - "type": "array", - "description": "List of parameters required to configure this OAuth2 provider.", - "items": { - "$ref": "#\/components\/schemas\/consoleOAuth2ProviderParameter" - }, - "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.", - "format": "int32", - "example": 5 - }, - "oAuth2Providers": { - "type": "array", - "description": "List of OAuth2 providers, each with the parameters required to configure it.", - "items": { - "$ref": "#\/components\/schemas\/consoleOAuth2Provider" - }, - "example": [] - } - }, - "required": [ - "total", - "oAuth2Providers" - ], - "example": { - "total": 5, - "oAuth2Providers": "" - } - }, - "consoleKeyScope": { - "description": "Console Key Scope", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Scope ID.", - "example": "users.read" - }, - "description": { - "type": "string", - "description": "Scope description.", - "example": "Access to read your project's users" - }, - "category": { - "type": "string", - "description": "Scope category.", - "example": "Auth" - }, - "deprecated": { - "type": "boolean", - "description": "Scope is deprecated.", - "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.", - "format": "int32", - "example": 5 - }, - "scopes": { - "type": "array", - "description": "List of key scopes, each with its ID and description.", - "items": { - "$ref": "#\/components\/schemas\/consoleKeyScope" - }, - "example": [] - } - }, - "required": [ - "total", - "scopes" - ], - "example": { - "total": 5, - "scopes": "" - } - }, - "mfaChallenge": { - "description": "MFA Challenge", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "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" - } - }, - "mfaChallengeSecret": { - "description": "MFA Challenge Secret", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "code": { - "type": "string", - "description": "Challenge code to be delivered to the end user through a custom channel.", - "example": "446372" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "expire", - "code" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "expire": "2020-10-15T06:38:00.000+00:00", - "code": "446372" - } - }, - "mfaRecoveryCodes": { - "description": "MFA Recovery Codes", - "type": "object", - "properties": { - "recoveryCodes": { - "type": "array", - "description": "Recovery codes.", - "items": { - "type": "string" - }, - "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.", - "example": "[SHARED_SECRET]" - }, - "uri": { - "type": "string", - "description": "URI for authenticator apps.", - "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.", - "example": true - }, - "phone": { - "type": "boolean", - "description": "Can phone (SMS) be used for MFA challenge for this account.", - "example": true - }, - "email": { - "type": "boolean", - "description": "Can email be used for MFA challenge for this account.", - "example": true - }, - "recoveryCode": { - "type": "boolean", - "description": "Can recovery code be used for MFA challenge for this account.", - "example": true - }, - "custom": { - "type": "boolean", - "description": "Can custom factor be used for MFA challenge for this account.", - "example": true - } - }, - "required": [ - "totp", - "phone", - "email", - "recoveryCode", - "custom" - ], - "example": { - "totp": true, - "phone": true, - "email": true, - "recoveryCode": true, - "custom": true - } - }, - "provider": { - "description": "Provider", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Provider ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Provider creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Provider update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "The name for the provider instance.", - "example": "Mailgun" - }, - "provider": { - "type": "string", - "description": "The name of the provider service.", - "example": "mailgun" - }, - "enabled": { - "type": "boolean", - "description": "Is provider enabled?", - "example": true - }, - "type": { - "type": "string", - "description": "Type of provider.", - "example": "sms" - }, - "credentials": { - "type": "object", - "additionalProperties": true, - "description": "Provider credentials.", - "example": { - "key": "123456789" - } - }, - "options": { - "type": "object", - "additionalProperties": true, - "description": "Provider options.", - "example": { - "from": "sender-email@mydomain" - } - } - }, - "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" - }, - "options": { - "from": "sender-email@mydomain" - } - } - }, - "message": { - "description": "Message", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Message ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Message creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Message update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerType": { - "type": "string", - "description": "Message provider type.", - "example": "email" - }, - "topics": { - "type": "array", - "description": "Topic IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "users": { - "type": "array", - "description": "User IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "targets": { - "type": "array", - "description": "Target IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "scheduledAt": { - "type": "string", - "description": "The scheduled time for message.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "deliveredAt": { - "type": "string", - "description": "The time when the message was delivered.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "deliveryErrors": { - "type": "array", - "description": "Delivery errors if any.", - "items": { - "type": "string" - }, - "example": [ - "Failed to send message to target 5e5ea5c16897e: Credentials not valid." - ], - "nullable": true - }, - "deliveredTotal": { - "type": "integer", - "description": "Number of recipients the message was delivered to.", - "format": "int32", - "example": 1 - }, - "data": { - "type": "object", - "additionalProperties": true, - "description": "Data of the message.", - "example": { - "subject": "Welcome to Appwrite", - "content": "Hi there, welcome to Appwrite family." - } - }, - "status": { - "description": "Status of delivery.", - "example": "processing", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "draft" - ], - "title": "draft" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "scheduled" - ], - "title": "scheduled" - }, - { - "type": "string", - "enum": [ - "sent" - ], - "title": "sent" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "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." - }, - "status": "processing" - } - }, - "topic": { - "description": "Topic", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Topic ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Topic creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Topic update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "The name of the topic.", - "example": "events" - }, - "emailTotal": { - "type": "integer", - "description": "Total count of email subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "smsTotal": { - "type": "integer", - "description": "Total count of SMS subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "pushTotal": { - "type": "integer", - "description": "Total count of push subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "subscribe": { - "type": "array", - "description": "Subscribe permissions.", - "items": { - "type": "string" - }, - "example": [ - "users" - ] - }, - "qos": { - "type": "integer", - "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", - "format": "int32", - "example": 1, - "nullable": true - }, - "expiry": { - "type": "integer", - "description": "Message retention in seconds for offline delivery.", - "format": "int32", - "example": 604800, - "nullable": true - } - }, - "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", - "qos": 1, - "expiry": 604800 - } - }, - "transaction": { - "description": "Transaction", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Transaction ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Transaction creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Transaction update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "string", - "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", - "example": "pending" - }, - "operations": { - "type": "integer", - "description": "Number of operations in the transaction.", - "format": "int32", - "example": 5 - }, - "expiresAt": { - "type": "string", - "description": "Expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "status", - "operations", - "expiresAt" - ], - "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" - } - }, - "subscriber": { - "description": "Subscriber", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Subscriber ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Subscriber creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Subscriber update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "targetId": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "target": { - "type": "object", - "description": "Target.", - "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" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/target" - } - ] - }, - "userId": { - "type": "string", - "description": "Topic ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User Name.", - "example": "Aegon Targaryen" - }, - "topicId": { - "type": "string", - "description": "Topic ID.", - "example": "259125845563242502" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "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" - }, - "userId": "5e5ea5c16897e", - "userName": "Aegon Targaryen", - "topicId": "259125845563242502", - "providerType": "email" - } - }, - "target": { - "description": "Target", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Target creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Target update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Target Name.", - "example": "Apple iPhone 12" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "259125845563242502" - }, - "providerId": { - "type": "string", - "description": "Provider ID.", - "example": "259125845563242502", - "nullable": true - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "example": "email" - }, - "identifier": { - "type": "string", - "description": "The target identifier.", - "example": "token" - }, - "expired": { - "type": "boolean", - "description": "Is the target expired.", - "example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "userId", - "providerType", - "identifier", - "expired" - ], - "example": { - "$id": "259125845563242502", - "$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 - } - }, - "migration": { - "description": "Migration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Migration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Migration creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "string", - "description": "Migration status ( pending, processing, failed, completed ) ", - "example": "pending" - }, - "stage": { - "type": "string", - "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", - "example": "init" - }, - "source": { - "type": "string", - "description": "A string containing the type of source of the migration.", - "example": "Appwrite" - }, - "destination": { - "type": "string", - "description": "A string containing the type of destination of the migration.", - "example": "Appwrite" - }, - "resources": { - "type": "array", - "description": "Resources to migrate.", - "items": { - "type": "string" - }, - "example": [ - "user" - ] - }, - "resourceId": { - "type": "string", - "description": "ID of the resource being migrated.", - "example": "collectionId" - }, - "resourceInternalId": { - "type": "string", - "description": "Internal ID of the resource being migrated.", - "example": "1" - }, - "resourceType": { - "type": "string", - "description": "Type of the resource being migrated.", - "example": "collection" - }, - "parentResourceId": { - "type": "string", - "description": "ID of the parent resource that contains the migrated resource.", - "example": "databaseId" - }, - "parentResourceInternalId": { - "type": "string", - "description": "Internal ID of the parent resource that contains the migrated resource.", - "example": "1" - }, - "parentResourceType": { - "type": "string", - "description": "Type of the parent resource that contains the migrated resource.", - "example": "database" - }, - "destinationResourceId": { - "type": "string", - "description": "ID of the destination resource created or overwritten by the migration.", - "example": "databaseId" - }, - "destinationResourceInternalId": { - "type": "string", - "description": "Internal ID of the destination resource created or overwritten by the migration.", - "example": "1" - }, - "destinationResourceType": { - "type": "string", - "description": "Type of the destination resource created or overwritten by the migration.", - "example": "database" - }, - "statusCounters": { - "type": "object", - "additionalProperties": true, - "description": "A group of counters that represent the total progress of the migration.", - "example": { - "Database": { - "PENDING": 0, - "SUCCESS": 1, - "ERROR": 0, - "SKIP": 0, - "PROCESSING": 0, - "WARNING": 0 - } - } - }, - "resourceData": { - "type": "array", - "description": "An array of objects containing the report data of the resources that were migrated.", - "items": { - "type": "object" - }, - "example": [ - { - "resource": "Database", - "id": "public", - "status": "SUCCESS", - "message": "" - } - ] - }, - "errors": { - "type": "array", - "description": "All errors that occurred during the migration process.", - "items": { - "type": "string" - }, - "example": [] - }, - "options": { - "type": "object", - "additionalProperties": true, - "description": "Migration options used during the migration process.", - "example": { - "bucketId": "exports", - "notify": false - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "status", - "stage", - "source", - "destination", - "resources", - "resourceId", - "resourceInternalId", - "resourceType", - "parentResourceId", - "parentResourceInternalId", - "parentResourceType", - "destinationResourceId", - "destinationResourceInternalId", - "destinationResourceType", - "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", - "status": "pending", - "stage": "init", - "source": "Appwrite", - "destination": "Appwrite", - "resources": [ - "user" - ], - "resourceId": "collectionId", - "resourceInternalId": "1", - "resourceType": "collection", - "parentResourceId": "databaseId", - "parentResourceInternalId": "1", - "parentResourceType": "database", - "destinationResourceId": "databaseId", - "destinationResourceInternalId": "1", - "destinationResourceType": "database", - "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}" - } - }, - "migrationReport": { - "description": "Migration Report", - "type": "object", - "properties": { - "user": { - "type": "integer", - "description": "Number of users to be migrated.", - "format": "int32", - "example": 20 - }, - "team": { - "type": "integer", - "description": "Number of teams to be migrated.", - "format": "int32", - "example": 20 - }, - "database": { - "type": "integer", - "description": "Number of databases to be migrated.", - "format": "int32", - "example": 20 - }, - "row": { - "type": "integer", - "description": "Number of rows to be migrated.", - "format": "int32", - "example": 20 - }, - "file": { - "type": "integer", - "description": "Number of files to be migrated.", - "format": "int32", - "example": 20 - }, - "bucket": { - "type": "integer", - "description": "Number of buckets to be migrated.", - "format": "int32", - "example": 20 - }, - "function": { - "type": "integer", - "description": "Number of functions to be migrated.", - "format": "int32", - "example": 20 - }, - "platform": { - "type": "integer", - "description": "Number of platforms to be migrated.", - "format": "int32", - "example": 5 - }, - "api-key": { - "type": "integer", - "description": "Number of API keys to be migrated.", - "format": "int32", - "example": 5 - }, - "project-variable": { - "type": "integer", - "description": "Number of project variables to be migrated.", - "format": "int32", - "example": 5 - }, - "webhook": { - "type": "integer", - "description": "Number of webhooks to be migrated.", - "format": "int32", - "example": 5 - }, - "auth-methods": { - "type": "integer", - "description": "Number of auth-method configs to be migrated (always 0 or 1 \u2014 the project-level flag bundle).", - "format": "int32", - "example": 1 - }, - "project-protocols": { - "type": "integer", - "description": "Number of protocol configs to be migrated (always 0 or 1 \u2014 the project-level REST\/GraphQL\/WebSocket flags).", - "format": "int32", - "example": 1 - }, - "project-labels": { - "type": "integer", - "description": "Number of label sets to be migrated (always 0 or 1 \u2014 the project-level RBAC label array).", - "format": "int32", - "example": 1 - }, - "project-services": { - "type": "integer", - "description": "Number of service configs to be migrated (always 0 or 1 \u2014 the project-level enable\/disable flags for all 17 services).", - "format": "int32", - "example": 1 - }, - "policies": { - "type": "integer", - "description": "Number of policy bundles to be migrated (always 0 or 1 \u2014 the project-level security policies covering password rules, session behavior, user limits, and membership privacy).", - "format": "int32", - "example": 1 - }, - "smtp": { - "type": "integer", - "description": "Number of SMTP configurations to be migrated (always 0 or 1 \u2014 the project-level custom SMTP settings; password is not exposed by the source API).", - "format": "int32", - "example": 1 - }, - "rule": { - "type": "integer", - "description": "Number of custom-domain proxy rules to be migrated. Auto-generated `.appwrite.network` rules are skipped \u2014 they are recreated by parent Function\/Site migration.", - "format": "int32", - "example": 5 - }, - "project-email-template": { - "type": "integer", - "description": "Number of custom email templates to be migrated (one per templateId \u00d7 locale pair).", - "format": "int32", - "example": 7 - }, - "site": { - "type": "integer", - "description": "Number of sites to be migrated.", - "format": "int32", - "example": 5 - }, - "provider": { - "type": "integer", - "description": "Number of providers to be migrated.", - "format": "int32", - "example": 5 - }, - "topic": { - "type": "integer", - "description": "Number of topics to be migrated.", - "format": "int32", - "example": 10 - }, - "subscriber": { - "type": "integer", - "description": "Number of subscribers to be migrated.", - "format": "int32", - "example": 100 - }, - "message": { - "type": "integer", - "description": "Number of messages to be migrated.", - "format": "int32", - "example": 50 - }, - "size": { - "type": "integer", - "description": "Size of files to be migrated in mb.", - "format": "int32", - "example": 30000 - }, - "version": { - "type": "string", - "description": "Version of the Appwrite instance to be migrated.", - "example": "1.4.0" - }, - "oauth2-provider": { - "type": "integer", - "description": "Number of OAuth2 provider configurations to be migrated. Secrets (clientSecret, p8File) are never migrated \u2014 destination admin must re-enter them per provider.", - "format": "int32", - "example": 5 - }, - "backup-policy": { - "type": "integer", - "description": "Number of backup policies to be migrated.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "user", - "team", - "database", - "row", - "file", - "bucket", - "function", - "platform", - "api-key", - "project-variable", - "webhook", - "auth-methods", - "project-protocols", - "project-labels", - "project-services", - "policies", - "smtp", - "rule", - "project-email-template", - "site", - "provider", - "topic", - "subscriber", - "message", - "size", - "version", - "oauth2-provider", - "backup-policy" - ], - "example": { - "user": 20, - "team": 20, - "database": 20, - "row": 20, - "file": 20, - "bucket": 20, - "function": 20, - "platform": 5, - "api-key": 5, - "project-variable": 5, - "webhook": 5, - "auth-methods": 1, - "project-protocols": 1, - "project-labels": 1, - "project-services": 1, - "policies": 1, - "smtp": 1, - "rule": 5, - "project-email-template": 7, - "site": 5, - "provider": 5, - "topic": 10, - "subscriber": 100, - "message": 50, - "size": 30000, - "version": "1.4.0", - "oauth2-provider": 5, - "backup-policy": 5 - } - }, - "insight": { - "description": "Insight", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Insight ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Insight creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Insight update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "reportId": { - "type": "string", - "description": "Parent report ID. Insights always belong to a report.", - "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).", - "example": "tablesDBIndex" - }, - "severity": { - "type": "string", - "description": "Insight severity. One of info, warning, critical.", - "example": "warning" - }, - "status": { - "type": "string", - "description": "Insight status. One of active, dismissed.", - "example": "active" - }, - "resourceType": { - "type": "string", - "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", - "example": "databases" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource the insight is about.", - "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.", - "example": "tables" - }, - "parentResourceId": { - "type": "string", - "description": "ID of the parent resource. Empty when the resource has no parent.", - "example": "orders" - }, - "title": { - "type": "string", - "description": "Insight title.", - "example": "Missing index on collection orders" - }, - "summary": { - "type": "string", - "description": "Short markdown summary describing the insight.", - "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" - }, - "example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the insight was analyzed in ISO 8601 format.", - "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.", - "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.", - "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.", - "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.", - "example": "tablesDB" - }, - "method": { - "type": "string", - "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", - "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).", - "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.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Report creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Report update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the third-party app that submitted the report.", - "example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", - "example": "lighthouse" - }, - "title": { - "type": "string", - "description": "Short, human-readable title for the report.", - "example": "Lighthouse audit for https:\/\/appwrite.io\/" - }, - "summary": { - "type": "string", - "description": "Markdown summary describing the report.", - "example": "Performance score 78. 4 opportunities found." - }, - "targetType": { - "type": "string", - "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", - "example": "urls" - }, - "target": { - "type": "string", - "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", - "example": "https:\/\/appwrite.io\/" - }, - "categories": { - "type": "array", - "description": "Categories covered by the report, e.g. performance, accessibility.", - "items": { - "type": "string" - }, - "example": [ - "performance", - "accessibility" - ] - }, - "insights": { - "type": "array", - "description": "Insights nested under this report.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the report was analyzed in ISO 8601 format.", - "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.", - "example": "5e5ea5c16897e" - }, - "actorType": { - "type": "string", - "description": "Actor type.", - "example": "user" - }, - "actorId": { - "type": "string", - "description": "Actor ID.", - "example": "610fc2f985ee0" - }, - "actorEmail": { - "type": "string", - "description": "Actor Email.", - "example": "john@appwrite.io" - }, - "actorName": { - "type": "string", - "description": "Actor Name.", - "example": "John Doe" - }, - "resourceParent": { - "type": "string", - "description": "Resource parent.", - "example": "database\/ID" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "collection" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "610fc2f985ee0" - }, - "resource": { - "type": "string", - "description": "Resource.", - "example": "collections\/610fc2f985ee0" - }, - "event": { - "type": "string", - "description": "Event name.", - "example": "account.sessions.create" - }, - "userAgent": { - "type": "string", - "description": "User agent.", - "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.", - "example": "127.0.0.1" - }, - "mode": { - "type": "string", - "description": "API mode when event triggered.", - "example": "admin" - }, - "country": { - "type": "string", - "description": "Location.", - "example": "US" - }, - "continentCode": { - "type": "string", - "description": "Continent code.", - "example": "NA" - }, - "city": { - "type": "string", - "description": "City name.", - "example": "Mountain View" - }, - "subdivisions": { - "type": "string", - "description": "Region\/state chain.", - "example": "California" - }, - "isp": { - "type": "string", - "description": "Internet service provider.", - "example": "Google" - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN).", - "example": "15169" - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN.", - "example": "GOOGLE" - }, - "connectionType": { - "type": "string", - "description": "Connection type (e.g. cable, cellular, corporate).", - "example": "cable" - }, - "connectionUsageType": { - "type": "string", - "description": "User type (e.g. residential, business, hosting).", - "example": "residential" - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP.", - "example": "Google LLC" - }, - "time": { - "type": "string", - "description": "Log creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "610fc2f985ee0" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "610fc2f985ee0" - }, - "hostname": { - "type": "string", - "description": "Hostname.", - "example": "appwrite.io" - }, - "sdk": { - "type": "string", - "description": "Name of the SDK that triggered the event.", - "example": "web" - }, - "sdkVersion": { - "type": "string", - "description": "Version of the SDK that triggered the event.", - "example": "14.0.0" - } - }, - "required": [ - "$id", - "actorType", - "actorId", - "actorEmail", - "actorName", - "resourceParent", - "resourceType", - "resourceId", - "resource", - "event", - "userAgent", - "ip", - "mode", - "country", - "continentCode", - "city", - "subdivisions", - "isp", - "autonomousSystemNumber", - "autonomousSystemOrganization", - "connectionType", - "connectionUsageType", - "connectionOrganization", - "time", - "projectId", - "teamId", - "hostname", - "sdk", - "sdkVersion" - ], - "example": { - "$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", - "continentCode": "NA", - "city": "Mountain View", - "subdivisions": "California", - "isp": "Google", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC", - "time": "2020-10-15T06:38:00.000+00:00", - "projectId": "610fc2f985ee0", - "teamId": "610fc2f985ee0", - "hostname": "appwrite.io", - "sdk": "web", - "sdkVersion": "14.0.0" - } - }, - "additionalResource": { - "description": "AdditionalResource", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Resource name", - "example": "" - }, - "unit": { - "type": "string", - "description": "Resource unit", - "example": "GB" - }, - "currency": { - "type": "string", - "description": "Price currency", - "example": "USD" - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 5 - }, - "value": { - "type": "integer", - "description": "Resource value", - "format": "int32", - "example": 25 - }, - "invoiceDesc": { - "type": "string", - "description": "Description on invoice", - "example": "" - } - }, - "required": [ - "name", - "unit", - "currency", - "price", - "value", - "invoiceDesc" - ], - "example": { - "name": "", - "unit": "GB", - "currency": "USD", - "price": 5, - "value": 25, - "invoiceDesc": "" - } - }, - "addon": { - "description": "Addon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Addon ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Addon creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Addon update date in ISO 8601 format.", - "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" - }, - "example": [ - "read(\"any\")" - ] - }, - "key": { - "type": "string", - "description": "Addon key", - "example": "baa" - }, - "resourceType": { - "type": "string", - "description": "Resource type (organization or project)", - "example": "organization" - }, - "resourceId": { - "type": "string", - "description": "Resource ID", - "example": "5e5ea5c16897e" - }, - "status": { - "type": "string", - "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", - "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.", - "format": "int32", - "example": 1 - }, - "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.", - "format": "int32", - "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.", - "example": "baa" - }, - "name": { - "type": "string", - "description": "Addon display name.", - "example": "HIPAA BAA" - }, - "monthlyPrice": { - "type": "number", - "description": "Full monthly price of the addon.", - "format": "double", - "example": 350 - }, - "proratedAmount": { - "type": "number", - "description": "Calculated prorated amount for the current billing cycle.", - "format": "double", - "example": 175.5 - }, - "remainingDays": { - "type": "integer", - "description": "Days remaining in the current billing cycle.", - "format": "int32", - "example": 15 - }, - "totalCycleDays": { - "type": "integer", - "description": "Total days in the billing cycle.", - "format": "int32", - "example": 30 - }, - "currency": { - "type": "string", - "description": "Currency code.", - "example": "USD" - }, - "billingCycleEnd": { - "type": "string", - "description": "When the current billing cycle ends.", - "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" - } - }, - "affiliateLink": { - "description": "AffiliateLink", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Link ID. This is the shareable referral code.", - "example": "my-campaign" - }, - "$createdAt": { - "type": "string", - "description": "Link creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Link update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID of the link owner.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Optional link name.", - "example": "Launch campaign" - }, - "status": { - "type": "string", - "description": "Link status. Can be one of `active` or `disabled`.", - "example": "active" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "name", - "status" - ], - "example": { - "$id": "my-campaign", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "name": "Launch campaign", - "status": "active" - } - }, - "affiliateLinkList": { - "description": "Affiliate links list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of links that matched your query.", - "format": "int32", - "example": 5 - }, - "links": { - "type": "array", - "description": "List of links.", - "items": { - "$ref": "#\/components\/schemas\/affiliateLink" - }, - "example": [] - } - }, - "required": [ - "total", - "links" - ], - "example": { - "total": 5, - "links": "" - } - }, - "affiliateReferral": { - "description": "AffiliateReferral", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Referral ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Referral creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Referral update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "linkId": { - "type": "string", - "description": "Affiliate link ID used for attribution.", - "example": "my-campaign" - }, - "referredUserMaskedId": { - "type": "string", - "description": "Privacy-safe truncated referred user ID.", - "example": "****97e" - }, - "referredUserCountry": { - "type": "string", - "description": "ISO 3166-1 alpha-2 country code of the referred user at signup, when available.", - "example": "us" - }, - "status": { - "type": "string", - "description": "Referral status. Can be one of `pending`, `converted`, or `expired`. `expired` is derived from `expiresAt` when still pending.", - "example": "pending" - }, - "attributedAt": { - "type": "string", - "description": "Attribution time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "expiresAt": { - "type": "string", - "description": "Attribution expiry time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "convertedAt": { - "type": "string", - "description": "Conversion time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "linkId", - "referredUserMaskedId", - "referredUserCountry", - "status", - "attributedAt", - "expiresAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "linkId": "my-campaign", - "referredUserMaskedId": "****97e", - "referredUserCountry": "us", - "status": "pending", - "attributedAt": "2020-10-15T06:38:00.000+00:00", - "expiresAt": "2020-10-15T06:38:00.000+00:00", - "convertedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "affiliateReferralList": { - "description": "Affiliate referrals list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of referrals that matched your query.", - "format": "int32", - "example": 5 - }, - "referrals": { - "type": "array", - "description": "List of referrals.", - "items": { - "$ref": "#\/components\/schemas\/affiliateReferral" - }, - "example": [] - } - }, - "required": [ - "total", - "referrals" - ], - "example": { - "total": 5, - "referrals": "" - } - }, - "affiliateReward": { - "description": "AffiliateReward", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Reward ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Reward creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Reward update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID of the reward owner.", - "example": "5e5ea5c16897e" - }, - "linkId": { - "type": "string", - "description": "Affiliate link ID that earned this reward.", - "example": "my-campaign" - }, - "referralId": { - "type": "string", - "description": "Referral ID that earned this reward.", - "example": "5e5ea5c16897e" - }, - "amount": { - "type": "number", - "description": "Reward amount in USD.", - "format": "double", - "example": 10 - }, - "status": { - "type": "string", - "description": "Reward status. Can be one of `pending` or `claimed`.", - "example": "pending" - }, - "teamId": { - "type": "string", - "description": "Organization ID the reward was claimed on.", - "example": "5e5ea5c16897e", - "nullable": true - }, - "creditId": { - "type": "string", - "description": "Credit document ID created when the reward was claimed.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "linkId", - "referralId", - "amount", - "status" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "linkId": "my-campaign", - "referralId": "5e5ea5c16897e", - "amount": 10, - "status": "pending", - "teamId": "5e5ea5c16897e", - "creditId": "5e5ea5c16897e" - } - }, - "affiliateRewardList": { - "description": "Affiliate rewards list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rewards that matched your query.", - "format": "int32", - "example": 5 - }, - "rewards": { - "type": "array", - "description": "List of rewards.", - "items": { - "$ref": "#\/components\/schemas\/affiliateReward" - }, - "example": [] - } - }, - "required": [ - "total", - "rewards" - ], - "example": { - "total": 5, - "rewards": "" - } - }, - "aggregationBreakdown": { - "description": "Breakdown", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Aggregation ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Project name", - "example": "" - }, - "region": { - "type": "string", - "description": "Project region", - "example": "fra" - }, - "amount": { - "type": "integer", - "description": "Aggregated amount", - "format": "int32", - "example": 2 - }, - "resources": { - "type": "array", - "description": "", - "items": { - "$ref": "#\/components\/schemas\/usageResources" - }, - "example": [] - } - }, - "required": [ - "$id", - "name", - "region", - "amount", - "resources" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "", - "region": "fra", - "amount": 2, - "resources": "" - } - }, - "analyticsMetric": { - "description": "AnalyticsMetric", - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", - "example": "google.com", - "nullable": true - }, - "date": { - "type": "string", - "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", - "example": "2026-05-01T00:00:00.000+00:00", - "nullable": true - }, - "visitors": { - "type": "integer", - "description": "Unique visitors in the requested range.", - "format": "int32", - "example": 1234 - }, - "sessions": { - "type": "integer", - "description": "Unique sessions in the requested range.", - "format": "int32", - "example": 4567 - }, - "pageviews": { - "type": "integer", - "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "int32", - "example": 5678, - "nullable": true - }, - "events": { - "type": "integer", - "description": "Total events in the requested range.", - "format": "int32", - "example": 8910 - }, - "visits": { - "type": "integer", - "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "int32", - "example": 2345, - "nullable": true - }, - "bounceRate": { - "type": "number", - "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 42.5, - "nullable": true - }, - "visitDuration": { - "type": "number", - "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 75.4, - "nullable": true - }, - "viewsPerVisit": { - "type": "number", - "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 2.7, - "nullable": true - }, - "scrollDepth": { - "type": "number", - "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 65, - "nullable": true - }, - "engagementTime": { - "type": "number", - "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 18432, - "nullable": true - } - }, - "required": [ - "visitors", - "sessions", - "events" - ], - "example": { - "value": "google.com", - "date": "2026-05-01T00:00:00.000+00:00", - "visitors": 1234, - "sessions": 4567, - "pageviews": 5678, - "events": 8910, - "visits": 2345, - "bounceRate": 42.5, - "visitDuration": 75.4, - "viewsPerVisit": 2.7, - "scrollDepth": 65, - "engagementTime": 18432 - } - }, - "analyticsMetricList": { - "description": "AnalyticsMetricList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of metric rows returned.", - "format": "int32", - "example": 30 - }, - "metrics": { - "type": "array", - "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", - "items": { - "$ref": "#\/components\/schemas\/analyticsMetric" - }, - "example": [] - } - }, - "required": [ - "total", - "metrics" - ], - "example": { - "total": 30, - "metrics": [] - } - }, - "analyticsProperty": { - "description": "AnalyticsProperty", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Analytics property ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Property creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Property update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human-readable name of the tracked website or application.", - "example": "My Website" - }, - "domain": { - "type": "string", - "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", - "example": "example.com" - }, - "timezone": { - "type": "string", - "description": "IANA timezone used to define the daily boundary for stats.", - "example": "UTC" - }, - "enabled": { - "type": "boolean", - "description": "Whether tracking is currently active.", - "example": true - }, - "public": { - "type": "boolean", - "description": "Whether stats for this property are publicly viewable.", - "example": false - }, - "allowedOrigins": { - "type": "array", - "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com" - ] - }, - "snippetId": { - "type": "string", - "description": "Unique identifier for the tracking script snippet.", - "example": "snp_a1b2c3d4e5" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "domain", - "timezone", - "enabled", - "public", - "allowedOrigins", - "snippetId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Website", - "domain": "example.com", - "timezone": "UTC", - "enabled": true, - "public": false, - "allowedOrigins": [ - "https:\/\/example.com" - ], - "snippetId": "snp_a1b2c3d4e5" - } - }, - "aggregationTeam": { - "description": "Team", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Aggregation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Aggregation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Aggregation update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Aggregation permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "from": { - "type": "string", - "description": "Beginning date of the invoice", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "to": { - "type": "string", - "description": "End date of the invoice", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "usageStorage": { - "type": "integer", - "description": "Total storage usage", - "format": "int32", - "example": 20009090 - }, - "usageTotalStorage": { - "type": "integer", - "description": "Total storage usage with builds storage", - "format": "int32", - "example": 20009090 - }, - "usageFilesStorage": { - "type": "integer", - "description": "Total files storage usage", - "format": "int32", - "example": 20009090 - }, - "usageDeploymentsStorage": { - "type": "integer", - "description": "Total deployments storage usage", - "format": "int32", - "example": 20009090 - }, - "usageBuildsStorage": { - "type": "integer", - "description": "Total builds storage usage", - "format": "int32", - "example": 20009090 - }, - "usageDatabasesStorage": { - "type": "integer", - "description": "Total databases storage usage", - "format": "int32", - "example": 2009090 - }, - "usageFunctionsStorage": { - "type": "integer", - "description": "Total functions storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", - "format": "int32", - "example": 20009090 - }, - "usageSitesStorage": { - "type": "integer", - "description": "Total sites storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", - "format": "int32", - "example": 20009090 - }, - "usageUsers": { - "type": "integer", - "description": "Total active users for the billing period", - "format": "int32", - "example": 2000 - }, - "usageExecutions": { - "type": "integer", - "description": "Total number of executions for the billing period", - "format": "int32", - "example": 2000 - }, - "usageBandwidth": { - "type": "integer", - "description": "Total bandwidth usage for the billing period", - "format": "int32", - "example": 2000 - }, - "usageRealtime": { - "type": "integer", - "description": "Peak concurrent realtime connections for the billing period", - "format": "int32", - "example": 200 - }, - "usageRealtimeMessages": { - "type": "integer", - "description": "Total realtime messages sent for the billing period", - "format": "int32", - "example": 10000 - }, - "usageRealtimeBandwidth": { - "type": "integer", - "description": "Total realtime bandwidth usage for the billing period", - "format": "int32", - "example": 5000000 - }, - "additionalMembers": { - "type": "integer", - "description": "Additional members", - "format": "int32", - "example": 5 - }, - "additionalMemberAmount": { - "type": "integer", - "description": "Additional members cost", - "format": "int32", - "example": 30 - }, - "additionalStorageAmount": { - "type": "integer", - "description": "Additional storage usage cost", - "format": "int32", - "example": 40 - }, - "additionalUsersAmount": { - "type": "integer", - "description": "Additional users usage cost.", - "format": "int32", - "example": 4 - }, - "additionalExecutionsAmount": { - "type": "integer", - "description": "Additional executions usage cost", - "format": "int32", - "example": 30 - }, - "additionalBandwidthAmount": { - "type": "integer", - "description": "Additional bandwidth usage cost", - "format": "int32", - "example": 40 - }, - "additionalRealtimeAmount": { - "type": "integer", - "description": "Additional realtime usage cost", - "format": "int32", - "example": 20 - }, - "plan": { - "type": "string", - "description": "Billing plan", - "example": "tier-0" - }, - "amount": { - "type": "integer", - "description": "Aggregated amount", - "format": "int32", - "example": 2 - }, - "breakdown": { - "type": "array", - "description": "Aggregation project breakdown", - "items": { - "$ref": "#\/components\/schemas\/aggregationBreakdown" - }, - "example": [] - }, - "resources": { - "type": "array", - "description": "Usage resources", - "items": { - "$ref": "#\/components\/schemas\/usageResources" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "from", - "to", - "usageStorage", - "usageTotalStorage", - "usageFilesStorage", - "usageDeploymentsStorage", - "usageBuildsStorage", - "usageDatabasesStorage", - "usageFunctionsStorage", - "usageSitesStorage", - "usageUsers", - "usageExecutions", - "usageBandwidth", - "usageRealtime", - "usageRealtimeMessages", - "usageRealtimeBandwidth", - "additionalMembers", - "additionalMemberAmount", - "additionalStorageAmount", - "additionalUsersAmount", - "additionalExecutionsAmount", - "additionalBandwidthAmount", - "additionalRealtimeAmount", - "plan", - "amount", - "breakdown", - "resources" - ], - "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, - "usageFunctionsStorage": 20009090, - "usageSitesStorage": 20009090, - "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": [] - } - }, - "backupArchive": { - "description": "Archive", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Archive ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Archive creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Archive update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "policyId": { - "type": "string", - "description": "Archive policy ID.", - "example": "did8jx6ws45jana098ab7" - }, - "size": { - "type": "integer", - "description": "Archive size in bytes. Null until the size is known.", - "format": "int32", - "example": 100000, - "nullable": true - }, - "status": { - "type": "string", - "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", - "example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The backup start time. Null until the backup starts.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this archive.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this archive.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this archive should backup a single resource.", - "example": "DB1", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this archive should backup a single resource.", - "example": "database", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "policyId", - "status", - "migrationId", - "services", - "resources" - ], - "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" - } - }, - "dedicatedDatabaseBackup": { - "description": "Backup", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Backup ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Backup creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID this backup belongs to.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID when the backup was created by a schedule.", - "example": "5e5ea5c16897e" - }, - "trigger": { - "type": "string", - "description": "Backup trigger. Possible values: manual, schedule.", - "example": "schedule" - }, - "type": { - "type": "string", - "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", - "example": "full" - }, - "requestedType": { - "type": "string", - "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", - "example": "incremental" - }, - "fallbackReason": { - "type": "string", - "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", - "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." - }, - "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).", - "example": "completed" - }, - "sizeBytes": { - "type": "integer", - "description": "Backup size in bytes.", - "format": "int32", - "example": 1073741824 - }, - "startedAt": { - "type": "string", - "description": "Backup start time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "completedAt": { - "type": "string", - "description": "Backup completion time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "verifiedAt": { - "type": "string", - "description": "Backup verification time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "expiresAt": { - "type": "string", - "description": "Backup expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "logPosition": { - "type": "string", - "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", - "example": "000000010000000000000003|0\/3000148", - "nullable": true - }, - "error": { - "type": "string", - "description": "Error message if backup failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "projectId", - "policyId", - "trigger", - "type", - "requestedType", - "fallbackReason", - "status", - "sizeBytes", - "error" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "projectId": "5e5ea5c16897e", - "policyId": "5e5ea5c16897e", - "trigger": "schedule", - "type": "full", - "requestedType": "incremental", - "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", - "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", - "logPosition": "000000010000000000000003|0\/3000148", - "error": "" - } - }, - "dedicatedDatabaseBackupList": { - "description": "BackupList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of backups.", - "format": "int32", - "example": 5 - }, - "backups": { - "type": "array", - "description": "List of backups.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - }, - "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).", - "example": "s3" - }, - "bucket": { - "type": "string", - "description": "Storage bucket or container name.", - "example": "my-backup-bucket" - }, - "region": { - "type": "string", - "description": "Storage region.", - "example": "us-east-1" - }, - "prefix": { - "type": "string", - "description": "Object key prefix for backups.", - "example": "backups\/" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint for S3-compatible storage.", - "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": "Address", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Region ID", - "example": "eu-fr" - }, - "userId": { - "type": "string", - "description": "User ID", - "example": "5e5ea5c16897e" - }, - "streetAddress": { - "type": "string", - "description": "Street address", - "example": "13th Avenue" - }, - "addressLine2": { - "type": "string", - "description": "Address line 2", - "example": "" - }, - "country": { - "type": "string", - "description": "Address country", - "example": "USA" - }, - "city": { - "type": "string", - "description": "city", - "example": "" - }, - "state": { - "type": "string", - "description": "state", - "example": "" - }, - "postalCode": { - "type": "string", - "description": "postal code", - "example": "" - } - }, - "required": [ - "$id", - "userId", - "streetAddress", - "addressLine2", - "country", - "city", - "state", - "postalCode" - ], - "example": { - "$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", - "format": "int32", - "example": 5, - "nullable": true - }, - "storage": { - "type": "integer", - "description": "Storage limit", - "format": "int32", - "example": 150, - "nullable": true - }, - "users": { - "type": "integer", - "description": "Users limit", - "format": "int32", - "example": 200000, - "nullable": true - }, - "executions": { - "type": "integer", - "description": "Executions limit", - "format": "int32", - "example": 750000, - "nullable": true - }, - "GBHours": { - "type": "integer", - "description": "GBHours limit", - "format": "int32", - "example": 100, - "nullable": true - }, - "imageTransformations": { - "type": "integer", - "description": "Image transformations limit", - "format": "int32", - "example": 100, - "nullable": true - }, - "authPhone": { - "type": "integer", - "description": "Auth phone limit", - "format": "int32", - "example": 10, - "nullable": true - }, - "budgetLimit": { - "type": "integer", - "description": "Budget limit percentage", - "format": "int32", - "example": 100, - "nullable": true - } - }, - "example": { - "bandwidth": 5, - "storage": 150, - "users": 200000, - "executions": 750000, - "GBHours": 100, - "imageTransformations": 100, - "authPhone": 10, - "budgetLimit": 100 - } - }, - "billingPlan": { - "description": "billingPlan", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Plan ID.", - "example": "tier-0" - }, - "name": { - "type": "string", - "description": "Plan name", - "example": "Hobby" - }, - "desc": { - "type": "string", - "description": "Plan description", - "example": "Hobby plan" - }, - "order": { - "type": "integer", - "description": "Plan order", - "format": "int32", - "example": 0 - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 25 - }, - "trial": { - "type": "integer", - "description": "Trial days", - "format": "int32", - "example": 14 - }, - "bandwidth": { - "type": "integer", - "description": "Bandwidth", - "format": "int32", - "example": 25 - }, - "storage": { - "type": "integer", - "description": "Storage", - "format": "int32", - "example": 25 - }, - "imageTransformations": { - "type": "integer", - "description": "Image Transformations", - "format": "int32", - "example": 100 - }, - "screenshotsGenerated": { - "type": "integer", - "description": "Screenshots generated", - "format": "int32", - "example": 50 - }, - "members": { - "type": "integer", - "description": "Members", - "format": "int32", - "example": 25, - "nullable": true - }, - "webhooks": { - "type": "integer", - "description": "Webhooks", - "format": "int32", - "example": 25 - }, - "wafRules": { - "type": "integer", - "description": "Maximum WAF rules per project", - "format": "int32", - "example": 2 - }, - "projects": { - "type": "integer", - "description": "Projects", - "format": "int32", - "example": 2 - }, - "platforms": { - "type": "integer", - "description": "Platforms", - "format": "int32", - "example": 3 - }, - "users": { - "type": "integer", - "description": "Users", - "format": "int32", - "example": 25 - }, - "teams": { - "type": "integer", - "description": "Teams", - "format": "int32", - "example": 25 - }, - "databases": { - "type": "integer", - "description": "Databases", - "format": "int32", - "example": 25 - }, - "databasesReads": { - "type": "integer", - "description": "Database reads per month", - "format": "int32", - "example": 500000 - }, - "databasesWrites": { - "type": "integer", - "description": "Database writes per month", - "format": "int32", - "example": 250000 - }, - "databasesBatchSize": { - "type": "integer", - "description": "Database batch size limit", - "format": "int32", - "example": 100 - }, - "buckets": { - "type": "integer", - "description": "Buckets", - "format": "int32", - "example": 25 - }, - "fileSize": { - "type": "integer", - "description": "File size", - "format": "int32", - "example": 25 - }, - "functions": { - "type": "integer", - "description": "Functions", - "format": "int32", - "example": 25 - }, - "sites": { - "type": "integer", - "description": "Sites", - "format": "int32", - "example": 1 - }, - "executions": { - "type": "integer", - "description": "Function executions", - "format": "int32", - "example": 25 - }, - "executionsRetentionCount": { - "type": "integer", - "description": "Rolling max executions retained per function\/site", - "format": "int32", - "example": 10000 - }, - "GBHours": { - "type": "integer", - "description": "GB hours for functions", - "format": "int32", - "example": 100 - }, - "realtime": { - "type": "integer", - "description": "Realtime connections", - "format": "int32", - "example": 25 - }, - "realtimeMessages": { - "type": "integer", - "description": "Realtime messages", - "format": "int32", - "example": 100000 - }, - "messages": { - "type": "integer", - "description": "Messages per month", - "format": "int32", - "example": 1000 - }, - "topics": { - "type": "integer", - "description": "Topics for messaging", - "format": "int32", - "example": 1 - }, - "authPhone": { - "type": "integer", - "description": "SMS authentications per month", - "format": "int32", - "example": 10 - }, - "domains": { - "type": "integer", - "description": "Custom domains", - "format": "int32", - "example": 5 - }, - "activityLogs": { - "type": "integer", - "description": "Activity log days", - "format": "int32", - "example": 7, - "nullable": true - }, - "usageLogs": { - "type": "integer", - "description": "Usage history days", - "format": "int32", - "example": 30 - }, - "usageLogsIntervals": { - "type": "array", - "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", - "items": { - "type": "string" - }, - "example": [ - "15m", - "1h", - "1d" - ], - "nullable": true - }, - "usageAggregateOnlyMetrics": { - "type": "array", - "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", - "items": { - "type": "string" - }, - "example": [ - "network.requests", - "network.inbound", - "network.outbound" - ], - "nullable": true - }, - "projectInactivityDays": { - "type": "integer", - "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", - "format": "int32", - "example": 7 - }, - "alertLimit": { - "type": "integer", - "description": "Alert threshold percentage", - "format": "int32", - "example": 80 - }, - "usage": { - "type": "object", - "description": "Additional resources. Null when the plan does not support usage billing.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/usageBillingPlan" - } - ], - "nullable": true - }, - "addons": { - "type": "object", - "description": "Addons", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddon" - } - ] - }, - "budgetCapEnabled": { - "type": "boolean", - "description": "Budget cap enabled or disabled.", - "example": true - }, - "customSmtp": { - "type": "boolean", - "description": "Custom SMTP", - "example": true - }, - "emailBranding": { - "type": "boolean", - "description": "Appwrite branding in email", - "example": true - }, - "requiresPaymentMethod": { - "type": "boolean", - "description": "Does plan require payment method", - "example": true - }, - "requiresBillingAddress": { - "type": "boolean", - "description": "Does plan require billing address", - "example": true - }, - "eligibleCountries": { - "type": "array", - "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", - "items": { - "type": "string" - }, - "example": [ - "IN", - "NP" - ], - "nullable": true - }, - "isAvailable": { - "type": "boolean", - "description": "Is the billing plan available", - "example": true - }, - "selfService": { - "type": "boolean", - "description": "Can user change the plan themselves", - "example": true - }, - "premiumSupport": { - "type": "boolean", - "description": "Does plan enable premium support", - "example": true - }, - "budgeting": { - "type": "boolean", - "description": "Does plan support budget cap", - "example": true - }, - "supportsMockNumbers": { - "type": "boolean", - "description": "Does plan support mock numbers", - "example": true - }, - "supportsOrganizationRoles": { - "type": "boolean", - "description": "Does plan support organization roles", - "example": true - }, - "supportsCredits": { - "type": "boolean", - "description": "Does plan support credit", - "example": true - }, - "supportsDedicatedDatabases": { - "type": "boolean", - "description": "Does plan support dedicated databases.", - "example": true - }, - "supportsDisposableEmailValidation": { - "type": "boolean", - "description": "Does plan support blocking disposable email addresses.", - "example": true - }, - "supportsCanonicalEmailValidation": { - "type": "boolean", - "description": "Does plan support requiring canonical email addresses.", - "example": true - }, - "supportsFreeEmailValidation": { - "type": "boolean", - "description": "Does plan support blocking free email addresses.", - "example": true - }, - "supportsCorporateEmailValidation": { - "type": "boolean", - "description": "Does plan support restricting sign-ups to corporate email addresses only.", - "example": true - }, - "supportsProjectSpecificRoles": { - "type": "boolean", - "description": "Does plan support project-specific member roles.", - "example": true - }, - "backupsEnabled": { - "type": "boolean", - "description": "Does plan support backup policies.", - "example": true, - "nullable": true - }, - "usagePerProject": { - "type": "boolean", - "description": "Whether usage addons are calculated per project.", - "example": true - }, - "supportedAddons": { - "type": "object", - "description": "Supported addons for this plan", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" - } - ] - }, - "backupPolicies": { - "type": "integer", - "description": "How many policies does plan support", - "format": "int32", - "example": 1, - "nullable": true - }, - "deploymentSize": { - "type": "integer", - "description": "Maximum function and site deployment size in MB", - "format": "int32", - "example": 30 - }, - "buildSize": { - "type": "integer", - "description": "Maximum function and site deployment size in MB", - "format": "int32", - "example": 2000 - }, - "databasesAllowEncrypt": { - "type": "boolean", - "description": "Does the plan support encrypted string attributes or not.", - "example": false - }, - "limits": { - "type": "object", - "description": "Plan specific limits", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanLimits" - } - ], - "nullable": true - }, - "group": { - "description": "Group of this billing plan for variants", - "example": "pro", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "free" - ], - "title": "free" - }, - { - "type": "string", - "enum": [ - "start" - ], - "title": "start" - }, - { - "type": "string", - "enum": [ - "pro" - ], - "title": "pro" - }, - { - "type": "string", - "enum": [ - "scale" - ], - "title": "scale" - } - ] - }, - "program": { - "type": "object", - "description": "Details of the program this plan is a part of.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/program" - } - ], - "nullable": true - }, - "databaseComputeCredit": { - "type": "number", - "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", - "format": "double", - "example": 10 - }, - "dedicatedDatabases": { - "type": "object", - "description": "Dedicated database limits available to this plan.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" - } - ], - "nullable": true - } - }, - "required": [ - "$id", - "name", - "desc", - "order", - "price", - "trial", - "bandwidth", - "storage", - "imageTransformations", - "screenshotsGenerated", - "webhooks", - "wafRules", - "projects", - "platforms", - "users", - "teams", - "databases", - "databasesReads", - "databasesWrites", - "databasesBatchSize", - "buckets", - "fileSize", - "functions", - "sites", - "executions", - "executionsRetentionCount", - "GBHours", - "realtime", - "realtimeMessages", - "messages", - "topics", - "authPhone", - "domains", - "usageLogs", - "projectInactivityDays", - "alertLimit", - "addons", - "budgetCapEnabled", - "customSmtp", - "emailBranding", - "requiresPaymentMethod", - "requiresBillingAddress", - "isAvailable", - "selfService", - "premiumSupport", - "budgeting", - "supportsMockNumbers", - "supportsOrganizationRoles", - "supportsCredits", - "supportsDedicatedDatabases", - "supportsDisposableEmailValidation", - "supportsCanonicalEmailValidation", - "supportsFreeEmailValidation", - "supportsCorporateEmailValidation", - "supportsProjectSpecificRoles", - "usagePerProject", - "supportedAddons", - "deploymentSize", - "buildSize", - "databasesAllowEncrypt", - "group", - "databaseComputeCredit" - ], - "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, - "wafRules": 2, - "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, - "activityLogs": 7, - "usageLogs": 30, - "usageLogsIntervals": [ - "15m", - "1h", - "1d" - ], - "usageAggregateOnlyMetrics": [ - "network.requests", - "network.inbound", - "network.outbound" - ], - "projectInactivityDays": 7, - "alertLimit": 80, - "usage": null, - "addons": null, - "budgetCapEnabled": true, - "customSmtp": true, - "emailBranding": true, - "requiresPaymentMethod": true, - "requiresBillingAddress": true, - "eligibleCountries": [ - "IN", - "NP" - ], - "isAvailable": true, - "selfService": true, - "premiumSupport": true, - "budgeting": true, - "supportsMockNumbers": true, - "supportsOrganizationRoles": true, - "supportsCredits": true, - "supportsDedicatedDatabases": true, - "supportsDisposableEmailValidation": true, - "supportsCanonicalEmailValidation": true, - "supportsFreeEmailValidation": true, - "supportsCorporateEmailValidation": true, - "supportsProjectSpecificRoles": true, - "backupsEnabled": true, - "usagePerProject": true, - "supportedAddons": null, - "backupPolicies": 1, - "deploymentSize": 30, - "buildSize": 2000, - "databasesAllowEncrypt": false, - "limits": null, - "group": "pro", - "program": null, - "databaseComputeCredit": 10, - "dedicatedDatabases": null - } - }, - "billingPlanAddon": { - "description": "Addon", - "type": "object", - "properties": { - "seats": { - "type": "object", - "description": "Addon seats", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" - } - ], - "nullable": true - }, - "projects": { - "type": "object", - "description": "Addon projects", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" - } - ], - "nullable": true - } - }, - "example": { - "seats": null, - "projects": null - } - }, - "billingPlanAddonDetails": { - "description": "Details", - "type": "object", - "properties": { - "supported": { - "type": "boolean", - "description": "Is the addon supported in the plan?", - "example": true - }, - "planIncluded": { - "type": "integer", - "description": "Addon plan included value", - "format": "int32", - "example": 1 - }, - "limit": { - "type": "integer", - "description": "Addon limit", - "format": "int32", - "example": 5 - }, - "type": { - "type": "string", - "description": "Addon type", - "example": "numeric" - }, - "currency": { - "type": "string", - "description": "Price currency", - "example": "USD", - "nullable": true - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 5 - }, - "value": { - "type": "integer", - "description": "Resource value", - "format": "int32", - "example": 25 - }, - "invoiceDesc": { - "type": "string", - "description": "Description on invoice", - "example": "" - } - }, - "required": [ - "supported", - "planIncluded", - "limit", - "type", - "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", - "format": "int32", - "example": 100, - "nullable": true - }, - "dailyCredits": { - "type": "integer", - "description": "Daily credits limit (if applicable)", - "format": "int32", - "example": 5, - "nullable": true - } - }, - "example": { - "credits": 100, - "dailyCredits": 5 - } - }, - "billingPlanDedicatedDatabaseLimits": { - "description": "dedicatedDatabaseLimits", - "type": "object", - "properties": { - "minCpu": { - "type": "integer", - "description": "Minimum CPU allocation in millicores.", - "format": "int32", - "example": 125, - "nullable": true - }, - "maxCpu": { - "type": "integer", - "description": "Maximum CPU allocation in millicores.", - "format": "int32", - "example": 32000, - "nullable": true - }, - "minMemoryMb": { - "type": "integer", - "description": "Minimum memory allocation in megabytes.", - "format": "int32", - "example": 128, - "nullable": true - }, - "maxMemoryMb": { - "type": "integer", - "description": "Maximum memory allocation in megabytes.", - "format": "int32", - "example": 262144, - "nullable": true - }, - "minStorageGb": { - "type": "integer", - "description": "Minimum storage allocation in gigabytes.", - "format": "int32", - "example": 1, - "nullable": true - }, - "maxStorageGb": { - "type": "integer", - "description": "Maximum storage allocation in gigabytes.", - "format": "int32", - "example": 16384, - "nullable": true - }, - "maxReplicas": { - "type": "integer", - "description": "Maximum number of high-availability replicas per dedicated database.", - "format": "int32", - "example": 5, - "nullable": true - }, - "maxConnections": { - "type": "integer", - "description": "Maximum number of client connections.", - "format": "int32", - "example": 10000, - "nullable": true - }, - "maxIpAllowlistSize": { - "type": "integer", - "description": "Maximum number of entries allowed in the IP allowlist.", - "format": "int32", - "example": 100, - "nullable": true - }, - "maxExtensions": { - "type": "integer", - "description": "Maximum number of database extensions that can be enabled.", - "format": "int32", - "example": 50, - "nullable": true - }, - "maxBackupRetentionDays": { - "type": "integer", - "description": "Maximum number of days a backup can be retained.", - "format": "int32", - "example": 365, - "nullable": true - }, - "maxPitrRetentionDays": { - "type": "integer", - "description": "Maximum number of days of point-in-time recovery data that can be retained.", - "format": "int32", - "example": 35, - "nullable": true - }, - "maxSqlApiMaxRows": { - "type": "integer", - "description": "Maximum number of rows a single SQL API query can return.", - "format": "int32", - "example": 1000000, - "nullable": true - }, - "maxSqlApiMaxBytes": { - "type": "integer", - "description": "Maximum response size in bytes for a single SQL API query.", - "format": "int32", - "example": 104857600, - "nullable": true - }, - "maxSqlApiTimeoutSeconds": { - "type": "integer", - "description": "Maximum execution time in seconds for a single SQL API query.", - "format": "int32", - "example": 300, - "nullable": true - }, - "maxSqlApiAllowedStatements": { - "type": "integer", - "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", - "format": "int32", - "example": 10, - "nullable": true - }, - "allowedSqlStatements": { - "type": "array", - "description": "SQL statement types permitted through the SQL API.", - "items": { - "type": "string" - }, - "example": [ - "select", - "insert", - "update", - "delete", - "explain" - ], - "nullable": true - }, - "allowedStorageClasses": { - "type": "array", - "description": "Storage classes available for dedicated databases.", - "items": { - "type": "string" - }, - "example": [ - "ssd" - ], - "nullable": true - }, - "allowedSyncModes": { - "type": "array", - "description": "Replica synchronization modes available for dedicated databases.", - "items": { - "type": "string" - }, - "example": [ - "async", - "sync", - "quorum" - ], - "nullable": true - } - }, - "example": { - "minCpu": 125, - "maxCpu": 32000, - "minMemoryMb": 128, - "maxMemoryMb": 262144, - "minStorageGb": 1, - "maxStorageGb": 16384, - "maxReplicas": 5, - "maxConnections": 10000, - "maxIpAllowlistSize": 100, - "maxExtensions": 50, - "maxBackupRetentionDays": 365, - "maxPitrRetentionDays": 35, - "maxSqlApiMaxRows": 1000000, - "maxSqlApiMaxBytes": 104857600, - "maxSqlApiTimeoutSeconds": 300, - "maxSqlApiAllowedStatements": 10, - "allowedSqlStatements": [ - "select", - "insert", - "update", - "delete", - "explain" - ], - "allowedStorageClasses": [ - "ssd" - ], - "allowedSyncModes": [ - "async", - "sync", - "quorum" - ] - } - }, - "billingPlanSupportedAddons": { - "description": "BillingPlanSupportedAddons", - "type": "object", - "properties": { - "baa": { - "type": "boolean", - "description": "Whether the plan supports BAA (Business Associate Agreement) addon", - "example": true - }, - "premiumGeoDB": { - "type": "boolean", - "description": "Whether the plan supports Premium Geo DB addon (project-level)", - "example": true - }, - "premiumGeoDBOrg": { - "type": "boolean", - "description": "Whether the plan supports Premium Geo DB addon (organization-level)", - "example": true - } - }, - "required": [ - "baa", - "premiumGeoDB", - "premiumGeoDBOrg" - ], - "example": { - "baa": true, - "premiumGeoDB": true, - "premiumGeoDBOrg": true - } - }, - "block": { - "description": "Block", - "type": "object", - "properties": { - "$createdAt": { - "type": "string", - "description": "Block creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceType": { - "type": "string", - "description": "Resource type that is blocked", - "example": "project" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier that is blocked", - "example": "5e5ea5c16897e" - }, - "mode": { - "type": "string", - "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", - "example": "readOnly" - }, - "expiredAt": { - "type": "string", - "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$createdAt", - "resourceType", - "resourceId", - "mode" - ], - "example": { - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "mode": "readOnly", - "expiredAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "dedicatedDatabaseBranch": { - "description": "Branch", - "type": "object", - "properties": { - "branchId": { - "type": "string", - "description": "Branch identifier.", - "example": "a1b2c3d4" - }, - "branchName": { - "type": "string", - "description": "Branch name.", - "example": "branch-a1b2c3d4" - }, - "namespace": { - "type": "string", - "description": "Kubernetes namespace where the branch is deployed.", - "example": "db-myproject-mydb-branch-a1b2c3d4" - }, - "expiresAt": { - "type": "integer", - "description": "Unix timestamp when the branch expires.", - "format": "int32", - "example": 1711411200 - }, - "host": { - "type": "string", - "description": "Branch hostname for direct connections.", - "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" - }, - "port": { - "type": "integer", - "description": "Branch port. Null until the backing reports one.", - "format": "int32", - "example": 5432 - }, - "database": { - "type": "string", - "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", - "example": "db-myproject-mydb-a1b2c3d4" - }, - "username": { - "type": "string", - "description": "Database username. Shared with the parent database.", - "example": "appwrite" - }, - "password": { - "type": "string", - "description": "Database password. Shared with the parent database.", - "example": "********" - }, - "ssl": { - "type": "boolean", - "description": "Whether SSL is required.", - "example": false - }, - "engine": { - "type": "string", - "description": "Database engine. Possible values: postgresql, mysql, mongodb.", - "example": "postgresql" - }, - "connectionString": { - "type": "string", - "description": "Full connection string for the branch.", - "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" - } - }, - "required": [ - "branchId", - "branchName", - "namespace", - "expiresAt", - "host", - "port", - "database", - "username", - "password", - "ssl", - "engine", - "connectionString" - ], - "example": { - "branchId": "a1b2c3d4", - "branchName": "branch-a1b2c3d4", - "namespace": "db-myproject-mydb-branch-a1b2c3d4", - "expiresAt": 1711411200, - "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", - "port": 5432, - "database": "db-myproject-mydb-a1b2c3d4", - "username": "appwrite", - "password": "********", - "ssl": false, - "engine": "postgresql", - "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" - } - }, - "dedicatedDatabaseBranchList": { - "description": "BranchList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of branches.", - "format": "int32", - "example": 2 - }, - "branches": { - "type": "array", - "description": "List of branches.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" - }, - "example": [] - } - }, - "required": [ - "total", - "branches" - ], - "example": { - "total": 2, - "branches": [] - } - }, - "campaign": { - "description": "Campaign", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Campaign ID", - "example": "" - }, - "template": { - "type": "string", - "description": "Campaign template", - "example": "" - }, - "title": { - "type": "string", - "description": "Campaign title", - "example": "" - }, - "description": { - "type": "string", - "description": "Campaign description", - "example": "" - }, - "plan": { - "type": "string", - "description": "Billing plan campaign is associated with", - "example": "", - "nullable": true - }, - "cta": { - "type": "string", - "description": "Campaign CTA", - "example": "", - "nullable": true - }, - "claimed": { - "type": "string", - "description": "Campaign info when claimed", - "example": "", - "nullable": true - }, - "unclaimed": { - "type": "string", - "description": "Campaign infor when unclaimed", - "example": "", - "nullable": true - }, - "image": { - "type": "object", - "additionalProperties": true, - "description": "Campaign images" - }, - "reviews": { - "type": "array", - "description": "Campaign reviews", - "items": { - "$ref": "#\/components\/schemas\/review" - }, - "example": [], - "nullable": true - }, - "onlyNewOrgs": { - "type": "boolean", - "description": "Campaign valid only for new orgs.", - "nullable": true - }, - "footer": { - "type": "boolean", - "description": "Is footer", - "nullable": true - } - }, - "required": [ - "$id", - "template", - "title", - "description" - ], - "example": { - "$id": "", - "template": "", - "title": "", - "description": "", - "plan": "", - "cta": "", - "claimed": "", - "unclaimed": "", - "image": "", - "reviews": "", - "onlyNewOrgs": "", - "footer": "" - } - }, - "coupon": { - "description": "Coupon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "coupon ID", - "example": "NEWBONUS" - }, - "code": { - "type": "string", - "description": "coupon ID", - "example": "NEWBONUS" - }, - "credits": { - "type": "number", - "description": "Provided credit amount", - "format": "double", - "example": 50 - }, - "expiration": { - "type": "string", - "description": "Coupon expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "validity": { - "type": "integer", - "description": "Credit validity in days.", - "format": "int32", - "example": 180 - }, - "campaign": { - "type": "string", - "description": "Campaign the coupon is associated with`.", - "example": "AppwriteHeroes" - }, - "status": { - "type": "string", - "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", - "example": "disabled" - }, - "onlyNewOrgs": { - "type": "boolean", - "description": "If the coupon is only valid for new organizations or not.", - "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 - } - }, - "credit": { - "description": "Credit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Credit ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Credit creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Credit update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "couponId": { - "type": "string", - "description": "coupon ID", - "example": "NEWBONUS" - }, - "userId": { - "type": "string", - "description": "ID of the User.", - "example": "5e5ea5c16897e" - }, - "teamId": { - "type": "string", - "description": "ID of the Team.", - "example": "5e5ea5c16897e" - }, - "credits": { - "type": "number", - "description": "Provided credit amount", - "format": "double", - "example": 50 - }, - "total": { - "type": "number", - "description": "Provided credit amount", - "format": "double", - "example": 50 - }, - "expiration": { - "type": "string", - "description": "Credit expiration time in ISO 8601 format.", - "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`.", - "example": "disabled" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "couponId", - "userId", - "teamId", - "credits", - "total", - "expiration", - "status" - ], - "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" - } - }, - "creditAvailable": { - "description": "CreditAvailable", - "type": "object", - "properties": { - "available": { - "type": "integer", - "description": "Total available credits for the organization.", - "format": "int32", - "example": 100 - } - }, - "required": [ - "available" - ], - "example": { - "available": 100 - } - }, - "creditList": { - "description": "CreditList", - "type": "object", - "properties": { - "credits": { - "type": "array", - "description": "Credits", - "items": { - "$ref": "#\/components\/schemas\/credit" - }, - "example": [ - 5 - ] - }, - "total": { - "type": "integer", - "description": "Total number of credits", - "format": "int32", - "example": 5 - }, - "available": { - "type": "number", - "description": "Total available credit balance in USD", - "format": "double", - "example": 5 - } - }, - "required": [ - "credits", - "total", - "available" - ], - "example": { - "credits": 5, - "total": 5, - "available": 5 - } - }, - "databaseMigration": { - "description": "Database Migration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Database migration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Migration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Migration update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID that owns the migrating database.", - "example": "5e5ea5c16897e" - }, - "databaseId": { - "type": "string", - "description": "Logical database ID being migrated.", - "example": "5e5ea5c16897e" - }, - "specification": { - "type": "string", - "description": "Dedicated compute specification provisioned for the migration target.", - "example": "s-2vcpu-4gb" - }, - "phase": { - "type": "string", - "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", - "example": "pending" - }, - "attempt": { - "type": "integer", - "description": "Number of times a migration step has failed and been recorded.", - "format": "int32", - "example": 0 - }, - "lastError": { - "type": "string", - "description": "Reason the most recent migration step failed, empty while none has.", - "example": "" - }, - "lagDocuments": { - "type": "integer", - "description": "Number of documents still pending replication to the target.", - "format": "int32", - "example": 0 - }, - "changelogWatermark": { - "type": "integer", - "description": "Highest source changelog sequence applied to the target so far.", - "format": "int32", - "example": 0 - }, - "verifiedAt": { - "type": "string", - "description": "Time the migrated data was verified against the source in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "cutoverAt": { - "type": "string", - "description": "Time routing was flipped to the target in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "soakUntil": { - "type": "string", - "description": "Time the post-cutover soak window ends in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "autoCutover": { - "type": "boolean", - "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", - "example": true - }, - "cutoverRequested": { - "type": "boolean", - "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", - "example": false - }, - "paused": { - "type": "boolean", - "description": "Whether the migration is paused.", - "example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "projectId", - "databaseId", - "specification", - "phase", - "attempt", - "lastError", - "lagDocuments", - "changelogWatermark", - "verifiedAt", - "cutoverAt", - "soakUntil", - "autoCutover", - "cutoverRequested", - "paused" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "projectId": "5e5ea5c16897e", - "databaseId": "5e5ea5c16897e", - "specification": "s-2vcpu-4gb", - "phase": "pending", - "attempt": 0, - "lastError": "", - "lagDocuments": 0, - "changelogWatermark": 0, - "verifiedAt": "2020-10-15T06:38:00.000+00:00", - "cutoverAt": "2020-10-15T06:38:00.000+00:00", - "soakUntil": "2020-10-15T06:38:00.000+00:00", - "autoCutover": true, - "cutoverRequested": false, - "paused": false - } - }, - "dedicatedDatabase": { - "description": "DedicatedDatabase", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Dedicated database ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Database creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Database update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID that owns this database.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Database display name.", - "example": "My Production Database" - }, - "api": { - "type": "string", - "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", - "example": "postgresql" - }, - "engine": { - "type": "string", - "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", - "example": "postgresql" - }, - "version": { - "type": "string", - "description": "Database engine version.", - "example": "16" - }, - "specification": { - "type": "string", - "description": "Specification identifier.", - "example": "s-2vcpu-2gb" - }, - "backend": { - "type": "string", - "description": "Database backend provider. Possible values: edge.", - "example": "edge" - }, - "hostname": { - "type": "string", - "description": "Database hostname for connections.", - "example": "db-myproject-mydb.fra.appwrite.center" - }, - "connectionPort": { - "type": "integer", - "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", - "format": "int32", - "example": 5432 - }, - "connectionUser": { - "type": "string", - "description": "Database username for connections.", - "example": "appwrite_user" - }, - "connectionPassword": { - "type": "string", - "description": "Database password for connections.", - "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" - }, - "credentialGeneration": { - "type": "integer", - "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", - "format": "int32", - "example": 1 - }, - "connectionString": { - "type": "string", - "description": "Full database connection string (URI format).", - "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" - }, - "ssl": { - "type": "boolean", - "description": "Whether SSL\/TLS is required for client connections.", - "example": true - }, - "status": { - "type": "string", - "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", - "example": "ready" - }, - "containerStatus": { - "type": "string", - "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", - "example": "active" - }, - "lastAccessedAt": { - "type": "string", - "description": "Last activity timestamp in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "idleUntil": { - "type": "string", - "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "lifecycleState": { - "type": "string", - "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", - "example": "active" - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes of inactivity before container scales to zero.", - "format": "int32", - "example": 15 - }, - "cpu": { - "type": "integer", - "description": "CPU allocated in millicores.", - "format": "int32", - "example": 2000 - }, - "memory": { - "type": "integer", - "description": "Memory allocated in MB.", - "format": "int32", - "example": 4096 - }, - "storage": { - "type": "integer", - "description": "Storage allocated in GB.", - "format": "int32", - "example": 100 - }, - "storageStatus": { - "type": "string", - "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", - "example": "resizing" - }, - "storageTargetGb": { - "type": "integer", - "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", - "format": "int32", - "example": 120 - }, - "storageResizeStartedAt": { - "type": "string", - "description": "Time the in-flight storage resize started, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "storageClass": { - "type": "string", - "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", - "example": "ssd" - }, - "storageMaxGb": { - "type": "integer", - "description": "Maximum storage allowed in GB. 0 means use system default.", - "format": "int32", - "example": 100 - }, - "nodePool": { - "type": "string", - "description": "Kubernetes node pool where the database is scheduled.", - "example": "db-pool-4vcpu-8gb" - }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas. High availability is enabled when greater than 0.", - "format": "int32", - "example": 2 - }, - "syncMode": { - "type": "string", - "description": "Replication sync mode: async, sync, or quorum.", - "example": "async" - }, - "networkMaxConnections": { - "type": "integer", - "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", - "format": "int32", - "example": 500 - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds.", - "format": "int32", - "example": 900 - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "items": { - "type": "string" - }, - "example": [ - "10.0.0.0\/8", - "192.168.1.0\/24" - ] - }, - "backupEnabled": { - "type": "boolean", - "description": "Whether automatic backups are enabled.", - "example": true - }, - "pitr": { - "type": "boolean", - "description": "Whether point-in-time recovery is enabled.", - "example": true - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Number of days to retain PITR data.", - "format": "int32", - "example": 14 - }, - "storageAutoscaling": { - "type": "boolean", - "description": "Whether automatic storage expansion is enabled.", - "example": true - }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage that triggers automatic expansion.", - "format": "int32", - "example": 85 - }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "format": "int32", - "example": 30 - }, - "maintenanceWindowDay": { - "type": "string", - "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", - "example": "sun" - }, - "maintenanceWindowHourUtc": { - "type": "integer", - "description": "Hour in UTC (0-23) when the maintenance window starts.", - "format": "int32", - "example": 3 - }, - "metricsEnabled": { - "type": "boolean", - "description": "Whether metrics collection is enabled.", - "example": false - }, - "sqlApiEnabled": { - "type": "boolean", - "description": "Whether the SQL API sidecar is enabled for this database.", - "example": true - }, - "sqlApiAllowedStatements": { - "type": "array", - "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "items": { - "type": "string" - }, - "example": [ - "SELECT" - ] - }, - "sqlApiMaxRows": { - "type": "integer", - "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", - "format": "int32", - "example": 10000 - }, - "sqlApiMaxBytes": { - "type": "integer", - "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", - "format": "int32", - "example": 10485760 - }, - "sqlApiTimeoutSeconds": { - "type": "integer", - "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", - "format": "int32", - "example": 30 - }, - "error": { - "type": "string", - "description": "Error message if status is failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "projectId", - "name", - "api", - "engine", - "version", - "specification", - "backend", - "hostname", - "connectionPort", - "connectionUser", - "connectionPassword", - "credentialGeneration", - "connectionString", - "ssl", - "status", - "containerStatus", - "lifecycleState", - "idleTimeoutMinutes", - "cpu", - "memory", - "storage", - "storageStatus", - "storageTargetGb", - "storageClass", - "storageMaxGb", - "nodePool", - "replicas", - "syncMode", - "networkMaxConnections", - "networkIdleTimeoutSeconds", - "networkIPAllowlist", - "backupEnabled", - "pitr", - "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", - "api": "postgresql", - "engine": "postgresql", - "version": "16", - "specification": "s-2vcpu-2gb", - "backend": "edge", - "hostname": "db-myproject-mydb.fra.appwrite.center", - "connectionPort": 5432, - "connectionUser": "appwrite_user", - "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", - "credentialGeneration": 1, - "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", - "ssl": true, - "status": "ready", - "containerStatus": "active", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", - "idleUntil": "2020-10-15T06:38:00.000+00:00", - "lifecycleState": "active", - "idleTimeoutMinutes": 15, - "cpu": 2000, - "memory": 4096, - "storage": 100, - "storageStatus": "resizing", - "storageTargetGb": 120, - "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", - "storageClass": "ssd", - "storageMaxGb": 100, - "nodePool": "db-pool-4vcpu-8gb", - "replicas": 2, - "syncMode": "async", - "networkMaxConnections": 500, - "networkIdleTimeoutSeconds": 900, - "networkIPAllowlist": [ - "10.0.0.0\/8", - "192.168.1.0\/24" - ], - "backupEnabled": true, - "pitr": true, - "pitrRetentionDays": 14, - "storageAutoscaling": true, - "storageAutoscalingThresholdPercent": 85, - "storageAutoscalingMaxGb": 30, - "maintenanceWindowDay": "sun", - "maintenanceWindowHourUtc": 3, - "metricsEnabled": false, - "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": { - "type": "object" - }, - "example": [ - { - "id": 1, - "name": "example" - } - ] - }, - "rowCount": { - "type": "integer", - "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", - "format": "int32", - "example": 1 - }, - "columns": { - "type": "array", - "description": "Column metadata in result-set order.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" - }, - "example": [] - }, - "durationMs": { - "type": "integer", - "description": "Server-side execution time in milliseconds.", - "format": "int32", - "example": 12 - }, - "truncated": { - "type": "boolean", - "description": "True when the configured row or byte cap was hit and the result was truncated.", - "example": false - }, - "bytes": { - "type": "integer", - "description": "Serialised payload size in bytes.", - "format": "int32", - "example": 1024 - } - }, - "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.", - "example": "id" - }, - "type": { - "type": "string", - "description": "Engine-specific column type (e.g. int4, text, timestamptz).", - "example": "int4" - } - }, - "required": [ - "name", - "type" - ], - "example": { - "name": "id", - "type": "int4" - } - }, - "dedicatedDatabaseRestoration": { - "description": "Restoration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Restoration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID being restored into.", - "example": "5e5ea5c16897e" - }, - "sourceDatabaseId": { - "type": "string", - "description": "Source database ID when restoring a backup into another database.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "backupId": { - "type": "string", - "description": "Backup ID used for restoration (null for PITR).", - "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).", - "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).", - "example": "completed" - }, - "targetTime": { - "type": "string", - "description": "Target time for PITR restoration in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "startedAt": { - "type": "string", - "description": "Restoration start time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "completedAt": { - "type": "string", - "description": "Restoration completion time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "error": { - "type": "string", - "description": "Error message if restoration failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "sourceDatabaseId", - "projectId", - "backupId", - "type", - "status", - "targetTime", - "startedAt", - "completedAt", - "error" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "sourceDatabaseId": "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": "" - } - }, - "databaseStatus": { - "description": "Status", - "type": "object", - "properties": { - "health": { - "type": "string", - "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", - "example": "healthy" - }, - "ready": { - "type": "boolean", - "description": "Whether the database is ready to accept connections.", - "example": true - }, - "engine": { - "type": "string", - "description": "Database engine: postgresql, mysql, or mongodb.", - "example": "postgresql" - }, - "version": { - "type": "string", - "description": "Database engine version.", - "example": "17" - }, - "uptime": { - "type": "integer", - "description": "Database uptime in seconds.", - "format": "int32", - "example": 86400 - }, - "connections": { - "type": "object", - "description": "Connection statistics. Null when the database has not been probed.", - "example": { - "current": 12, - "max": 100 - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/databaseStatusConnections" - } - ], - "nullable": true - }, - "syncMode": { - "type": "string", - "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", - "example": "async" - }, - "effectiveSyncMode": { - "type": "string", - "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", - "example": "async", - "nullable": true - }, - "syncDegraded": { - "type": "boolean", - "description": "Whether the enforced replication is weaker than the requested syncMode.", - "example": false - }, - "syncAcknowledgements": { - "type": "integer", - "description": "Number of standby acknowledgements the primary waits for before a write is committed.", - "format": "int32", - "example": 1 - }, - "syncStandbyCount": { - "type": "integer", - "description": "Number of standbys registered with the primary for synchronous replication.", - "format": "int32", - "example": 2 - }, - "syncStateConfirmed": { - "type": "boolean", - "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", - "example": true, - "nullable": true - }, - "replicas": { - "type": "array", - "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", - "items": { - "$ref": "#\/components\/schemas\/databaseStatusReplica" - }, - "example": [ - { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": null, - "lagSeconds": null - }, - { - "index": 1, - "role": "replica", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - ] - }, - "volumes": { - "type": "array", - "description": "Storage volume information.", - "items": { - "$ref": "#\/components\/schemas\/databaseStatusVolume" - }, - "example": [ - { - "data": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - } - ] - } - }, - "required": [ - "health", - "ready", - "engine", - "version", - "uptime", - "syncMode", - "syncDegraded", - "syncAcknowledgements", - "syncStandbyCount", - "replicas", - "volumes" - ], - "example": { - "health": "healthy", - "ready": true, - "engine": "postgresql", - "version": "17", - "uptime": 86400, - "connections": { - "current": 12, - "max": 100 - }, - "syncMode": "async", - "effectiveSyncMode": "async", - "syncDegraded": false, - "syncAcknowledgements": 1, - "syncStandbyCount": 2, - "syncStateConfirmed": true, - "replicas": [ - { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": null, - "lagSeconds": null - }, - { - "index": 1, - "role": "replica", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - ], - "volumes": { - "data": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - } - } - }, - "dnsRecord": { - "description": "DNSRecord", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "DNS Record ID.", - "example": "5f40a6e10c65e" - }, - "$createdAt": { - "type": "string", - "description": "DNS Record creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "DNS Record update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "type": { - "type": "string", - "description": "DNS record type (e.g. A, CNAME, MX).", - "example": "A" - }, - "name": { - "type": "string", - "description": "Record name or subdomain.", - "example": "mail" - }, - "value": { - "type": "string", - "description": "Value of the record (IP address, domain, etc.).", - "example": "192.0.2.1" - }, - "ttl": { - "type": "integer", - "description": "Time to live (in seconds).", - "format": "int32", - "example": 86400 - }, - "priority": { - "type": "integer", - "description": "Record priority (commonly used for MX).", - "format": "int32", - "example": 10 - }, - "lock": { - "type": "boolean", - "description": "Whether this record is locked (read-only).", - "example": false - }, - "weight": { - "type": "integer", - "description": "Record weight (used for SRV records).", - "format": "int32", - "example": 10 - }, - "port": { - "type": "integer", - "description": "Target port (used for SRV records).", - "format": "int32", - "example": 443 - }, - "comment": { - "type": "string", - "description": "Comment for the DNS record.", - "example": "Mail server record" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "name", - "value", - "ttl", - "priority", - "lock", - "weight", - "port", - "comment" - ], - "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" - } - }, - "domain": { - "description": "Domain", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Domain ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Domain creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Domain update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "domain": { - "type": "string", - "description": "Domain name.", - "example": "example.com" - }, - "registrar": { - "type": "string", - "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", - "example": "appwrite" - }, - "nameservers": { - "type": "string", - "description": "Nameservers setting. \"Appwrite\" or empty string.", - "example": "Appwrite" - }, - "expire": { - "type": "string", - "description": "Domain expiry date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "renewal": { - "type": "string", - "description": "Domain renewal date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "autoRenewal": { - "type": "boolean", - "description": "If set to true, the domain will automatically renew.", - "example": true - }, - "renewalPrice": { - "type": "integer", - "description": "Renewal price (in cents).", - "format": "int32", - "example": 2599 - }, - "transferStatus": { - "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", - "example": "pending_registry", - "title": "DomainTransferStatusEnum", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "transferrable" - ], - "title": "transferrable" - }, - { - "type": "string", - "enum": [ - "not_transferrable" - ], - "title": "not_transferrable" - }, - { - "type": "string", - "enum": [ - "pending_owner" - ], - "title": "pending_owner" - }, - { - "type": "string", - "enum": [ - "pending_admin" - ], - "title": "pending_admin" - }, - { - "type": "string", - "enum": [ - "pending_registry" - ], - "title": "pending_registry" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "cancelled" - ], - "title": "cancelled" - }, - { - "type": "string", - "enum": [ - "service_unavailable" - ], - "title": "service_unavailable" - } - ], - "nullable": true - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "dnsRecords": { - "type": "array", - "description": "Dns records", - "items": { - "$ref": "#\/components\/schemas\/dnsRecord" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "domain", - "registrar", - "nameservers", - "expire", - "renewal", - "autoRenewal", - "renewalPrice", - "teamId", - "dnsRecords" - ], - "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": [] - } - }, - "domainPrice": { - "description": "DomainPrice", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "example": "example.com" - }, - "tld": { - "type": "string", - "description": "Top-level domain for the requested domain.", - "example": "com" - }, - "available": { - "type": "boolean", - "description": "Whether the domain is currently available for registration.", - "example": true - }, - "price": { - "type": "number", - "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", - "format": "double", - "example": 25.99, - "nullable": true - }, - "periodYears": { - "type": "integer", - "description": "Price period in years.", - "format": "int32", - "example": 1 - }, - "premium": { - "type": "boolean", - "description": "Whether the domain is a premium domain.", - "example": false - }, - "renewalPrice": { - "type": "number", - "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", - "format": "double", - "example": 27.99, - "nullable": true - }, - "renewalPeriodYears": { - "type": "integer", - "description": "Renewal price period in years.", - "format": "int32", - "example": 1 - } - }, - "required": [ - "domain", - "tld", - "available", - "periodYears", - "premium", - "renewalPeriodYears" - ], - "example": { - "domain": "example.com", - "tld": "com", - "available": true, - "price": 25.99, - "periodYears": 1, - "premium": false, - "renewalPrice": 27.99, - "renewalPeriodYears": 1 - } - }, - "domainPurchase": { - "description": "DomainPurchase", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Purchase\/invoice ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Purchase creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Purchase update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "domainId": { - "type": "string", - "description": "Domain document ID.", - "example": "5e5ea5c16897e" - }, - "domain": { - "type": "string", - "description": "Domain name.", - "example": "example.com" - }, - "organizationId": { - "type": "string", - "description": "Team ID that owns the domain.", - "example": "5e5ea5c16897e" - }, - "status": { - "description": "Domain purchase status.", - "example": "pending", - "title": "DomainPurchaseStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "pending" - ], - "title": "pending" - }, - { - "type": "string", - "enum": [ - "succeeded" - ], - "title": "succeeded" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "cancelled" - ], - "title": "cancelled" - } - ] - }, - "clientSecret": { - "type": "string", - "description": "Stripe client secret for 3DS; empty when not applicable.", - "example": "" - }, - "amount": { - "type": "number", - "description": "Purchase amount.", - "format": "double", - "example": 25.99 - }, - "currency": { - "type": "string", - "description": "Currency code.", - "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.", - "example": "example.com" - }, - "premium": { - "type": "boolean", - "description": "Is the domain premium?", - "example": true - }, - "price": { - "type": "number", - "description": "Domain price.", - "format": "double", - "example": 25.99, - "nullable": true - }, - "available": { - "type": "boolean", - "description": "Is the domain available?", - "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": "Domain transfer authorization code.", - "example": "mock_1a2b3c4d" - } - }, - "required": [ - "authCode" - ], - "example": { - "authCode": "mock_1a2b3c4d" - } - }, - "domainTransferStatus": { - "description": "domainTransferStatus", - "type": "object", - "properties": { - "status": { - "description": "Transfer status.", - "example": "pending_registry", - "title": "DomainTransferStatusEnum", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "transferrable" - ], - "title": "transferrable" - }, - { - "type": "string", - "enum": [ - "not_transferrable" - ], - "title": "not_transferrable" - }, - { - "type": "string", - "enum": [ - "pending_owner" - ], - "title": "pending_owner" - }, - { - "type": "string", - "enum": [ - "pending_admin" - ], - "title": "pending_admin" - }, - { - "type": "string", - "enum": [ - "pending_registry" - ], - "title": "pending_registry" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "cancelled" - ], - "title": "cancelled" - }, - { - "type": "string", - "enum": [ - "service_unavailable" - ], - "title": "service_unavailable" - } - ] - }, - "reason": { - "type": "string", - "description": "Additional transfer status information.", - "example": "Transfer in progress" - }, - "timestamp": { - "type": "string", - "description": "Transfer status timestamp in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "status", - "reason", - "timestamp" - ], - "example": { - "status": "pending_registry", - "reason": "Transfer in progress", - "timestamp": "2020-10-15T06:38:00.000+00:00" - } - }, - "downgradeFeedback": { - "description": "Downgrade Feedback", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Feedback ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Feedback creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Feedback update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "title": { - "type": "string", - "description": "Feedback reason", - "example": "I encountered a bug and outage that caused my app to lose its value" - }, - "message": { - "type": "string", - "description": "Feedback message", - "example": "The platform experienced significant downtime which affected my users." - }, - "fromPlanId": { - "type": "string", - "description": "Plan ID downgrading from", - "example": "pro" - }, - "toPlanId": { - "type": "string", - "description": "Plan ID downgrading to", - "example": "free" - }, - "teamId": { - "type": "string", - "description": "Organization ID", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "User ID who submitted feedback", - "example": "5e5ea5c16897e" - }, - "version": { - "type": "string", - "description": "Console version", - "example": "1.8.0" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "title", - "message", - "fromPlanId", - "toPlanId", - "teamId", - "userId", - "version" - ], - "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" - } - }, - "estimation": { - "description": "Estimation", - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Total amount", - "format": "double", - "example": 50 - }, - "grossAmount": { - "type": "number", - "description": "Gross payable amount", - "format": "double", - "example": 50 - }, - "discount": { - "type": "number", - "description": "Discount amount", - "format": "double", - "example": 50 - }, - "credits": { - "type": "number", - "description": "Credits amount", - "format": "double", - "example": 50 - }, - "items": { - "type": "array", - "description": "Estimation items", - "items": { - "$ref": "#\/components\/schemas\/estimation_item" - }, - "example": [] - }, - "discounts": { - "type": "array", - "description": "Estimation discount items", - "items": { - "$ref": "#\/components\/schemas\/estimation_item" - }, - "example": [] - }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "format": "int32", - "example": 14 - }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "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" - } - }, - "estimationDeleteOrganization": { - "description": "DeleteOrganization", - "type": "object", - "properties": { - "unpaidInvoices": { - "type": "array", - "description": "List of unpaid invoices", - "items": { - "$ref": "#\/components\/schemas\/invoice" - }, - "example": [] - } - }, - "required": [ - "unpaidInvoices" - ], - "example": { - "unpaidInvoices": [] - } - }, - "estimation_item": { - "description": "Item", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Label", - "example": "Plan name" - }, - "value": { - "type": "number", - "description": "Gross payable amount", - "format": "double", - "example": 50 - } - }, - "required": [ - "label", - "value" - ], - "example": { - "label": "Plan name", - "value": 50 - } - }, - "estimationPlanChange": { - "description": "EstimationPlanChange", - "type": "object", - "properties": { - "currentBillingPlanId": { - "type": "string", - "description": "Current billing plan ID", - "example": "tier-2" - }, - "targetBillingPlanId": { - "type": "string", - "description": "Target billing plan ID", - "example": "tier-0" - }, - "direction": { - "type": "string", - "description": "Direction of plan change: upgrade, downgrade, or same", - "example": "downgrade" - }, - "estimation": { - "type": "object", - "description": "Cost estimation details", - "allOf": [ - { - "$ref": "#\/components\/schemas\/planChangeEstimationDetails" - } - ] - }, - "limits": { - "type": "object", - "description": "Plan limits and compliance information", - "allOf": [ - { - "$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", - "format": "double", - "example": 50 - }, - "grossAmount": { - "type": "number", - "description": "Gross payable amount", - "format": "double", - "example": 50 - }, - "discount": { - "type": "number", - "description": "Discount amount", - "format": "double", - "example": 50 - }, - "credits": { - "type": "number", - "description": "Credits amount", - "format": "double", - "example": 50 - }, - "items": { - "type": "array", - "description": "Estimation items", - "items": { - "$ref": "#\/components\/schemas\/estimation_item" - }, - "example": [] - }, - "discounts": { - "type": "array", - "description": "Estimation discount items", - "items": { - "$ref": "#\/components\/schemas\/estimation_item" - }, - "example": [] - }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "format": "int32", - "example": 14 - }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits", - "format": "double", - "example": 0 - } - }, - "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 - } - }, - "growthConversation": { - "description": "Growth Conversation", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Conversation type.", - "example": "support" - }, - "email": { - "type": "string", - "description": "Email address the conversation was filed under. For a signed in console user this is the account email.", - "example": "john@appwrite.io" - }, - "organizationId": { - "type": "string", - "description": "Organization ID the conversation was filed against. Empty when none was given or the user is not a member.", - "example": "5e5ea5c16897e" - } - }, - "required": [ - "type", - "email", - "organizationId" - ], - "example": { - "type": "support", - "email": "john@appwrite.io", - "organizationId": "5e5ea5c16897e" - } - }, - "dedicatedDatabaseExtensions": { - "description": "Extensions", - "type": "object", - "properties": { - "installed": { - "type": "array", - "description": "List of installed extensions.", - "items": { - "type": "string" - }, - "example": [ - "pgvector", - "uuid-ossp" - ] - }, - "available": { - "type": "array", - "description": "List of available extensions that can be installed.", - "items": { - "type": "string" - }, - "example": [ - "postgis", - "pg_trgm" - ] - }, - "metadata": { - "type": "array", - "description": "Curated metadata (display name, description, category) for each available extension.", - "items": { - "$ref": "#\/components\/schemas\/postgresExtension" - }, - "example": [] - } - }, - "required": [ - "installed", - "available", - "metadata" - ], - "example": { - "installed": [ - "pgvector", - "uuid-ossp" - ], - "available": [ - "postgis", - "pg_trgm" - ], - "metadata": [] - } - }, - "dedicatedDatabaseMember": { - "description": "Member", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Member identifier.", - "example": "1" - }, - "role": { - "type": "string", - "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", - "example": "replica" - }, - "status": { - "type": "string", - "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", - "example": "active" - }, - "replicating": { - "type": "boolean", - "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", - "example": true, - "nullable": true - }, - "lagSeconds": { - "type": "number", - "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", - "format": "double", - "example": 0.5, - "nullable": true - } - }, - "required": [ - "$id", - "role", - "status" - ], - "example": { - "$id": "1", - "role": "replica", - "status": "active", - "replicating": true, - "lagSeconds": 0.5 - } - }, - "dedicatedDatabaseOperation": { - "description": "Operation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Operation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Operation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID the operation ran against.", - "example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", - "example": "update" - }, - "status": { - "type": "string", - "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", - "example": "completed" - }, - "attempts": { - "type": "integer", - "description": "Number of times this operation has been attempted.", - "format": "int32", - "example": 1 - }, - "requestedAt": { - "type": "string", - "description": "Time the operation was requested, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "startedAt": { - "type": "string", - "description": "Time the operation started, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "completedAt": { - "type": "string", - "description": "Time the operation reached a terminal state, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "errorCode": { - "type": "string", - "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", - "example": "Interrupted" - }, - "errorMessage": { - "type": "string", - "description": "Failure message if the operation failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "type", - "status", - "attempts", - "errorCode", - "errorMessage" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "type": "update", - "status": "completed", - "attempts": 1, - "requestedAt": "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", - "errorCode": "Interrupted", - "errorMessage": "" - } - }, - "dedicatedDatabaseOperationList": { - "description": "OperationList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of operations.", - "format": "int32", - "example": 5 - }, - "operations": { - "type": "array", - "description": "List of operations.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - }, - "example": [] - } - }, - "required": [ - "total", - "operations" - ], - "example": { - "total": 5, - "operations": "" - } - }, - "dedicatedDatabaseReplicas": { - "description": "Replicas", - "type": "object", - "properties": { - "replicas": { - "type": "integer", - "description": "Number of configured replicas. Zero means high availability is disabled.", - "format": "int32", - "example": 2 - }, - "syncMode": { - "type": "string", - "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", - "example": "async" - }, - "effectiveSyncMode": { - "type": "string", - "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", - "example": "async", - "nullable": true - }, - "syncDegraded": { - "type": "boolean", - "description": "Whether the enforced replication is weaker than the requested syncMode.", - "example": false - }, - "syncAcknowledgements": { - "type": "integer", - "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", - "format": "int32", - "example": 1 - }, - "syncStandbyCount": { - "type": "integer", - "description": "Number of standbys registered with the primary for synchronous replication.", - "format": "int32", - "example": 2 - }, - "syncStateConfirmed": { - "type": "boolean", - "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", - "example": true, - "nullable": true - }, - "members": { - "type": "array", - "description": "Per-pod statuses for the primary and every replica.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" - }, - "example": [] - } - }, - "required": [ - "replicas", - "syncMode", - "syncDegraded", - "syncAcknowledgements", - "syncStandbyCount", - "members" - ], - "example": { - "replicas": 2, - "syncMode": "async", - "effectiveSyncMode": "async", - "syncDegraded": false, - "syncAcknowledgements": 1, - "syncStandbyCount": 2, - "syncStateConfirmed": true, - "members": [] - } - }, - "proxyInvalidation": { - "description": "Invalidation", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "example": "appwrite.company.com" - }, - "type": { - "type": "string", - "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", - "example": "tag" - }, - "reference": { - "type": "string", - "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", - "example": "products" - }, - "status": { - "type": "string", - "description": "Invalidation status.", - "example": "success" - } - }, - "required": [ - "domain", - "type", - "reference", - "status" - ], - "example": { - "domain": "appwrite.company.com", - "type": "tag", - "reference": "products", - "status": "success" - } - }, - "invoice": { - "description": "Invoice", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Invoice ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Invoice creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Invoice update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Invoice permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "teamId": { - "type": "string", - "description": "Project ID", - "example": "5e5ea5c16897e" - }, - "aggregationId": { - "type": "string", - "description": "Aggregation ID", - "example": "5e5ea5c16897e" - }, - "plan": { - "type": "string", - "description": "Billing plan selected. Can be one of `tier-0`, `tier-1` or `tier-2`.", - "example": "tier-1" - }, - "usage": { - "type": "array", - "description": "Usage breakdown per resource", - "items": { - "$ref": "#\/components\/schemas\/usageResources" - }, - "example": [] - }, - "amount": { - "type": "number", - "description": "Invoice Amount", - "format": "double", - "example": 50 - }, - "tax": { - "type": "number", - "description": "Tax percentage", - "format": "double", - "example": 17 - }, - "taxAmount": { - "type": "number", - "description": "Tax amount", - "format": "double", - "example": 12.5 - }, - "vat": { - "type": "number", - "description": "VAT percentage", - "format": "double", - "example": 17 - }, - "vatAmount": { - "type": "number", - "description": "VAT amount", - "format": "double", - "example": 12.5 - }, - "grossAmount": { - "type": "number", - "description": "Gross amount after vat, tax, and discounts applied.", - "format": "double", - "example": 12.5 - }, - "creditsUsed": { - "type": "number", - "description": "Credits used.", - "format": "double", - "example": 30 - }, - "currency": { - "type": "string", - "description": "Currency the invoice is in", - "example": "USD" - }, - "clientSecret": { - "type": "string", - "description": "Client secret for processing failed payments in front-end", - "example": "pi_daslfasdfkla_asdkfl" - }, - "status": { - "type": "string", - "description": "Invoice status", - "example": "succeeded" - }, - "type": { - "type": "string", - "description": "Invoice type. Can be one of `subscription`, `domain_purchase`, `domain_renewal`, `domain_transfer`, or `addon_*`.", - "example": "subscription" - }, - "lastError": { - "type": "string", - "description": "Last payment error associated with the invoice", - "example": "Your card has insufficient balance." - }, - "dueAt": { - "type": "string", - "description": "Invoice due date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "from": { - "type": "string", - "description": "Beginning date of the invoice", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "to": { - "type": "string", - "description": "End date of the invoice", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "teamId", - "aggregationId", - "plan", - "usage", - "amount", - "tax", - "taxAmount", - "vat", - "vatAmount", - "grossAmount", - "creditsUsed", - "currency", - "clientSecret", - "status", - "type", - "lastError", - "dueAt", - "from", - "to" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "teamId": "5e5ea5c16897e", - "aggregationId": "5e5ea5c16897e", - "plan": "tier-1", - "usage": [], - "amount": 50, - "tax": 17, - "taxAmount": 12.5, - "vat": 17, - "vatAmount": 12.5, - "grossAmount": 12.5, - "creditsUsed": 30, - "currency": "USD", - "clientSecret": "pi_daslfasdfkla_asdkfl", - "status": "succeeded", - "type": "subscription", - "lastError": "Your card has insufficient balance.", - "dueAt": "2020-10-15T06:38:00.000+00:00", - "from": "2020-10-15T06:38:00.000+00:00", - "to": "2020-10-15T06:38:00.000+00:00" - } - }, - "managerBlock": { - "description": "ManagerBlock", - "type": "object", - "properties": { - "$createdAt": { - "type": "string", - "description": "Block creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceType": { - "type": "string", - "description": "Resource type that is blocked", - "example": "project" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier that is blocked", - "example": "5e5ea5c16897e" - }, - "mode": { - "type": "string", - "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", - "example": "readOnly" - }, - "expiredAt": { - "type": "string", - "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "reason": { - "type": "string", - "description": "Reason for the block. Can be null if no reason was provided.", - "example": "Payment overdue", - "nullable": true - }, - "projectName": { - "type": "string", - "description": "Name of the project this block applies to.", - "example": "My Project" - }, - "region": { - "type": "string", - "description": "Region of the project this block applies to.", - "example": "fra" - }, - "organizationName": { - "type": "string", - "description": "Name of the organization that owns the project.", - "example": "Acme Inc." - }, - "organizationId": { - "type": "string", - "description": "ID of the organization that owns the project.", - "example": "5e5ea5c16897e" - }, - "billingPlan": { - "type": "string", - "description": "Billing plan of the organization that owns the project.", - "example": "pro" - } - }, - "required": [ - "$createdAt", - "resourceType", - "resourceId", - "mode", - "projectName", - "region", - "organizationName", - "organizationId", - "billingPlan" - ], - "example": { - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "mode": "readOnly", - "expiredAt": "2020-10-15T06:38:00.000+00:00", - "reason": "Payment overdue", - "projectName": "My Project", - "region": "fra", - "organizationName": "Acme Inc.", - "organizationId": "5e5ea5c16897e", - "billingPlan": "pro" - } - }, - "managerBlockDelete": { - "description": "ManagerBlockDelete", - "type": "object", - "properties": { - "deleted": { - "type": "integer", - "description": "Number of blocks deleted", - "format": "int32", - "example": 1 - }, - "blocks": { - "type": "array", - "description": "List of deleted blocks", - "items": { - "$ref": "#\/components\/schemas\/managerBlock" - }, - "example": [] - } - }, - "required": [ - "deleted", - "blocks" - ], - "example": { - "deleted": 1, - "blocks": [] - } - }, - "organization": { - "description": "Organization", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Team creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "total": { - "type": "integer", - "description": "Total number of team members.", - "format": "int32", - "example": 7 - }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "billingBudget": { - "type": "integer", - "description": "Project budget limit. Null when no budget is set.", - "format": "int32", - "example": 50, - "nullable": true - }, - "budgetAlerts": { - "type": "array", - "description": "Project budget limit", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [ - 50, - 75 - ] - }, - "billingPlan": { - "type": "string", - "description": "Organization's billing plan ID.", - "example": "tier-1" - }, - "billingPlanId": { - "type": "string", - "description": "Organization's billing plan ID.", - "example": "tier-1" - }, - "billingPlanDetails": { - "type": "object", - "description": "Organization's billing plan.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlan" - } - ] - }, - "billingEmail": { - "type": "string", - "description": "Billing email set for the organization.", - "example": "billing@org.example" - }, - "billingStartDate": { - "type": "string", - "description": "Billing cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingCurrentInvoiceDate": { - "type": "string", - "description": "Current invoice cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingNextInvoiceDate": { - "type": "string", - "description": "Next invoice cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingTrialStartDate": { - "type": "string", - "description": "Start date of trial.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "billingTrialDays": { - "type": "integer", - "description": "Number of trial days.", - "format": "int32", - "example": 14 - }, - "billingAggregationId": { - "type": "string", - "description": "Current active aggregation id.", - "example": "adbc3de4rddfsd" - }, - "billingInvoiceId": { - "type": "string", - "description": "Current active aggregation id.", - "example": "adbc3de4rddfsd" - }, - "paymentMethodId": { - "type": "string", - "description": "Default payment method.", - "example": "adbc3de4rddfsd" - }, - "billingAddressId": { - "type": "string", - "description": "Default payment method.", - "example": "adbc3de4rddfsd", - "nullable": true - }, - "backupPaymentMethodId": { - "type": "string", - "description": "Backup payment method.", - "example": "adbc3de4rddfsd", - "nullable": true - }, - "status": { - "type": "string", - "description": "Team status.", - "example": "active" - }, - "remarks": { - "type": "string", - "description": "Remarks on team status.", - "example": "Pending initial payment", - "nullable": true - }, - "agreementBAA": { - "type": "string", - "description": "Organization agreements", - "example": "", - "nullable": true - }, - "programManagerName": { - "type": "string", - "description": "Program manager's name.", - "example": "", - "nullable": true - }, - "programManagerCalendar": { - "type": "string", - "description": "Program manager's calendar link.", - "example": "", - "nullable": true - }, - "programDiscordChannelName": { - "type": "string", - "description": "Program's discord channel name.", - "example": "", - "nullable": true - }, - "programDiscordChannelUrl": { - "type": "string", - "description": "Program's discord channel URL.", - "example": "", - "nullable": true - }, - "billingLimits": { - "type": "object", - "description": "Billing limits reached", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingLimits" - } - ], - "nullable": true - }, - "billingPlanDowngrade": { - "type": "string", - "description": "Billing plan selected for downgrade.", - "example": "tier-1", - "nullable": true - }, - "billingTaxId": { - "type": "string", - "description": "Tax Id", - "example": "", - "nullable": true - }, - "markedForDeletion": { - "type": "boolean", - "description": "Marked for deletion" - }, - "platform": { - "type": "string", - "description": "Product with which the organization is associated (appwrite or imagine)", - "example": "imagine" - }, - "projects": { - "type": "array", - "description": "Selected projects", - "items": { - "type": "string" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "total", - "prefs", - "budgetAlerts", - "billingPlan", - "billingPlanId", - "billingPlanDetails", - "billingEmail", - "billingStartDate", - "billingCurrentInvoiceDate", - "billingNextInvoiceDate", - "billingTrialDays", - "billingAggregationId", - "billingInvoiceId", - "paymentMethodId", - "status", - "markedForDeletion", - "platform", - "projects" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "VIP", - "total": 7, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "billingBudget": 50, - "budgetAlerts": [ - 50, - 75 - ], - "billingPlan": "tier-1", - "billingPlanId": "tier-1", - "billingPlanDetails": null, - "billingEmail": "billing@org.example", - "billingStartDate": "2020-10-15T06:38:00.000+00:00", - "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", - "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", - "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", - "billingTrialDays": 14, - "billingAggregationId": "adbc3de4rddfsd", - "billingInvoiceId": "adbc3de4rddfsd", - "paymentMethodId": "adbc3de4rddfsd", - "billingAddressId": "adbc3de4rddfsd", - "backupPaymentMethodId": "adbc3de4rddfsd", - "status": "active", - "remarks": "Pending initial payment", - "agreementBAA": "", - "programManagerName": "", - "programManagerCalendar": "", - "programDiscordChannelName": "", - "programDiscordChannelUrl": "", - "billingLimits": "", - "billingPlanDowngrade": "tier-1", - "billingTaxId": "", - "markedForDeletion": "", - "platform": "imagine", - "projects": "" - } - }, - "paymentAuthentication": { - "description": "PaymentAuthentication", - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Message for the end user to show on Console.", - "example": "" - }, - "clientSecret": { - "type": "string", - "description": "Stripe client secret to use for validation.", - "example": "" - }, - "organizationId": { - "type": "string", - "description": "Organization ID for which the payment authentication is needed.", - "example": "" - }, - "invoiceId": { - "type": "string", - "description": "Invoice ID against which the payment needs to be validated.", - "example": "" - }, - "addonId": { - "type": "string", - "description": "Addon ID to use when calling the addon validate endpoint. Empty when authentication is not for an addon.", - "example": "" - }, - "projectId": { - "type": "string", - "description": "Project ID for project-level addon payments. Empty for organization-level addons.", - "example": "" - } - }, - "required": [ - "message", - "clientSecret", - "organizationId", - "invoiceId", - "addonId", - "projectId" - ], - "example": { - "message": "", - "clientSecret": "", - "organizationId": "", - "invoiceId": "", - "addonId": "", - "projectId": "" - } - }, - "paymentMethod": { - "description": "paymentMethod", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Payment Method ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Payment method creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Payment method update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Payment method permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "providerMethodId": { - "type": "string", - "description": "Payment method ID from the payment provider", - "example": "abdk3ed3sdkfj" - }, - "clientSecret": { - "type": "string", - "description": "Client secret hash for payment setup", - "example": "seti_ddfe" - }, - "providerUserId": { - "type": "string", - "description": "User ID from the payment provider.", - "example": "abdk3ed3sdkfj" - }, - "userId": { - "type": "string", - "description": "ID of the Team.", - "example": "5e5ea5c16897e" - }, - "expiryMonth": { - "type": "integer", - "description": "Expiry month of the payment method.", - "format": "int32", - "example": 2 - }, - "expiryYear": { - "type": "integer", - "description": "Expiry year of the payment method.", - "format": "int32", - "example": 2024 - }, - "last4": { - "type": "string", - "description": "Last 4 digit of the payment method", - "example": "4242" - }, - "brand": { - "type": "string", - "description": "Payment method brand", - "example": "visa" - }, - "name": { - "type": "string", - "description": "Name of the owner", - "example": "John Doe" - }, - "mandateId": { - "type": "string", - "description": "Mandate ID of the payment method", - "example": "yxc" - }, - "country": { - "type": "string", - "description": "Country of the payment method", - "example": "de" - }, - "state": { - "type": "string", - "description": "State of the payment method", - "example": "" - }, - "lastError": { - "type": "string", - "description": "Last payment error associated with the payment method.", - "example": "Your card has insufficient funds." - }, - "default": { - "type": "boolean", - "description": "True when it's the default payment method.", - "example": false - }, - "expired": { - "type": "boolean", - "description": "True when payment method has expired.", - "example": false - }, - "failed": { - "type": "boolean", - "description": "True when payment method has failed to process multiple times.", - "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 - } - }, - "dedicatedDatabasePITRWindows": { - "description": "PITRWindows", - "type": "object", - "properties": { - "earliest": { - "type": "string", - "description": "Earliest available recovery point.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latest": { - "type": "string", - "description": "Latest available recovery point.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "earliest", - "latest" - ], - "example": { - "earliest": "2020-10-15T06:38:00.000+00:00", - "latest": "2020-10-15T06:38:00.000+00:00" - } - }, - "planChangeEstimationDetails": { - "description": "PlanChangeEstimationDetails", - "type": "object", - "properties": { - "currency": { - "type": "string", - "description": "Currency code", - "example": "USD" - }, - "grossAmount": { - "type": "number", - "description": "Gross amount after all discounts and credits", - "format": "double", - "example": 15 - }, - "credits": { - "type": "number", - "description": "Credits applied from coupon", - "format": "double", - "example": 0 - }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits applied", - "format": "double", - "example": 5 - }, - "discount": { - "type": "number", - "description": "Discount amount from prorated invoices", - "format": "double", - "example": 0 - }, - "amount": { - "type": "number", - "description": "Total amount before discounts and credits", - "format": "double", - "example": 20 - }, - "nextInvoiceDate": { - "type": "string", - "description": "Next invoice date", - "example": "2025-12-01T00:00:00.000Z" - }, - "items": { - "type": "array", - "description": "Line items breakdown", - "items": { - "type": "object" - }, - "example": [ - { - "label": "Free plan", - "value": 0 - }, - { - "label": "Additional seats", - "value": 10 - } - ] - }, - "discounts": { - "type": "array", - "description": "Applied discounts breakdown", - "items": { - "type": "object" - }, - "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": "Free plan", - "value": 0 - }, - { - "label": "Additional seats", - "value": 10 - } - ], - "discounts": [ - { - "label": "Organization credits", - "value": 5 - } - ] - } - }, - "planChangeLimits": { - "description": "PlanChangeLimits", - "type": "object", - "properties": { - "canChangePlan": { - "type": "boolean", - "description": "Whether the plan change is allowed", - "example": false - }, - "unsupportedAddons": { - "type": "array", - "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", - "items": { - "type": "string" - }, - "example": [ - "baa" - ] - }, - "projects": { - "type": "object", - "description": "Project count against the target plan limit", - "example": {}, - "allOf": [ - { - "$ref": "#\/components\/schemas\/planChangeResourceCompliance" - } - ] - }, - "members": { - "type": "object", - "description": "Organization member count against the target plan limit", - "example": {}, - "allOf": [ - { - "$ref": "#\/components\/schemas\/planChangeResourceCompliance" - } - ] - }, - "domains": { - "type": "object", - "description": "Custom domain count against the target plan limit", - "example": {}, - "allOf": [ - { - "$ref": "#\/components\/schemas\/planChangeResourceCompliance" - } - ] - }, - "nonCompliantProjects": { - "type": "integer", - "description": "Number of projects exceeding target plan limits", - "format": "int32", - "example": 2 - }, - "projectCompliance": { - "type": "array", - "description": "Per-project compliance details. Populated for downgrades only.", - "items": { - "$ref": "#\/components\/schemas\/planChangeProjectCompliance" - }, - "example": [] - } - }, - "required": [ - "canChangePlan", - "unsupportedAddons", - "projects", - "members", - "domains", - "nonCompliantProjects", - "projectCompliance" - ], - "example": { - "canChangePlan": false, - "unsupportedAddons": [ - "baa" - ], - "projects": {}, - "members": {}, - "domains": {}, - "nonCompliantProjects": 2, - "projectCompliance": [] - } - }, - "planChangeProjectCompliance": { - "description": "PlanChangeProjectCompliance", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID", - "example": "proj_a" - }, - "name": { - "type": "string", - "description": "Project name", - "example": "Marketing Site" - }, - "isCompliant": { - "type": "boolean", - "description": "Whether the project complies with target plan limits", - "example": false - }, - "resources": { - "type": "array", - "description": "Resource compliance details", - "items": { - "$ref": "#\/components\/schemas\/planChangeResourceCompliance" - }, - "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.", - "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", - "example": "databases" - }, - "currentUsage": { - "type": "integer", - "description": "Current usage count", - "format": "int32", - "example": 3 - }, - "limit": { - "type": "integer", - "description": "Allowed limit in target plan", - "format": "int32", - "example": 1 - }, - "status": { - "type": "string", - "description": "Compliance status. Either `over_limit` or `within_limit`.", - "example": "over_limit" - }, - "excess": { - "type": "integer", - "description": "Number of resources exceeding the limit", - "format": "int32", - "example": 2 - }, - "resolutionHint": { - "type": "string", - "description": "Suggestion for resolving the compliance issue. Empty when the resource is within limits.", - "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.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Backup policy name.", - "example": "Hourly backups" - }, - "$createdAt": { - "type": "string", - "description": "Policy creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Policy update date in ISO 8601 format.", - "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" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this policy should backup a single resource.", - "example": "DB1", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this policy should backup a single resource.", - "example": "database", - "nullable": true - }, - "retention": { - "type": "integer", - "description": "How many days to keep the backup before it will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "schedule": { - "type": "string", - "description": "Policy backup schedule in CRON format.", - "example": "0 * * * *" - }, - "type": { - "type": "string", - "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", - "example": "full" - }, - "enabled": { - "type": "boolean", - "description": "Is this policy enabled.", - "example": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "services", - "resources", - "retention", - "schedule", - "type", - "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 * * * *", - "type": "full", - "enabled": true - } - }, - "dedicatedDatabasePooler": { - "description": "PoolerConfig", - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether connection pooling is enabled.", - "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).", - "example": "transaction" - }, - "maxConnections": { - "type": "integer", - "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", - "format": "int32", - "example": 200 - }, - "defaultPoolSize": { - "type": "integer", - "description": "Default pool size per user.", - "format": "int32", - "example": 25 - }, - "port": { - "type": "integer", - "description": "Pooler listening port.", - "format": "int32", - "example": 6432 - }, - "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.", - "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.", - "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.", - "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.", - "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.", - "example": "128Mi" - } - }, - "required": [ - "enabled", - "mode", - "maxConnections", - "defaultPoolSize", - "port", - "readWriteSplitting", - "poolerCpuRequest", - "poolerCpuLimit", - "poolerMemoryRequest", - "poolerMemoryLimit" - ], - "example": { - "enabled": true, - "mode": "transaction", - "maxConnections": 200, - "defaultPoolSize": 25, - "port": 6432, - "readWriteSplitting": true, - "poolerCpuRequest": "100m", - "poolerCpuLimit": "200m", - "poolerMemoryRequest": "64Mi", - "poolerMemoryLimit": "128Mi" - } - }, - "postgresExtension": { - "description": "Postgres extension", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Extension key used with CREATE EXTENSION.", - "example": "vector" - }, - "name": { - "type": "string", - "description": "Human-readable extension name.", - "example": "pgvector" - }, - "description": { - "type": "string", - "description": "Short description of what the extension provides.", - "example": "Vector data type and similarity search for embeddings." - }, - "category": { - "type": "string", - "description": "Category the extension belongs to.", - "example": "search" - } - }, - "required": [ - "key", - "name", - "description", - "category" - ], - "example": { - "key": "vector", - "name": "pgvector", - "description": "Vector data type and similarity search for embeddings.", - "category": "search" - } - }, - "program": { - "description": "Program", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Program ID", - "example": "" - }, - "title": { - "type": "string", - "description": "Program title", - "example": "" - }, - "description": { - "type": "string", - "description": "Program description", - "example": "" - }, - "tag": { - "type": "string", - "description": "Program tag for highlighting on console" - }, - "icon": { - "type": "string", - "description": "Program icon for highlighting on console" - }, - "url": { - "type": "string", - "description": "URL for more information on this program", - "example": "" - }, - "active": { - "type": "boolean", - "description": "Whether this program is active", - "example": false - }, - "external": { - "type": "boolean", - "description": "Whether this program is external", - "example": false - }, - "billingPlanId": { - "type": "string", - "description": "Billing plan ID that this is program is associated with.", - "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": "" - } - }, - "consoleRegion": { - "description": "Region", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Region ID", - "example": "eu-fr" - }, - "name": { - "type": "string", - "description": "Region name", - "example": "EU (Frankfurt)" - }, - "available": { - "type": "boolean", - "description": "Does the organization have access to this region. Null when access has not been resolved.", - "example": false, - "nullable": true - }, - "disabled": { - "type": "boolean", - "description": "Does the backend support this region.", - "example": false - }, - "default": { - "type": "boolean", - "description": "Is this the region default.", - "example": true - }, - "flag": { - "type": "string", - "description": "Region flag code.", - "example": "fr" - } - }, - "required": [ - "$id", - "name", - "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.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Restoration update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "archiveId": { - "type": "string", - "description": "Backup archive ID.", - "example": "did8jx6ws45jana098ab7" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID.", - "example": "did8jx6ws45jana098ab7" - }, - "status": { - "type": "string", - "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", - "example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The restoration start time. Null until the restoration starts.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "options": { - "type": "object", - "additionalProperties": true, - "description": "Restoration options as a key-value object.", - "example": { - "databases": { - "database": [ - { - "oldId": "old", - "newId": "new", - "newName": "Restored" - } - ] - } - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "archiveId", - "policyId", - "status", - "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": "old", - "newId": "new", - "newName": "Restored" - } - ] - } - } - } - }, - "dedicatedDatabaseRestorationList": { - "description": "Dedicated database restorations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of restorations that matched your query.", - "format": "int32", - "example": 5 - }, - "restorations": { - "type": "array", - "description": "List of restorations.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - }, - "example": [] - } - }, - "required": [ - "total", - "restorations" - ], - "example": { - "total": 5, - "restorations": "" - } - }, - "review": { - "description": "Review", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of user", - "example": "" - }, - "image": { - "type": "string", - "description": "Reviewer image", - "example": "" - }, - "description": { - "type": "string", - "description": "Reviewer description", - "example": "" - }, - "review": { - "type": "string", - "description": "Review", - "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" - }, - "example": [ - "users.read" - ] - }, - "roles": { - "type": "array", - "description": "Array of roles assigned to current user.", - "items": { - "type": "string" - }, - "example": [ - "developer" - ] - } - }, - "required": [ - "scopes", - "roles" - ], - "example": { - "scopes": "users.read", - "roles": "developer" - } - }, - "dedicatedDatabaseSpecification": { - "description": "Specification", - "type": "object", - "properties": { - "slug": { - "type": "string", - "description": "Specification slug. Use this value when creating a dedicated database.", - "example": "s-2vcpu-2gb" - }, - "name": { - "type": "string", - "description": "Human readable specification name.", - "example": "Standard" - }, - "price": { - "type": "number", - "description": "Monthly price of the specification in USD.", - "format": "double", - "example": 20 - }, - "storageOverageRate": { - "type": "number", - "description": "Price per GB of storage above the included amount, per month, in USD.", - "format": "double", - "example": 0.125 - }, - "bandwidthOverageRate": { - "type": "number", - "description": "Price per GB of bandwidth above the included amount, per month, in USD.", - "format": "double", - "example": 0.08 - }, - "replicaRate": { - "type": "number", - "description": "High availability replica price as a fraction of the specification price.", - "format": "double", - "example": 1 - }, - "pitrRate": { - "type": "number", - "description": "Point-in-time recovery price as a fraction of the specification price.", - "format": "double", - "example": 0.2 - }, - "cpu": { - "type": "integer", - "description": "Allocated CPU in millicores.", - "format": "int32", - "example": 2000 - }, - "memory": { - "type": "integer", - "description": "Allocated memory in MB.", - "format": "int32", - "example": 2048 - }, - "maxConnections": { - "type": "integer", - "description": "Maximum number of concurrent connections.", - "format": "int32", - "example": 200 - }, - "includedStorage": { - "type": "integer", - "description": "Included storage in GB before overage charges apply.", - "format": "int32", - "example": 25 - }, - "includedBandwidth": { - "type": "integer", - "description": "Included bandwidth in GB before overage charges apply.", - "format": "int32", - "example": 200 - }, - "enabled": { - "type": "boolean", - "description": "Whether the specification is available on the current plan.", - "example": true - } - }, - "required": [ - "slug", - "name", - "price", - "storageOverageRate", - "bandwidthOverageRate", - "replicaRate", - "pitrRate", - "cpu", - "memory", - "maxConnections", - "includedStorage", - "includedBandwidth", - "enabled" - ], - "example": { - "slug": "s-2vcpu-2gb", - "name": "Standard", - "price": 20, - "storageOverageRate": 0.125, - "bandwidthOverageRate": 0.08, - "replicaRate": 1, - "pitrRate": 0.2, - "cpu": 2000, - "memory": 2048, - "maxConnections": 200, - "includedStorage": 25, - "includedBandwidth": 200, - "enabled": true - } - }, - "dedicatedDatabaseSpecificationList": { - "description": "SpecificationList", - "type": "object", - "properties": { - "specifications": { - "type": "array", - "description": "List of dedicated database specifications.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" - }, - "example": [] - }, - "total": { - "type": "integer", - "description": "Total number of specifications.", - "format": "int32", - "example": 9 - } - }, - "required": [ - "specifications", - "total" - ], - "example": { - "specifications": [], - "total": 9 - } - }, - "databaseStatusConnections": { - "description": "Connections", - "type": "object", - "properties": { - "current": { - "type": "integer", - "description": "Current number of active connections.", - "format": "int32", - "example": 12 - }, - "max": { - "type": "integer", - "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", - "format": "int32", - "example": 100 - } - }, - "required": [ - "current", - "max" - ], - "example": { - "current": 12, - "max": 100 - } - }, - "databaseStatusReplica": { - "description": "Replica", - "type": "object", - "properties": { - "index": { - "type": "integer", - "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", - "format": "int32", - "example": 0 - }, - "role": { - "type": "string", - "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", - "example": "primary" - }, - "healthy": { - "type": "boolean", - "description": "Whether the replica is healthy.", - "example": true - }, - "replicating": { - "type": "boolean", - "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", - "example": true, - "nullable": true - }, - "lagSeconds": { - "type": "number", - "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", - "format": "double", - "example": 0.2, - "nullable": true - } - }, - "required": [ - "index", - "role", - "healthy" - ], - "example": { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - }, - "databaseStatusVolume": { - "description": "Volume", - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Mount path of the volume.", - "example": "\/var\/lib\/postgresql\/data" - }, - "usedPercent": { - "type": "string", - "description": "Percentage of storage used.", - "example": "45%" - }, - "available": { - "type": "string", - "description": "Available storage space.", - "example": "55GB" - }, - "mounted": { - "type": "boolean", - "description": "Whether the volume is mounted.", - "example": true - } - }, - "required": [ - "path", - "usedPercent", - "available", - "mounted" - ], - "example": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - }, - "usageBillingPlan": { - "description": "usageBillingPlan", - "type": "object", - "properties": { - "bandwidth": { - "type": "object", - "description": "Bandwidth additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "executions": { - "type": "object", - "description": "Executions additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "member": { - "type": "object", - "description": "Member additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - }, - "realtime": { - "type": "object", - "description": "Realtime additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeMessages": { - "type": "object", - "description": "Realtime messages additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeBandwidth": { - "type": "object", - "description": "Realtime bandwidth additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - }, - "storage": { - "type": "object", - "description": "Storage additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "users": { - "type": "object", - "description": "User additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "GBHours": { - "type": "object", - "description": "GBHour additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "imageTransformations": { - "type": "object", - "description": "Image transformation additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "credits": { - "type": "object", - "description": "Credits additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - } - }, - "required": [ - "bandwidth", - "executions", - "realtime", - "realtimeMessages", - "storage", - "users", - "GBHours", - "imageTransformations" - ], - "example": { - "bandwidth": null, - "executions": null, - "member": null, - "realtime": null, - "realtimeMessages": null, - "realtimeBandwidth": null, - "storage": null, - "users": null, - "GBHours": null, - "imageTransformations": null, - "credits": null - } - }, - "usageOrganization": { - "description": "Organization", - "type": "object", - "properties": { - "bandwidth": { - "type": "array", - "description": "Aggregated stats for number of requests.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "users": { - "type": "array", - "description": "Aggregated stats for consumed bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated stats for function executions.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "databasesReads": { - "type": "array", - "description": "Aggregated stats for database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "databasesWrites": { - "type": "array", - "description": "Aggregated stats for database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "imageTransformations": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "format": "int32", - "example": 0 - }, - "screenshotsGenerated": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "format": "int32", - "example": 0 - }, - "usersTotal": { - "type": "integer", - "description": "Aggregated stats for total users.", - "format": "int32", - "example": 0 - }, - "executionsTotal": { - "type": "integer", - "description": "Aggregated stats for total executions.", - "format": "int32", - "example": 0 - }, - "executionsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "format": "int32", - "example": 0 - }, - "buildsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "format": "int32", - "example": 0 - }, - "filesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total file storage.", - "format": "int32", - "example": 0 - }, - "buildsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total builds storage.", - "format": "int32", - "example": 0 - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total deployments storage.", - "format": "int32", - "example": 0 - }, - "databasesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total databases storage.", - "format": "int32", - "example": 0 - }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "format": "int32", - "example": 0 - }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "format": "int32", - "example": 0 - }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "format": "int32", - "example": 0 - }, - "avatarsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total custom user photos storage.", - "format": "int32", - "example": 0 - }, - "storageTotal": { - "type": "integer", - "description": "Aggregated stats for total storage.", - "format": "int32", - "example": 0 - }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for total auth phone.", - "format": "int32", - "example": 0 - }, - "authPhoneEstimate": { - "type": "integer", - "description": "Aggregated stats for total auth phone estimation.", - "format": "int32", - "example": 0 - }, - "projects": { - "type": "array", - "description": "Aggregated stats for each projects.", - "items": { - "$ref": "#\/components\/schemas\/usageOrganizationProject" - }, - "example": [] - }, - "realtimeConnections": { - "type": "array", - "description": "Aggregated stats for realtime connections.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "realtimeConnectionsTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime connections.", - "format": "int32", - "example": 0 - }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated stats for realtime messages.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "realtimeMessagesTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime messages.", - "format": "int32", - "example": 0 - }, - "realtimeBandwidth": { - "type": "array", - "description": "Aggregated stats for realtime bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "realtimeBandwidthTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime bandwidth.", - "format": "int32", - "example": 0 - } - }, - "required": [ - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "usersTotal", - "executionsTotal", - "executionsMBSecondsTotal", - "buildsMBSecondsTotal", - "filesStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "databasesStorageTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "backupsStorageTotal", - "avatarsStorageTotal", - "storageTotal", - "authPhoneTotal", - "authPhoneEstimate", - "projects", - "realtimeConnections", - "realtimeConnectionsTotal", - "realtimeMessages", - "realtimeMessagesTotal", - "realtimeBandwidth", - "realtimeBandwidthTotal" - ], - "example": { - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "usersTotal": 0, - "executionsTotal": 0, - "executionsMBSecondsTotal": 0, - "buildsMBSecondsTotal": 0, - "filesStorageTotal": 0, - "buildsStorageTotal": 0, - "deploymentsStorageTotal": 0, - "databasesStorageTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "backupsStorageTotal": 0, - "avatarsStorageTotal": 0, - "storageTotal": 0, - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "projects": [], - "realtimeConnections": [], - "realtimeConnectionsTotal": 0, - "realtimeMessages": [], - "realtimeMessagesTotal": 0, - "realtimeBandwidth": [], - "realtimeBandwidthTotal": 0 - } - }, - "usageOrganizationProject": { - "description": "OrganizationProject", - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "projectId", - "example": "5e5ea5c16897e" - }, - "bandwidth": { - "type": "integer", - "description": "Aggregated stats for number of requests.", - "format": "int32", - "example": 0 - }, - "users": { - "type": "integer", - "description": "Aggregated stats for consumed bandwidth.", - "format": "int32", - "example": 0 - }, - "executions": { - "type": "integer", - "description": "Aggregated stats for function executions.", - "format": "int32", - "example": 0 - }, - "databasesReads": { - "type": "integer", - "description": "Aggregated stats for database reads.", - "format": "int32", - "example": 0 - }, - "databasesWrites": { - "type": "integer", - "description": "Aggregated stats for database writes.", - "format": "int32", - "example": 0 - }, - "executionsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "format": "int32", - "example": 0 - }, - "buildsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "format": "int32", - "example": 0 - }, - "storage": { - "type": "integer", - "description": "Aggregated stats for number of documents.", - "format": "int32", - "example": 0 - }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for phone authentication.", - "format": "int32", - "example": 0 - }, - "authPhoneEstimate": { - "type": "number", - "description": "Aggregated stats for phone authentication estimated cost.", - "format": "double", - "example": 0 - }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "format": "int32", - "example": 0 - }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "format": "int32", - "example": 0 - }, - "imageTransformations": { - "type": "integer", - "description": "Aggregated stats for file transformations.", - "format": "int32", - "example": 0 - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "format": "int32", - "example": 0 - }, - "screenshotsGenerated": { - "type": "integer", - "description": "Aggregated stats for file transformations.", - "format": "int32", - "example": 0 - }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "format": "int32", - "example": 0 - }, - "realtimeConnections": { - "type": "integer", - "description": "Aggregated stats for realtime connections.", - "format": "int32", - "example": 0 - }, - "realtimeMessages": { - "type": "integer", - "description": "Aggregated stats for realtime messages.", - "format": "int32", - "example": 0 - }, - "realtimeBandwidth": { - "type": "integer", - "description": "Aggregated stats for realtime bandwidth.", - "format": "int32", - "example": 0 - } - }, - "required": [ - "projectId", - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "executionsMBSeconds", - "buildsMBSeconds", - "storage", - "authPhoneTotal", - "authPhoneEstimate", - "databasesReadsTotal", - "databasesWritesTotal", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" - ], - "example": { - "projectId": "5e5ea5c16897e", - "bandwidth": 0, - "users": 0, - "executions": [], - "databasesReads": 0, - "databasesWrites": 0, - "executionsMBSeconds": 0, - "buildsMBSeconds": 0, - "storage": [], - "authPhoneTotal": [], - "authPhoneEstimate": [], - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "imageTransformations": 0, - "imageTransformationsTotal": 0, - "screenshotsGenerated": 0, - "screenshotsGeneratedTotal": 0, - "realtimeConnections": 0, - "realtimeMessages": 0, - "realtimeBandwidth": 0 - } - }, - "usageResources": { - "description": "Resource", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Invoice name", - "example": "" - }, - "value": { - "type": "integer", - "description": "Invoice value", - "format": "int32", - "example": 0 - }, - "amount": { - "type": "number", - "description": "Invoice amount", - "format": "double", - "example": 500 - }, - "rate": { - "type": "number", - "description": "Invoice rate", - "format": "double", - "example": 12.5 - }, - "desc": { - "type": "string", - "description": "Invoice description", - "example": "Your monthly recurring Pro plan." - }, - "resourceId": { - "type": "string", - "description": "Resource ID", - "example": "" - }, - "type": { - "type": "string", - "description": "Dedicated database engine type for per-database line items (e.g. postgresql). Empty for other resources.", - "example": "postgresql" - }, - "specification": { - "type": "string", - "description": "Dedicated database specification slug for per-database line items (e.g. s-2vcpu-2gb). Empty for other resources.", - "example": "s-2vcpu-2gb" - } - }, - "required": [ - "name", - "value", - "amount", - "rate", - "desc", - "resourceId", - "type", - "specification" - ], - "example": { - "name": "", - "value": 0, - "amount": 500, - "rate": 12.5, - "desc": "Your monthly recurring Pro plan.", - "resourceId": "", - "type": "postgresql", - "specification": "s-2vcpu-2gb" - } - }, - "app": { - "description": "App", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Application name.", - "example": "My Application" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "example": "Connect your workspace to My Application." - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com" - }, - "logoUri": { - "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/logo.png" - }, - "privacyPolicyUrl": { - "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/privacy" - }, - "termsUrl": { - "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/terms" - }, - "contacts": { - "type": "array", - "description": "Application support or security contact emails.", - "items": { - "type": "string" - }, - "example": [ - "support@example.com" - ] - }, - "tagline": { - "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "example": "Automate your workspace." - }, - "tags": { - "type": "array", - "description": "Application tags shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "productivity", - "automation" - ] - }, - "labels": { - "type": "array", - "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", - "items": { - "type": "string" - }, - "example": [ - "featured" - ] - }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/screenshot.png" - ] - }, - "supportUrl": { - "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/support" - }, - "dataDeletionUrl": { - "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/data-deletion" - }, - "redirectUris": { - "type": "array", - "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/callback" - ] - }, - "postLogoutRedirectUris": { - "type": "array", - "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/logged-out" - ] - }, - "enabled": { - "type": "boolean", - "description": "Whether the app is enabled or not.", - "example": true - }, - "type": { - "type": "string", - "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", - "example": "confidential" - }, - "deviceFlow": { - "type": "boolean", - "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", - "example": false - }, - "teamId": { - "type": "string", - "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", - "example": "5e5ea5c16897e" - }, - "installationScopes": { - "type": "array", - "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "installationRedirectUrl": { - "type": "string", - "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", - "example": "https:\/\/example.com\/setup" - }, - "secrets": { - "type": "array", - "description": "List of application secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "clientUri", - "logoUri", - "privacyPolicyUrl", - "termsUrl", - "contacts", - "tagline", - "tags", - "labels", - "images", - "supportUrl", - "dataDeletionUrl", - "redirectUris", - "postLogoutRedirectUris", - "enabled", - "type", - "deviceFlow", - "teamId", - "userId", - "installationScopes", - "installationRedirectUrl", - "secrets" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Application", - "description": "Connect your workspace to My Application.", - "clientUri": "https:\/\/example.com", - "logoUri": "https:\/\/example.com\/logo.png", - "privacyPolicyUrl": "https:\/\/example.com\/privacy", - "termsUrl": "https:\/\/example.com\/terms", - "contacts": [ - "support@example.com" - ], - "tagline": "Automate your workspace.", - "tags": [ - "productivity", - "automation" - ], - "labels": [ - "featured" - ], - "images": [ - "https:\/\/example.com\/screenshot.png" - ], - "supportUrl": "https:\/\/example.com\/support", - "dataDeletionUrl": "https:\/\/example.com\/data-deletion", - "redirectUris": [ - "https:\/\/example.com\/callback" - ], - "postLogoutRedirectUris": [ - "https:\/\/example.com\/logged-out" - ], - "enabled": true, - "type": "confidential", - "deviceFlow": false, - "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "installationScopes": [ - "organization:organization.read" - ], - "installationRedirectUrl": "https:\/\/example.com\/setup", - "secrets": [] - } - }, - "appSecret": { - "description": "AppSecret", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", - "example": "" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appSecretPlaintext": { - "description": "AppSecretPlaintext", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appScope": { - "description": "AppScope", - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Scope value as requested by apps.", - "example": "organization:organization.read" - }, - "description": { - "type": "string", - "description": "Human-readable description of what the scope grants.", - "example": "Access to read the organization" - }, - "type": { - "type": "string", - "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", - "example": "organization" - }, - "category": { - "type": "string", - "description": "Scope category, used to group scopes on consent and installation screens.", - "example": "Organization" - }, - "deprecated": { - "type": "boolean", - "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", - "example": false - } - }, - "required": [ - "value", - "description", - "type", - "category", - "deprecated" - ], - "example": { - "value": "organization:organization.read", - "description": "Access to read the organization", - "type": "organization", - "category": "Organization", - "deprecated": false - } - }, - "appInstallation": { - "description": "AppInstallation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Installation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Installation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Installation update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the installed application.", - "example": "5e5ea5c16897e" - }, - "teamId": { - "type": "string", - "description": "ID of the team the application is installed on.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "authorizationDetails": { - "type": "array", - "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", - "items": { - "type": "object" - }, - "example": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ] - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the installation.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the installation.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "teamId", - "scopes", - "authorizationDetails", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "teamId": "5e5ea5c16897e", - "scopes": [ - "organization:organization.read" - ], - "authorizationDetails": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ], - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appKey": { - "description": "AppKey", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App key creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App key update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this app key belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "App key secret.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the app key secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the app key.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the app key.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2Authorize": { - "description": "OAuth2 Authorize", - "type": "object", - "properties": { - "grantId": { - "type": "string", - "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", - "example": "5e5ea5c16897e" - }, - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "grantId", - "redirectUrl" - ], - "example": { - "grantId": "5e5ea5c16897e", - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Approve": { - "description": "OAuth2 Approve", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Reject": { - "description": "OAuth2 Reject", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", - "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "oauth2Grant": { - "description": "OAuth2 Grant", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Grant ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Grant creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Grant update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the grant belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the OAuth2 client (app) the grant was requested for.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Requested OAuth2 scopes the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "prompt": { - "type": "string", - "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", - "example": "login" - }, - "redirectUri": { - "type": "string", - "description": "Redirect URI the user will be sent to after the flow completes.", - "example": "https:\/\/example.com\/callback" - }, - "authTime": { - "type": "integer", - "description": "Unix timestamp of when the user last authenticated.", - "format": "int32", - "example": 1592981250 - }, - "expire": { - "type": "string", - "description": "Grant expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "scopes", - "resources", - "authorizationDetails", - "prompt", - "redirectUri", - "authTime", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "prompt": "login", - "redirectUri": "https:\/\/example.com\/callback", - "authTime": 1592981250, - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2DeviceAuthorization": { - "description": "OAuth2 Device Authorization", - "type": "object", - "properties": { - "device_code": { - "type": "string", - "description": "Device verification code used by the client to poll the token endpoint.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "user_code": { - "type": "string", - "description": "Short code the end user enters on the verification page.", - "example": "ABCD-EFGH" - }, - "verification_uri": { - "type": "string", - "description": "URL where the end user enters the user code.", - "example": "https:\/\/appwrite.io\/oauth2\/device" - }, - "verification_uri_complete": { - "type": "string", - "description": "Verification URL with the user code prefilled as a query parameter.", - "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the device code and user code in seconds.", - "format": "int32", - "example": 900 - }, - "interval": { - "type": "integer", - "description": "Minimum polling interval for the token endpoint in seconds.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "device_code", - "user_code", - "verification_uri", - "verification_uri_complete", - "expires_in", - "interval" - ], - "example": { - "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", - "expires_in": 900, - "interval": 5 - } - }, - "oauth2PAR": { - "description": "OAuth2 PAR", - "type": "object", - "properties": { - "request_uri": { - "type": "string", - "description": "Authorization request handle to pass to the authorize endpoint.", - "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the authorization request handle in seconds.", - "format": "int32", - "example": 600 - } - }, - "required": [ - "request_uri", - "expires_in" - ], - "example": { - "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", - "expires_in": 600 - } - }, - "oauth2Token": { - "description": "OAuth2 Token", - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "OAuth2 access token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "example": "Bearer" - }, - "expires_in": { - "type": "integer", - "description": "Access token lifetime in seconds.", - "format": "int32", - "example": 3600 - }, - "refresh_token": { - "type": "string", - "description": "OAuth2 refresh token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the access token.", - "example": "openid email profile" - }, - "authorization_details": { - "type": "string", - "description": "Granted RFC 9396 authorization details as a JSON string.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "nullable": true - }, - "id_token": { - "type": "string", - "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "nullable": true - } - }, - "required": [ - "access_token", - "token_type", - "expires_in", - "refresh_token", - "scope" - ], - "example": { - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "token_type": "Bearer", - "expires_in": 3600, - "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", - "scope": "openid email profile", - "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - } - }, - "oauth2Consent": { - "description": "OAuth2 Consent", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Consent ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Consent creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Consent update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the consent belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2ConsentToken": { - "description": "OAuth2 Consent Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token family ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "consentId": { - "type": "string", - "description": "ID of the consent the token family was issued under.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of the user the token family belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Expiration time of the current access token of this family in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "consentId", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "consentId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "wafRule": { - "description": "WafRule", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleBypass": { - "description": "WafRuleBypass", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleDeny": { - "description": "WafRuleDeny", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleChallenge": { - "description": "WafRuleChallenge", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "challengeType": { - "type": "string", - "description": "Challenge type enforced when the rule matches.", - "example": "compute" - }, - "difficulty": { - "type": "integer", - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", - "format": "int32", - "example": 3 - }, - "ttl": { - "type": "integer", - "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", - "format": "int32", - "example": 1800 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "challengeType", - "difficulty", - "ttl" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "challengeType": "compute", - "difficulty": 3, - "ttl": 1800 - } - }, - "wafRuleRateLimit": { - "description": "WafRuleRateLimit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "limit": { - "type": "integer", - "description": "Maximum number of matching requests allowed for the given interval.", - "format": "int32", - "example": 1000 - }, - "interval": { - "type": "integer", - "description": "Interval in seconds for the rate limit window.", - "format": "int32", - "example": 60 - }, - "key": { - "type": "string", - "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", - "example": "userId" - }, - "strategy": { - "type": "string", - "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", - "example": "slidingWindow" - }, - "maxBucketSize": { - "type": "integer", - "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", - "format": "int32", - "example": 200 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "limit", - "interval", - "key", - "strategy", - "maxBucketSize" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "limit": 1000, - "interval": 60, - "key": "userId", - "strategy": "slidingWindow", - "maxBucketSize": 200 - } - }, - "wafRuleRedirect": { - "description": "WafRuleRedirect", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "location": { - "type": "string", - "description": "Target location for the redirect.", - "example": "\/maintenance" - }, - "statusCode": { - "type": "integer", - "description": "HTTP status code used for the redirect.", - "format": "int32", - "example": 301 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "location", - "statusCode" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "location": "\/maintenance", - "statusCode": 301 - } - }, - "wafRuleList": { - "description": "WAF rule list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rules that matched your query.", - "format": "int32", - "example": 5 - }, - "rules": { - "type": "array", - "description": "List of rules.", - "items": { - "$ref": "#\/components\/schemas\/wafRule" - }, - "example": [] - } - }, - "required": [ - "total", - "rules" - ], - "example": { - "total": 5, - "rules": "" - } - }, - "oauth2Project": { - "description": "OAuth2 Project", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "region": { - "type": "string", - "description": "Region ID the project is deployed in.", - "example": "fra" - }, - "endpoint": { - "type": "string", - "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", - "example": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "required": [ - "$id", - "region", - "endpoint" - ], - "example": { - "$id": "5e5ea5c16897e", - "region": "fra", - "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "oauth2Organization": { - "description": "OAuth2 Organization", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Organization ID.", - "example": "5e5ea5c16897e" - } - }, - "required": [ - "$id" - ], - "example": { - "$id": "5e5ea5c16897e" - } - }, - "oauth2ProjectList": { - "description": "OAuth2 accessible projects list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of projects that matched your query.", - "format": "int32", - "example": 5 - }, - "projects": { - "type": "array", - "description": "List of projects.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Project" - }, - "example": [] - } - }, - "required": [ - "total", - "projects" - ], - "example": { - "total": 5, - "projects": "" - } - }, - "oauth2OrganizationList": { - "description": "OAuth2 accessible organizations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of organizations that matched your query.", - "format": "int32", - "example": 5 - }, - "organizations": { - "type": "array", - "description": "List of organizations.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Organization" - }, - "example": [] - } - }, - "required": [ - "total", - "organizations" - ], - "example": { - "total": 5, - "organizations": "" - } - }, - "oauth2ConsentList": { - "description": "OAuth2 consents list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of consents that matched your query.", - "format": "int32", - "example": 5 - }, - "consents": { - "type": "array", - "description": "List of consents.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Consent" - }, - "example": [] - } - }, - "required": [ - "total", - "consents" - ], - "example": { - "total": 5, - "consents": "" - } - }, - "oauth2ConsentTokenList": { - "description": "OAuth2 consent tokens list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "format": "int32", - "example": 5 - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - }, - "example": [] - } - }, - "required": [ - "total", - "tokens" - ], - "example": { - "total": 5, - "tokens": "" - } - }, - "activityEventList": { - "description": "Activity event list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of events that matched your query.", - "format": "int32", - "example": 5 - }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "$ref": "#\/components\/schemas\/activityEvent" - }, - "example": [] - } - }, - "required": [ - "total", - "events" - ], - "example": { - "total": 5, - "events": "" - } - }, - "addonList": { - "description": "Addons list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of addons that matched your query.", - "format": "int32", - "example": 5 - }, - "addons": { - "type": "array", - "description": "List of addons.", - "items": { - "$ref": "#\/components\/schemas\/addon" - }, - "example": [] - } - }, - "required": [ - "total", - "addons" - ], - "example": { - "total": 5, - "addons": "" - } - }, - "analyticsPropertyList": { - "description": "Analytics properties list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of properties that matched your query.", - "format": "int32", - "example": 5 - }, - "properties": { - "type": "array", - "description": "List of properties.", - "items": { - "$ref": "#\/components\/schemas\/analyticsProperty" - }, - "example": [] - } - }, - "required": [ - "total", - "properties" - ], - "example": { - "total": 5, - "properties": "" - } - }, - "aggregationTeamList": { - "description": "Aggregation team list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of aggregations that matched your query.", - "format": "int32", - "example": 5 - }, - "aggregations": { - "type": "array", - "description": "List of aggregations.", - "items": { - "$ref": "#\/components\/schemas\/aggregationTeam" - }, - "example": [] - } - }, - "required": [ - "total", - "aggregations" - ], - "example": { - "total": 5, - "aggregations": "" - } - }, - "backupArchiveList": { - "description": "Backup archive list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of archives that matched your query.", - "format": "int32", - "example": 5 - }, - "archives": { - "type": "array", - "description": "List of archives.", - "items": { - "$ref": "#\/components\/schemas\/backupArchive" - }, - "example": [] - } - }, - "required": [ - "total", - "archives" - ], - "example": { - "total": 5, - "archives": "" - } - }, - "backupPolicyList": { - "description": "Backup policy list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of policies that matched your query.", - "format": "int32", - "example": 5 - }, - "policies": { - "type": "array", - "description": "List of policies.", - "items": { - "$ref": "#\/components\/schemas\/backupPolicy" - }, - "example": [] - } - }, - "required": [ - "total", - "policies" - ], - "example": { - "total": 5, - "policies": "" - } - }, - "backupRestorationList": { - "description": "Backup restoration list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of restorations that matched your query.", - "format": "int32", - "example": 5 - }, - "restorations": { - "type": "array", - "description": "List of restorations.", - "items": { - "$ref": "#\/components\/schemas\/backupRestoration" - }, - "example": [] - } - }, - "required": [ - "total", - "restorations" - ], - "example": { - "total": 5, - "restorations": "" - } - }, - "billingAddressList": { - "description": "Billing address list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of billingAddresses that matched your query.", - "format": "int32", - "example": 5 - }, - "billingAddresses": { - "type": "array", - "description": "List of billingAddresses.", - "items": { - "$ref": "#\/components\/schemas\/billingAddress" - }, - "example": [] - } - }, - "required": [ - "total", - "billingAddresses" - ], - "example": { - "total": 5, - "billingAddresses": "" - } - }, - "invoiceList": { - "description": "Billing invoices list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of invoices that matched your query.", - "format": "int32", - "example": 5 - }, - "invoices": { - "type": "array", - "description": "List of invoices.", - "items": { - "$ref": "#\/components\/schemas\/invoice" - }, - "example": [] - } - }, - "required": [ - "total", - "invoices" - ], - "example": { - "total": 5, - "invoices": "" - } - }, - "billingPlanList": { - "description": "Billing plan list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of plans that matched your query.", - "format": "int32", - "example": 5 - }, - "plans": { - "type": "array", - "description": "List of plans.", - "items": { - "$ref": "#\/components\/schemas\/billingPlan" - }, - "example": [] - } - }, - "required": [ - "total", - "plans" - ], - "example": { - "total": 5, - "plans": "" - } - }, - "managerBlockList": { - "description": "Manager blocks list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of blocks that matched your query.", - "format": "int32", - "example": 5 - }, - "blocks": { - "type": "array", - "description": "List of blocks.", - "items": { - "$ref": "#\/components\/schemas\/managerBlock" - }, - "example": [] - } - }, - "required": [ - "total", - "blocks" - ], - "example": { - "total": 5, - "blocks": "" - } - }, - "databaseMigrationList": { - "description": "Database Migrations List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of migrations that matched your query.", - "format": "int32", - "example": 5 - }, - "migrations": { - "type": "array", - "description": "List of migrations.", - "items": { - "$ref": "#\/components\/schemas\/databaseMigration" - }, - "example": [] - } - }, - "required": [ - "total", - "migrations" - ], - "example": { - "total": 5, - "migrations": "" - } - }, - "dedicatedDatabaseList": { - "description": "Dedicated databases list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of databases that matched your query.", - "format": "int32", - "example": 5 - }, - "databases": { - "type": "array", - "description": "List of databases.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - }, - "example": [] - } - }, - "required": [ - "total", - "databases" - ], - "example": { - "total": 5, - "databases": "" - } - }, - "dnsRecordsList": { - "description": "DNS records list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of dnsRecords that matched your query.", - "format": "int32", - "example": 5 - }, - "dnsRecords": { - "type": "array", - "description": "List of dnsRecords.", - "items": { - "$ref": "#\/components\/schemas\/dnsRecord" - }, - "example": [] - } - }, - "required": [ - "total", - "dnsRecords" - ], - "example": { - "total": 5, - "dnsRecords": "" - } - }, - "domainSuggestionsList": { - "description": "Domain suggestions list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of suggestions that matched your query.", - "format": "int32", - "example": 5 - }, - "suggestions": { - "type": "array", - "description": "List of suggestions.", - "items": { - "$ref": "#\/components\/schemas\/domainSuggestion" - }, - "example": [] - } - }, - "required": [ - "total", - "suggestions" - ], - "example": { - "total": 5, - "suggestions": "" - } - }, - "domainPricesList": { - "description": "Domain prices list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of prices that matched your query.", - "format": "int32", - "example": 5 - }, - "prices": { - "type": "array", - "description": "List of prices.", - "items": { - "$ref": "#\/components\/schemas\/domainPrice" - }, - "example": [] - } - }, - "required": [ - "total", - "prices" - ], - "example": { - "total": 5, - "prices": "" - } - }, - "domainsList": { - "description": "Domains list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of domains that matched your query.", - "format": "int32", - "example": 5 - }, - "domains": { - "type": "array", - "description": "List of domains.", - "items": { - "$ref": "#\/components\/schemas\/domain" - }, - "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.", - "format": "int32", - "example": 5 - }, - "teams": { - "type": "array", - "description": "List of teams.", - "items": { - "$ref": "#\/components\/schemas\/organization" - }, - "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.", - "format": "int32", - "example": 5 - }, - "paymentMethods": { - "type": "array", - "description": "List of paymentMethods.", - "items": { - "$ref": "#\/components\/schemas\/paymentMethod" - }, - "example": [] - } - }, - "required": [ - "total", - "paymentMethods" - ], - "example": { - "total": 5, - "paymentMethods": "" - } - }, - "postgresExtensionList": { - "description": "Postgres extensions list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of extensions that matched your query.", - "format": "int32", - "example": 5 - }, - "extensions": { - "type": "array", - "description": "List of extensions.", - "items": { - "$ref": "#\/components\/schemas\/postgresExtension" - }, - "example": [] - } - }, - "required": [ - "total", - "extensions" - ], - "example": { - "total": 5, - "extensions": "" - } - }, - "consoleRegionList": { - "description": "Regions list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of regions that matched your query.", - "format": "int32", - "example": 5 - }, - "regions": { - "type": "array", - "description": "List of regions.", - "items": { - "$ref": "#\/components\/schemas\/consoleRegion" - }, - "example": [] - } - }, - "required": [ - "total", - "regions" - ], - "example": { - "total": 5, - "regions": "" - } - }, - "appsList": { - "description": "Apps list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of apps that matched your query.", - "format": "int32", - "example": 5 - }, - "apps": { - "type": "array", - "description": "List of apps.", - "items": { - "$ref": "#\/components\/schemas\/app" - }, - "example": [] - } - }, - "required": [ - "total", - "apps" - ], - "example": { - "total": 5, - "apps": "" - } - }, - "appSecretList": { - "description": "App secrets list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of secrets that matched your query.", - "format": "int32", - "example": 5 - }, - "secrets": { - "type": "array", - "description": "List of secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "total", - "secrets" - ], - "example": { - "total": 5, - "secrets": "" - } - }, - "appScopeList": { - "description": "App scopes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of scopes that matched your query.", - "format": "int32", - "example": 5 - }, - "scopes": { - "type": "array", - "description": "List of scopes.", - "items": { - "$ref": "#\/components\/schemas\/appScope" - }, - "example": [] - } - }, - "required": [ - "total", - "scopes" - ], - "example": { - "total": 5, - "scopes": "" - } - }, - "appInstallationList": { - "description": "App installations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of installations that matched your query.", - "format": "int32", - "example": 5 - }, - "installations": { - "type": "array", - "description": "List of installations.", - "items": { - "$ref": "#\/components\/schemas\/appInstallation" - }, - "example": [] - } - }, - "required": [ - "total", - "installations" - ], - "example": { - "total": 5, - "installations": "" - } - }, - "appKeyList": { - "description": "App keys list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of keys that matched your query.", - "format": "int32", - "example": 5 - }, - "keys": { - "type": "array", - "description": "List of keys.", - "items": { - "$ref": "#\/components\/schemas\/appKey" - }, - "example": [] - } - }, - "required": [ - "total", - "keys" - ], - "example": { - "total": 5, - "keys": "" - } - } - }, - "securitySchemes": { - "Project": { - "type": "apiKey", - "name": "X-Appwrite-Project", - "description": "Your project ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "<YOUR_PROJECT_ID>" - } - }, - "Key": { - "type": "apiKey", - "name": "X-Appwrite-Key", - "description": "Your secret API key", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "<YOUR_API_KEY>" - } - }, - "Organization": { - "type": "apiKey", - "name": "X-Appwrite-Organization", - "description": "Your organization ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "<YOUR_ORGANIZATION_ID>" - } - }, - "JWT": { - "type": "apiKey", - "name": "X-Appwrite-JWT", - "description": "Your secret JSON Web Token", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "<YOUR_JWT>" - } - }, - "Bearer": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "Locale": { - "type": "apiKey", - "name": "X-Appwrite-Locale", - "description": "", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "en" - } - }, - "Mode": { - "type": "apiKey", - "name": "X-Appwrite-Mode", - "description": "", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ], - "demo": "" - } - }, - "Cookie": { - "type": "apiKey", - "name": "Cookie", - "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "Session": { - "type": "apiKey", - "name": "X-Appwrite-Session", - "description": "The user session to authenticate with", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "ImpersonateUserId": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Id", - "description": "Impersonate a user by ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "ImpersonateUserEmail": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Email", - "description": "Impersonate a user by email", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "ImpersonateUserPhone": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Phone", - "description": "Impersonate a user by phone", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - }, - "Platform": { - "type": "apiKey", - "name": "X-Appwrite-Platform", - "description": "The platform type (Appwrite or Imagine)", - "in": "header", - "x-appwrite": { - "platforms": [ - "console" - ] - } - } - } - }, - "externalDocs": { - "description": "Full API docs, specs and tutorials", - "url": "https:\/\/appwrite.io\/docs" - } -} \ No newline at end of file diff --git a/specs/2.3.x/open-api3-2.3.x-server.json b/specs/2.3.x/open-api3-2.3.x-server.json deleted file mode 100644 index 0baeb6bd3..000000000 --- a/specs/2.3.x/open-api3-2.3.x-server.json +++ /dev/null @@ -1,123325 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "version": "2.3.0", - "title": "Appwrite", - "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", - "termsOfService": "https:\/\/appwrite.io\/policy\/terms", - "contact": { - "name": "Appwrite Team", - "url": "https:\/\/appwrite.io\/support", - "email": "team@appwrite.io" - }, - "license": { - "name": "BSD-3-Clause", - "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" - } - }, - "servers": [ - { - "url": "https:\/\/cloud.appwrite.io\/v1", - "description": "Appwrite Cloud endpoint." - }, - { - "url": "https:\/\/{region}.cloud.appwrite.io\/v1", - "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", - "variables": { - "region": { - "default": "fra", - "description": "Appwrite Cloud region." - } - } - } - ], - "paths": { - "\/account": { - "get": { - "summary": "Get account", - "operationId": "accountGet", - "tags": [ - "account" - ], - "description": "Get the currently logged in user.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create account", - "operationId": "accountCreate", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/create.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/consents": { - "get": { - "summary": "List consents", - "operationId": "accountListConsents", - "tags": [ - "account" - ], - "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", - "responses": { - "200": { - "description": "OAuth2 consents list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}": { - "get": { - "summary": "Get consent", - "operationId": "accountGetConsent", - "tags": [ - "account" - ], - "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", - "responses": { - "200": { - "description": "OAuth2 Consent", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Consent" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent", - "operationId": "accountDeleteConsent", - "tags": [ - "account" - ], - "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens": { - "get": { - "summary": "List consent tokens", - "operationId": "accountListConsentTokens", - "tags": [ - "account" - ], - "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 consent tokens list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/list-consent-tokens.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { - "get": { - "summary": "Get consent token", - "operationId": "accountGetConsentToken", - "tags": [ - "account" - ], - "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", - "responses": { - "200": { - "description": "OAuth2 Consent Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/get-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete consent token", - "operationId": "accountDeleteConsentToken", - "tags": [ - "account" - ], - "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "consents", - "demo": "account\/delete-consent-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "consentId", - "description": "Consent unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<CONSENT_ID>" - }, - "in": "path" - }, - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/email": { - "patch": { - "summary": "Update email", - "operationId": "accountUpdateEmail", - "tags": [ - "account" - ], - "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/identities": { - "get": { - "summary": "List identities", - "operationId": "accountListIdentities", - "tags": [ - "account" - ], - "description": "Get the list of identities for the currently logged in user.", - "responses": { - "200": { - "description": "Identities List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/identityList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "accountDeleteIdentity", - "tags": [ - "account" - ], - "description": "Delete an identity by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "account\/delete-identity.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "identityId", - "description": "Identity ID.", - "required": true, - "schema": { - "type": "string", - "example": "<IDENTITY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/account\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "accountUpdateMFA", - "tags": [ - "account" - ], - "description": "Enable or disable MFA on an account.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "description": "Enable or disable MFA.", - "type": "boolean", - "example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } - } - }, - "\/account\/mfa\/authenticators\/{type}": { - "post": { - "summary": "Create authenticator", - "operationId": "accountCreateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "responses": { - "200": { - "description": "MFAType", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaType" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - }, - "methods": [ - { - "name": "createMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAAuthenticator" - } - }, - { - "name": "createMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaType" - } - ], - "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", - "demo": "account\/create-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator. Must be `totp`", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update authenticator (confirmation)", - "operationId": "accountUpdateMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - }, - "methods": [ - { - "name": "updateMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAAuthenticator" - } - }, - { - "name": "updateMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type", - "otp" - ], - "required": [ - "type", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", - "demo": "account\/update-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "otp" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete authenticator", - "operationId": "accountDeleteMfaAuthenticator", - "tags": [ - "account" - ], - "description": "Delete an authenticator for a user by ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "type" - ], - "required": [ - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator for a user by ID.", - "demo": "account\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/account\/mfa\/challenges": { - "post": { - "summary": "Create MFA challenge", - "operationId": "accountCreateMfaChallenge", - "tags": [ - "account" - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Challenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaChallenge" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - }, - "methods": [ - { - "name": "createMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFAChallenge" - } - }, - { - "name": "createMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "factor" - ], - "required": [ - "factor" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaChallenge" - } - ], - "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", - "demo": "account\/create-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "factor": { - "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", - "type": "string", - "example": "email", - "title": "AuthenticationFactor", - "oneOf": [ - { - "type": "string", - "enum": [ - "email" - ], - "title": "email" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - }, - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - }, - { - "type": "string", - "enum": [ - "recoverycode" - ], - "title": "recoverycode" - }, - { - "type": "string", - "enum": [ - "custom" - ], - "title": "custom" - } - ] - } - }, - "required": [ - "factor" - ] - } - } - } - } - }, - "put": { - "summary": "Update MFA challenge (confirmation)", - "operationId": "accountUpdateMfaChallenge", - "tags": [ - "account" - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-challenge.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},challengeId:{param-challengeId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - }, - "methods": [ - { - "name": "updateMfaChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFAChallenge" - } - }, - { - "name": "updateMFAChallenge", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "challengeId", - "otp" - ], - "required": [ - "challengeId", - "otp" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/session" - } - ], - "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/update-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "challengeId": { - "description": "ID of the challenge.", - "type": "string", - "example": "<CHALLENGE_ID>" - }, - "otp": { - "description": "Valid verification token.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "challengeId", - "otp" - ] - } - } - } - } - } - }, - "\/account\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "accountListMfaFactors", - "tags": [ - "account" - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "responses": { - "200": { - "description": "MFAFactors", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "account\/list-mfa-factors.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/mfa\/recovery-codes": { - "get": { - "summary": "List MFA recovery codes", - "operationId": "accountGetMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/get-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", - "demo": "account\/get-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "post": { - "summary": "Create MFA recovery codes", - "operationId": "accountCreateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "responses": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/create-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", - "demo": "account\/create-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "accountUpdateMfaRecoveryCodes", - "tags": [ - "account" - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "account\/update-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", - "demo": "account\/update-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/name": { - "patch": { - "summary": "Update name", - "operationId": "accountUpdateName", - "tags": [ - "account" - ], - "description": "Update currently logged in user account name.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/account\/password": { - "patch": { - "summary": "Update password", - "operationId": "accountUpdatePassword", - "tags": [ - "account" - ], - "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-password.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "description": "New user password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "oldPassword": { - "description": "Current user password. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/account\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "accountUpdatePhone", - "tags": [ - "account" - ], - "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "phone", - "password" - ] - } - } - } - } - } - }, - "\/account\/prefs": { - "get": { - "summary": "Get account preferences", - "operationId": "accountGetPrefs", - "tags": [ - "account" - ], - "description": "Get the preferences as a key-value object for the currently logged in user.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "patch": { - "summary": "Update preferences", - "operationId": "accountUpdatePrefs", - "tags": [ - "account" - ], - "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/account\/recovery": { - "post": { - "summary": "Create password recovery", - "operationId": "accountCreateRecovery", - "tags": [ - "account" - ], - "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "email", - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (confirmation)", - "operationId": "accountUpdateRecovery", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid reset token.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/recovery\/otp": { - "post": { - "summary": "Create password recovery (OTP)", - "operationId": "accountCreateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/create-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "email" - ] - } - } - } - } - }, - "put": { - "summary": "Update password recovery (OTP)", - "operationId": "accountUpdateRecoveryOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "recovery", - "demo": "account\/update-recovery-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid recovery OTP code.", - "type": "string", - "example": "<SECRET>" - }, - "password": { - "description": "New user password. Must be between 8 and 256 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "userId", - "secret", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions": { - "get": { - "summary": "List sessions", - "operationId": "accountListSessions", - "tags": [ - "account" - ], - "description": "Get the list of active sessions across different devices for the currently logged in user.", - "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "delete": { - "summary": "Delete sessions", - "operationId": "accountDeleteSessions", - "tags": [ - "account" - ], - "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-sessions.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "current", - "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/account\/sessions\/anonymous": { - "post": { - "summary": "Create anonymous session", - "operationId": "accountCreateAnonymousSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-anonymous-session.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/sessions\/email": { - "post": { - "summary": "Create email password session", - "operationId": "accountCreateEmailPasswordSession", - "tags": [ - "account" - ], - "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-email-password-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},email:{param-email}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - }, - "duration": { - "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - } - }, - "required": [ - "email", - "password" - ] - } - } - } - } - } - }, - "\/account\/sessions\/id-token": { - "post": { - "summary": "Create ID token session", - "operationId": "accountCreateIdTokenSession", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-id-token-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", - "type": "string", - "example": "apple", - "title": "IdTokenProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - } - ] - }, - "idToken": { - "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", - "type": "string", - "example": "<ID_TOKEN>" - }, - "nonce": { - "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "accessToken": { - "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", - "type": "string", - "default": "", - "example": "<ACCESS_TOKEN>" - }, - "accessTokenExpiry": { - "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "name": { - "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "provider", - "idToken" - ] - } - } - } - } - } - }, - "\/account\/sessions\/magic-url": { - "put": { - "summary": "Update magic URL session", - "operationId": "accountUpdateMagicURLSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-magic-url-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/phone": { - "put": { - "summary": "Update phone session", - "operationId": "accountUpdatePhoneSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-phone-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.6.0", - "replaceWith": "account.createSession" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/token": { - "post": { - "summary": "Create session", - "operationId": "accountCreateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/create-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "ip:{ip},userId:{param-userId}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/sessions\/{sessionId}": { - "get": { - "summary": "Get session", - "operationId": "accountGetSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/get-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to get the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update session", - "operationId": "accountUpdateSession", - "tags": [ - "account" - ], - "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", - "responses": { - "200": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/update-session.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to update the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete session", - "operationId": "accountDeleteSession", - "tags": [ - "account" - ], - "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "account\/delete-session.md", - "rate-limit": 100, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "sessionId", - "description": "Session ID. Use the string 'current' to delete the current device session.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>", - "default": "current" - }, - "in": "path" - } - ] - } - }, - "\/account\/status": { - "patch": { - "summary": "Update status", - "operationId": "accountUpdateStatus", - "tags": [ - "account" - ], - "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "account", - "demo": "account\/update-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/account\/tokens\/email": { - "post": { - "summary": "Create email token (OTP)", - "operationId": "accountCreateEmailToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-email-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/magic-url": { - "post": { - "summary": "Create magic URL token", - "operationId": "accountCreateMagicURLToken", - "tags": [ - "account" - ], - "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-magic-url-token.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": [ - "url:{url},email:{param-email}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "url": { - "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "userId", - "email" - ] - } - } - } - } - } - }, - "\/account\/tokens\/oauth2\/{provider}": { - "get": { - "summary": "Create OAuth2 token", - "operationId": "accountCreateOAuth2Token", - "tags": [ - "account" - ], - "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "301": { - "description": "No content", - "content": { - "text\/html": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-o-auth-2-token.md", - "rate-limit": 50, - "rate-time": 3600, - "rate-key": "ip:{ip}", - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "provider", - "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "OAuthProvider", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - }, - { - "name": "success", - "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "failure", - "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "scopes", - "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/account\/tokens\/phone": { - "post": { - "summary": "Create phone token", - "operationId": "accountCreatePhoneToken", - "tags": [ - "account" - ], - "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "account\/create-phone-token.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},phone:{param-phone}", - "url:{url},ip:{ip}" - ], - "scope": "sessions.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "type": "string", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "userId", - "phone" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email": { - "post": { - "summary": "Create email verification", - "operationId": "accountCreateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-email-verification.md", - "public": true - }, - { - "name": "createVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "url" - ], - "required": [ - "url" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", - "demo": "account\/create-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.createEmailVerification" - } - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "url": { - "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "url" - ] - } - } - } - } - }, - "put": { - "summary": "Update email verification (confirmation)", - "operationId": "accountUpdateEmailVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "updateEmailVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-email-verification.md", - "public": true - }, - { - "name": "updateVerification", - "namespace": "account", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "userId", - "secret" - ], - "required": [ - "userId", - "secret" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/token" - } - ], - "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", - "demo": "account\/update-verification.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "account.updateEmailVerification" - } - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/email\/otp": { - "post": { - "summary": "Create email verification (OTP)", - "operationId": "accountCreateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{userId}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phrase": { - "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "put": { - "summary": "Update email verification (OTP)", - "operationId": "accountUpdateEmailVerificationOTP", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-email-verification-otp.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification OTP code.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/account\/verifications\/phone": { - "post": { - "summary": "Create phone verification", - "operationId": "accountCreatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/create-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": [ - "url:{url},userId:{userId}", - "url:{url},ip:{ip}" - ], - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - }, - "put": { - "summary": "Update phone verification (confirmation)", - "operationId": "accountUpdatePhoneVerification", - "tags": [ - "account" - ], - "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", - "responses": { - "200": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "verification", - "demo": "account\/update-phone-verification.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "userId:{param-userId}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Valid verification token.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/activities\/events": { - "get": { - "summary": "List events", - "operationId": "activitiesListEvents", - "tags": [ - "activities" - ], - "description": "List all events for selected filters.", - "responses": { - "200": { - "description": "Activity event list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/activityEventList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "activities\/list-events.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "events.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/activities\/events\/{eventId}": { - "get": { - "summary": "Get event", - "operationId": "activitiesGetEvent", - "tags": [ - "activities" - ], - "description": "Get event by ID.\n", - "responses": { - "200": { - "description": "ActivityEvent", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/activityEvent" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "activities\/get-event.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "events.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "eventId", - "description": "Event ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EVENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/analytics\/properties": { - "get": { - "summary": "List analytics properties", - "operationId": "analyticsListProperties", - "tags": [ - "analytics" - ], - "description": "List analytics properties for the current project.", - "responses": { - "200": { - "description": "Analytics properties list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsPropertyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/list-properties.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.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, domain, timezone, enabled, public, snippetId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create analytics property", - "operationId": "analyticsCreateProperty", - "tags": [ - "analytics" - ], - "description": "Create a new analytics property to track a website or application.", - "responses": { - "201": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/create-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "propertyId": { - "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", - "type": "string", - "example": "<PROPERTY_ID>" - }, - "name": { - "description": "Human-readable name for this property.", - "type": "string", - "example": "<NAME>" - }, - "domain": { - "description": "Primary domain to track (e.g. example.com). Optional for native apps.", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "timezone": { - "description": "IANA timezone used for daily boundaries.", - "type": "string", - "default": "UTC", - "example": "<TIMEZONE>" - }, - "enabled": { - "description": "Whether tracking is enabled.", - "type": "boolean", - "default": true, - "example": false - }, - "public": { - "description": "Whether stats are publicly viewable.", - "type": "boolean", - "default": false, - "example": false - }, - "allowedOrigins": { - "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", - "type": "array", - "default": [ - "*" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "propertyId", - "name" - ] - } - } - } - } - } - }, - "\/analytics\/properties\/{propertyId}": { - "get": { - "summary": "Get analytics property", - "operationId": "analyticsGetProperty", - "tags": [ - "analytics" - ], - "description": "Get an analytics property by ID.", - "responses": { - "200": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/get-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update analytics property", - "operationId": "analyticsUpdateProperty", - "tags": [ - "analytics" - ], - "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", - "responses": { - "200": { - "description": "AnalyticsProperty", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsProperty" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/update-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Human-readable name for this property.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "domain": { - "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", - "type": "string", - "example": "<DOMAIN>", - "nullable": true - }, - "timezone": { - "description": "IANA timezone used for daily boundaries.", - "type": "string", - "example": "<TIMEZONE>", - "nullable": true - }, - "enabled": { - "description": "Whether tracking is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "public": { - "description": "Whether stats are publicly viewable.", - "type": "boolean", - "example": false, - "nullable": true - }, - "allowedOrigins": { - "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete analytics property", - "operationId": "analyticsDeleteProperty", - "tags": [ - "analytics" - ], - "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "properties", - "demo": "analytics\/delete-property.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/analytics\/properties\/{propertyId}\/events": { - "post": { - "summary": "Track analytics event", - "operationId": "analyticsCreateEvent", - "tags": [ - "analytics" - ], - "description": "Send a tracking event from a browser, native app, or server-side SDK.", - "responses": { - "202": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "events", - "demo": "analytics\/create-event.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "global" - ], - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property ID or snippet ID identifying the property.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", - "type": "string", - "example": "<NAME>" - }, - "url": { - "description": "Full page URL or screen identifier.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "domain": { - "description": "Hostname (e.g. example.com).", - "type": "string", - "default": "", - "example": "<DOMAIN>" - }, - "referrer": { - "description": "Referrer URL.", - "type": "string", - "default": "", - "example": "<REFERRER>" - }, - "screenWidth": { - "description": "Viewport width in CSS pixels.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "sessionHash": { - "description": "Optional session hash (provided by SDK).", - "type": "string", - "default": "", - "example": "<SESSION_HASH>" - }, - "scrollDepth": { - "description": "Scroll depth percentage 0-100.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "engagementTime": { - "description": "Engagement time in seconds.", - "type": "integer", - "default": 0, - "format": "int32" - }, - "props": { - "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "userId": { - "description": "Override user ID. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "ip": { - "description": "Override IP address. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<IP>" - }, - "userAgent": { - "description": "Override user agent. Requires API-key auth with analytics.write scope.", - "type": "string", - "default": "", - "example": "<USER_AGENT>" - } - }, - "required": [ - "name", - "url" - ] - } - } - } - } - } - }, - "\/analytics\/properties\/{propertyId}\/metrics": { - "get": { - "summary": "List analytics metrics for a property", - "operationId": "analyticsListMetrics", - "tags": [ - "analytics" - ], - "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", - "responses": { - "200": { - "description": "AnalyticsMetricList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/analyticsMetricList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "metrics", - "demo": "analytics\/list-metrics.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "analytics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "propertyId", - "description": "Analytics property unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROPERTY_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "interval", - "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", - "required": false, - "schema": { - "type": "string", - "example": "1h", - "title": "AnalyticsInterval", - "oneOf": [ - { - "type": "string", - "enum": [ - "1h" - ], - "title": "One Hour" - }, - { - "type": "string", - "enum": [ - "1d" - ], - "title": "One Day" - }, - { - "type": "string", - "enum": [ - "1w" - ], - "title": "One Week" - }, - { - "type": "string", - "enum": [ - "1m" - ], - "title": "One Month" - } - ] - }, - "in": "query" - }, - { - "name": "dimensions", - "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "AnalyticsDimension", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "country" - ], - "title": "country" - }, - { - "type": "string", - "enum": [ - "region" - ], - "title": "region" - }, - { - "type": "string", - "enum": [ - "city" - ], - "title": "city" - }, - { - "type": "string", - "enum": [ - "browser" - ], - "title": "browser" - }, - { - "type": "string", - "enum": [ - "operatingSystem" - ], - "title": "operatingSystem" - }, - { - "type": "string", - "enum": [ - "device" - ], - "title": "device" - }, - { - "type": "string", - "enum": [ - "screenSize" - ], - "title": "screenSize" - }, - { - "type": "string", - "enum": [ - "referrerSource" - ], - "title": "referrerSource" - }, - { - "type": "string", - "enum": [ - "channel" - ], - "title": "channel" - }, - { - "type": "string", - "enum": [ - "utmSource" - ], - "title": "utmSource" - }, - { - "type": "string", - "enum": [ - "utmMedium" - ], - "title": "utmMedium" - }, - { - "type": "string", - "enum": [ - "utmCampaign" - ], - "title": "utmCampaign" - }, - { - "type": "string", - "enum": [ - "utmContent" - ], - "title": "utmContent" - }, - { - "type": "string", - "enum": [ - "utmTerm" - ], - "title": "utmTerm" - }, - { - "type": "string", - "enum": [ - "page" - ], - "title": "page" - }, - { - "type": "string", - "enum": [ - "hostname" - ], - "title": "hostname" - }, - { - "type": "string", - "enum": [ - "entryPage" - ], - "title": "entryPage" - }, - { - "type": "string", - "enum": [ - "exitPage" - ], - "title": "exitPage" - }, - { - "type": "string", - "enum": [ - "trafficType" - ], - "title": "trafficType" - }, - { - "type": "string", - "enum": [ - "botName" - ], - "title": "botName" - }, - { - "type": "string", - "enum": [ - "botCategory" - ], - "title": "botCategory" - }, - { - "type": "string", - "enum": [ - "eventName" - ], - "title": "eventName" - } - ] - }, - "default": [] - }, - "in": "query" - }, - { - "name": "dateRange", - "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", - "required": false, - "schema": { - "type": "string", - "example": "<DATE_RANGE>", - "default": "30d" - }, - "in": "query" - }, - { - "name": "startAt", - "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "endAt", - "description": "Explicit window end in ISO 8601. Defaults to the current time.", - "required": false, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00", - "default": "" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of ranked values to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 100 - }, - "in": "query" - } - ] - } - }, - "\/apps": { - "get": { - "summary": "List Applications", - "operationId": "appsList", - "tags": [ - "apps" - ], - "description": "List applications.", - "responses": { - "200": { - "description": "Apps list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/list.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Application", - "operationId": "appsCreate", - "tags": [ - "apps" - ], - "description": "Create a new application.", - "responses": { - "201": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/create.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<APP_ID>" - }, - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "teamId": { - "description": "Team unique ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - } - }, - "required": [ - "appId", - "name", - "redirectUris" - ] - } - } - } - } - } - }, - "\/apps\/scopes\/installations": { - "get": { - "summary": "List Installation Scopes", - "operationId": "appsListInstallationScopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request when installed on a team.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-installation-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/apps\/scopes\/oauth2": { - "get": { - "summary": "List OAuth2 Scopes", - "operationId": "appsListOAuth2Scopes", - "tags": [ - "apps" - ], - "description": "List scopes an application can request during the OAuth2 flow.", - "responses": { - "200": { - "description": "App scopes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appScopeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "scopes", - "demo": "apps\/list-o-auth-2-scopes.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/apps\/{appId}": { - "get": { - "summary": "Get Application", - "operationId": "appsGet", - "tags": [ - "apps" - ], - "description": "Get an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/get.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Application", - "operationId": "appsUpdate", - "tags": [ - "apps" - ], - "description": "Update an application by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Application name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Application description shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "clientUri": { - "description": "Application homepage URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "logoUri": { - "description": "Application logo URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "privacyPolicyUrl": { - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "termsUrl": { - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "contacts": { - "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "tagline": { - "description": "Application tagline shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "<TAGLINE>" - }, - "tags": { - "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "images": { - "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "supportUrl": { - "description": "Application support URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "dataDeletionUrl": { - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "enabled": { - "description": "Is application enabled?", - "type": "boolean", - "default": true, - "example": false - }, - "redirectUris": { - "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "postLogoutRedirectUris": { - "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "type": { - "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", - "type": "string", - "default": "confidential", - "example": "public" - }, - "deviceFlow": { - "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", - "type": "boolean", - "default": false, - "example": false - }, - "installationScopes": { - "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "installationRedirectUrl": { - "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete Application", - "operationId": "appsDelete", - "tags": [ - "apps" - ], - "description": "Delete an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "appsListInstallations", - "tags": [ - "apps" - ], - "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "appsGetInstallation", - "tags": [ - "apps" - ], - "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.read", - "apps.installations.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Installation", - "operationId": "appsDeleteInstallation", - "tags": [ - "apps" - ], - "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/installations\/{installationId}\/tokens": { - "post": { - "summary": "Create Installation Token", - "operationId": "appsCreateInstallationToken", - "tags": [ - "apps" - ], - "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", - "responses": { - "201": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "apps\/create-installation-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip}", - "scope": [ - "apps.write", - "apps.tokens.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys": { - "get": { - "summary": "List App Keys", - "operationId": "appsListKeys", - "tags": [ - "apps" - ], - "description": "List app keys for an application.", - "responses": { - "200": { - "description": "App keys list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKeyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/list-keys.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create App Key", - "operationId": "appsCreateKey", - "tags": [ - "apps" - ], - "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", - "responses": { - "201": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/create-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/keys\/{keyId}": { - "get": { - "summary": "Get App Key", - "operationId": "appsGetKey", - "tags": [ - "apps" - ], - "description": "Get an app key by its unique ID.", - "responses": { - "200": { - "description": "AppKey", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/get-key.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete App Key", - "operationId": "appsDeleteKey", - "tags": [ - "apps" - ], - "description": "Delete an app key by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "apps\/delete-key.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "App key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/labels": { - "put": { - "summary": "Update Application Labels", - "operationId": "appsUpdateLabels", - "tags": [ - "apps" - ], - "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update-labels.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/apps\/{appId}\/secrets": { - "get": { - "summary": "List Secrets", - "operationId": "appsListSecrets", - "tags": [ - "apps" - ], - "description": "List client secrets for an application.", - "responses": { - "200": { - "description": "App secrets list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/list-secrets.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Secret", - "operationId": "appsCreateSecret", - "tags": [ - "apps" - ], - "description": "Create a new client secret for an application.", - "responses": { - "201": { - "description": "AppSecretPlaintext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecretPlaintext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/create-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/secrets\/{secretId}": { - "get": { - "summary": "Get Secret", - "operationId": "appsGetSecret", - "tags": [ - "apps" - ], - "description": "Get an application client secret by its unique ID.", - "responses": { - "200": { - "description": "AppSecret", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appSecret" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/get-secret.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete Secret", - "operationId": "appsDeleteSecret", - "tags": [ - "apps" - ], - "description": "Delete an application client secret by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "secrets", - "demo": "apps\/delete-secret.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - }, - { - "name": "secretId", - "description": "Secret unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SECRET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/apps\/{appId}\/team": { - "patch": { - "summary": "Update Team", - "operationId": "appsUpdateTeam", - "tags": [ - "apps" - ], - "description": "Transfer an application to another team by its unique ID.", - "responses": { - "200": { - "description": "App", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/app" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/update-team.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team ID of the team to transfer application to.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/apps\/{appId}\/tokens": { - "delete": { - "summary": "Delete Tokens", - "operationId": "appsDeleteTokens", - "tags": [ - "apps" - ], - "description": "Revoke all tokens for an application by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "apps", - "demo": "apps\/delete-tokens.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "apps.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "appId", - "description": "Application unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<APP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/avatars\/browsers\/{code}": { - "get": { - "summary": "Get browser icon", - "operationId": "avatarsGetBrowser", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-browser.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Browser Code.", - "required": true, - "schema": { - "type": "string", - "example": "aa", - "title": "Browser", - "oneOf": [ - { - "type": "string", - "enum": [ - "aa" - ], - "title": "Avant Browser" - }, - { - "type": "string", - "enum": [ - "an" - ], - "title": "Android WebView Beta" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Google Chrome" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "Google Chrome (iOS)" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Google Chrome (Mobile)" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Chromium" - }, - { - "type": "string", - "enum": [ - "ff" - ], - "title": "Mozilla Firefox" - }, - { - "type": "string", - "enum": [ - "sf" - ], - "title": "Safari" - }, - { - "type": "string", - "enum": [ - "mf" - ], - "title": "Mobile Safari" - }, - { - "type": "string", - "enum": [ - "ps" - ], - "title": "Microsoft Edge" - }, - { - "type": "string", - "enum": [ - "oi" - ], - "title": "Microsoft Edge (iOS)" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Opera Mini" - }, - { - "type": "string", - "enum": [ - "op" - ], - "title": "Opera" - }, - { - "type": "string", - "enum": [ - "on" - ], - "title": "Opera (Next)" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/credit-cards\/{code}": { - "get": { - "summary": "Get credit card icon", - "operationId": "avatarsGetCreditCard", - "tags": [ - "avatars" - ], - "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-credit-card.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", - "required": true, - "schema": { - "type": "string", - "example": "amex", - "title": "CreditCard", - "oneOf": [ - { - "type": "string", - "enum": [ - "amex" - ], - "title": "American Express" - }, - { - "type": "string", - "enum": [ - "argencard" - ], - "title": "Argencard" - }, - { - "type": "string", - "enum": [ - "cabal" - ], - "title": "Cabal" - }, - { - "type": "string", - "enum": [ - "cencosud" - ], - "title": "Cencosud" - }, - { - "type": "string", - "enum": [ - "diners" - ], - "title": "Diners Club" - }, - { - "type": "string", - "enum": [ - "discover" - ], - "title": "Discover" - }, - { - "type": "string", - "enum": [ - "elo" - ], - "title": "Elo" - }, - { - "type": "string", - "enum": [ - "hipercard" - ], - "title": "Hipercard" - }, - { - "type": "string", - "enum": [ - "jcb" - ], - "title": "JCB" - }, - { - "type": "string", - "enum": [ - "mastercard" - ], - "title": "Mastercard" - }, - { - "type": "string", - "enum": [ - "naranja" - ], - "title": "Naranja" - }, - { - "type": "string", - "enum": [ - "targeta-shopping" - ], - "title": "Tarjeta Shopping" - }, - { - "type": "string", - "enum": [ - "unionpay" - ], - "title": "Union Pay" - }, - { - "type": "string", - "enum": [ - "visa" - ], - "title": "Visa" - }, - { - "type": "string", - "enum": [ - "mir" - ], - "title": "MIR" - }, - { - "type": "string", - "enum": [ - "maestro" - ], - "title": "Maestro" - }, - { - "type": "string", - "enum": [ - "rupay" - ], - "title": "Rupay" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/favicon": { - "get": { - "summary": "Get favicon", - "operationId": "avatarsGetFavicon", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-favicon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to fetch the favicon from.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/flags\/{code}": { - "get": { - "summary": "Get country flag", - "operationId": "avatarsGetFlag", - "tags": [ - "avatars" - ], - "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-flag.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "code", - "description": "Country Code. ISO Alpha-2 country code format.", - "required": true, - "schema": { - "type": "string", - "example": "af", - "title": "Flag", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "Afghanistan" - }, - { - "type": "string", - "enum": [ - "ao" - ], - "title": "Angola" - }, - { - "type": "string", - "enum": [ - "al" - ], - "title": "Albania" - }, - { - "type": "string", - "enum": [ - "ad" - ], - "title": "Andorra" - }, - { - "type": "string", - "enum": [ - "ae" - ], - "title": "United Arab Emirates" - }, - { - "type": "string", - "enum": [ - "ar" - ], - "title": "Argentina" - }, - { - "type": "string", - "enum": [ - "am" - ], - "title": "Armenia" - }, - { - "type": "string", - "enum": [ - "ag" - ], - "title": "Antigua and Barbuda" - }, - { - "type": "string", - "enum": [ - "au" - ], - "title": "Australia" - }, - { - "type": "string", - "enum": [ - "at" - ], - "title": "Austria" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "Azerbaijan" - }, - { - "type": "string", - "enum": [ - "bi" - ], - "title": "Burundi" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "Belgium" - }, - { - "type": "string", - "enum": [ - "bj" - ], - "title": "Benin" - }, - { - "type": "string", - "enum": [ - "bf" - ], - "title": "Burkina Faso" - }, - { - "type": "string", - "enum": [ - "bd" - ], - "title": "Bangladesh" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "Bulgaria" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "Bahrain" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "Bahamas" - }, - { - "type": "string", - "enum": [ - "ba" - ], - "title": "Bosnia and Herzegovina" - }, - { - "type": "string", - "enum": [ - "by" - ], - "title": "Belarus" - }, - { - "type": "string", - "enum": [ - "bz" - ], - "title": "Belize" - }, - { - "type": "string", - "enum": [ - "bo" - ], - "title": "Bolivia" - }, - { - "type": "string", - "enum": [ - "br" - ], - "title": "Brazil" - }, - { - "type": "string", - "enum": [ - "bb" - ], - "title": "Barbados" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "Brunei Darussalam" - }, - { - "type": "string", - "enum": [ - "bt" - ], - "title": "Bhutan" - }, - { - "type": "string", - "enum": [ - "bw" - ], - "title": "Botswana" - }, - { - "type": "string", - "enum": [ - "cf" - ], - "title": "Central African Republic" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "Canada" - }, - { - "type": "string", - "enum": [ - "ch" - ], - "title": "Switzerland" - }, - { - "type": "string", - "enum": [ - "cl" - ], - "title": "Chile" - }, - { - "type": "string", - "enum": [ - "cn" - ], - "title": "China" - }, - { - "type": "string", - "enum": [ - "ci" - ], - "title": "C\u00f4te d'Ivoire" - }, - { - "type": "string", - "enum": [ - "cm" - ], - "title": "Cameroon" - }, - { - "type": "string", - "enum": [ - "cd" - ], - "title": "Democratic Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "cg" - ], - "title": "Republic of the Congo" - }, - { - "type": "string", - "enum": [ - "co" - ], - "title": "Colombia" - }, - { - "type": "string", - "enum": [ - "km" - ], - "title": "Comoros" - }, - { - "type": "string", - "enum": [ - "cv" - ], - "title": "Cape Verde" - }, - { - "type": "string", - "enum": [ - "cr" - ], - "title": "Costa Rica" - }, - { - "type": "string", - "enum": [ - "cu" - ], - "title": "Cuba" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "Cyprus" - }, - { - "type": "string", - "enum": [ - "cz" - ], - "title": "Czech Republic" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "Germany" - }, - { - "type": "string", - "enum": [ - "dj" - ], - "title": "Djibouti" - }, - { - "type": "string", - "enum": [ - "dm" - ], - "title": "Dominica" - }, - { - "type": "string", - "enum": [ - "dk" - ], - "title": "Denmark" - }, - { - "type": "string", - "enum": [ - "do" - ], - "title": "Dominican Republic" - }, - { - "type": "string", - "enum": [ - "dz" - ], - "title": "Algeria" - }, - { - "type": "string", - "enum": [ - "ec" - ], - "title": "Ecuador" - }, - { - "type": "string", - "enum": [ - "eg" - ], - "title": "Egypt" - }, - { - "type": "string", - "enum": [ - "er" - ], - "title": "Eritrea" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "Spain" - }, - { - "type": "string", - "enum": [ - "ee" - ], - "title": "Estonia" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "Ethiopia" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "Finland" - }, - { - "type": "string", - "enum": [ - "fj" - ], - "title": "Fiji" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "France" - }, - { - "type": "string", - "enum": [ - "fm" - ], - "title": "Micronesia (Federated States of)" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "Gabon" - }, - { - "type": "string", - "enum": [ - "gb" - ], - "title": "United Kingdom" - }, - { - "type": "string", - "enum": [ - "ge" - ], - "title": "Georgia" - }, - { - "type": "string", - "enum": [ - "gh" - ], - "title": "Ghana" - }, - { - "type": "string", - "enum": [ - "gn" - ], - "title": "Guinea" - }, - { - "type": "string", - "enum": [ - "gm" - ], - "title": "Gambia" - }, - { - "type": "string", - "enum": [ - "gw" - ], - "title": "Guinea-Bissau" - }, - { - "type": "string", - "enum": [ - "gq" - ], - "title": "Equatorial Guinea" - }, - { - "type": "string", - "enum": [ - "gr" - ], - "title": "Greece" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "Grenada" - }, - { - "type": "string", - "enum": [ - "gt" - ], - "title": "Guatemala" - }, - { - "type": "string", - "enum": [ - "gy" - ], - "title": "Guyana" - }, - { - "type": "string", - "enum": [ - "hn" - ], - "title": "Honduras" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "Croatia" - }, - { - "type": "string", - "enum": [ - "ht" - ], - "title": "Haiti" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "Hungary" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "Indonesia" - }, - { - "type": "string", - "enum": [ - "in" - ], - "title": "India" - }, - { - "type": "string", - "enum": [ - "ie" - ], - "title": "Ireland" - }, - { - "type": "string", - "enum": [ - "ir" - ], - "title": "Iran (Islamic Republic of)" - }, - { - "type": "string", - "enum": [ - "iq" - ], - "title": "Iraq" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "Iceland" - }, - { - "type": "string", - "enum": [ - "il" - ], - "title": "Israel" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "Italy" - }, - { - "type": "string", - "enum": [ - "jm" - ], - "title": "Jamaica" - }, - { - "type": "string", - "enum": [ - "jo" - ], - "title": "Jordan" - }, - { - "type": "string", - "enum": [ - "jp" - ], - "title": "Japan" - }, - { - "type": "string", - "enum": [ - "kz" - ], - "title": "Kazakhstan" - }, - { - "type": "string", - "enum": [ - "ke" - ], - "title": "Kenya" - }, - { - "type": "string", - "enum": [ - "kg" - ], - "title": "Kyrgyzstan" - }, - { - "type": "string", - "enum": [ - "kh" - ], - "title": "Cambodia" - }, - { - "type": "string", - "enum": [ - "ki" - ], - "title": "Kiribati" - }, - { - "type": "string", - "enum": [ - "kn" - ], - "title": "Saint Kitts and Nevis" - }, - { - "type": "string", - "enum": [ - "kr" - ], - "title": "South Korea" - }, - { - "type": "string", - "enum": [ - "kw" - ], - "title": "Kuwait" - }, - { - "type": "string", - "enum": [ - "la" - ], - "title": "Lao People's Democratic Republic" - }, - { - "type": "string", - "enum": [ - "lb" - ], - "title": "Lebanon" - }, - { - "type": "string", - "enum": [ - "lr" - ], - "title": "Liberia" - }, - { - "type": "string", - "enum": [ - "ly" - ], - "title": "Libya" - }, - { - "type": "string", - "enum": [ - "lc" - ], - "title": "Saint Lucia" - }, - { - "type": "string", - "enum": [ - "li" - ], - "title": "Liechtenstein" - }, - { - "type": "string", - "enum": [ - "lk" - ], - "title": "Sri Lanka" - }, - { - "type": "string", - "enum": [ - "ls" - ], - "title": "Lesotho" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "Lithuania" - }, - { - "type": "string", - "enum": [ - "lu" - ], - "title": "Luxembourg" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "Latvia" - }, - { - "type": "string", - "enum": [ - "ma" - ], - "title": "Morocco" - }, - { - "type": "string", - "enum": [ - "mc" - ], - "title": "Monaco" - }, - { - "type": "string", - "enum": [ - "md" - ], - "title": "Moldova" - }, - { - "type": "string", - "enum": [ - "mg" - ], - "title": "Madagascar" - }, - { - "type": "string", - "enum": [ - "mv" - ], - "title": "Maldives" - }, - { - "type": "string", - "enum": [ - "mx" - ], - "title": "Mexico" - }, - { - "type": "string", - "enum": [ - "mh" - ], - "title": "Marshall Islands" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "North Macedonia" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "Mali" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "Malta" - }, - { - "type": "string", - "enum": [ - "mm" - ], - "title": "Myanmar" - }, - { - "type": "string", - "enum": [ - "me" - ], - "title": "Montenegro" - }, - { - "type": "string", - "enum": [ - "mn" - ], - "title": "Mongolia" - }, - { - "type": "string", - "enum": [ - "mz" - ], - "title": "Mozambique" - }, - { - "type": "string", - "enum": [ - "mr" - ], - "title": "Mauritania" - }, - { - "type": "string", - "enum": [ - "mu" - ], - "title": "Mauritius" - }, - { - "type": "string", - "enum": [ - "mw" - ], - "title": "Malawi" - }, - { - "type": "string", - "enum": [ - "my" - ], - "title": "Malaysia" - }, - { - "type": "string", - "enum": [ - "na" - ], - "title": "Namibia" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "Niger" - }, - { - "type": "string", - "enum": [ - "ng" - ], - "title": "Nigeria" - }, - { - "type": "string", - "enum": [ - "ni" - ], - "title": "Nicaragua" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "Netherlands" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "Norway" - }, - { - "type": "string", - "enum": [ - "np" - ], - "title": "Nepal" - }, - { - "type": "string", - "enum": [ - "nr" - ], - "title": "Nauru" - }, - { - "type": "string", - "enum": [ - "nz" - ], - "title": "New Zealand" - }, - { - "type": "string", - "enum": [ - "om" - ], - "title": "Oman" - }, - { - "type": "string", - "enum": [ - "pk" - ], - "title": "Pakistan" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "Panama" - }, - { - "type": "string", - "enum": [ - "pe" - ], - "title": "Peru" - }, - { - "type": "string", - "enum": [ - "ph" - ], - "title": "Philippines" - }, - { - "type": "string", - "enum": [ - "pw" - ], - "title": "Palau" - }, - { - "type": "string", - "enum": [ - "pg" - ], - "title": "Papua New Guinea" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "Poland" - }, - { - "type": "string", - "enum": [ - "pf" - ], - "title": "French Polynesia" - }, - { - "type": "string", - "enum": [ - "kp" - ], - "title": "North Korea" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "Portugal" - }, - { - "type": "string", - "enum": [ - "py" - ], - "title": "Paraguay" - }, - { - "type": "string", - "enum": [ - "qa" - ], - "title": "Qatar" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "Romania" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "Russia" - }, - { - "type": "string", - "enum": [ - "rw" - ], - "title": "Rwanda" - }, - { - "type": "string", - "enum": [ - "sa" - ], - "title": "Saudi Arabia" - }, - { - "type": "string", - "enum": [ - "sd" - ], - "title": "Sudan" - }, - { - "type": "string", - "enum": [ - "sn" - ], - "title": "Senegal" - }, - { - "type": "string", - "enum": [ - "sg" - ], - "title": "Singapore" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "Solomon Islands" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "Sierra Leone" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "El Salvador" - }, - { - "type": "string", - "enum": [ - "sm" - ], - "title": "San Marino" - }, - { - "type": "string", - "enum": [ - "so" - ], - "title": "Somalia" - }, - { - "type": "string", - "enum": [ - "rs" - ], - "title": "Serbia" - }, - { - "type": "string", - "enum": [ - "ss" - ], - "title": "South Sudan" - }, - { - "type": "string", - "enum": [ - "st" - ], - "title": "Sao Tome and Principe" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "Suriname" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "Slovakia" - }, - { - "type": "string", - "enum": [ - "si" - ], - "title": "Slovenia" - }, - { - "type": "string", - "enum": [ - "se" - ], - "title": "Sweden" - }, - { - "type": "string", - "enum": [ - "sz" - ], - "title": "Eswatini" - }, - { - "type": "string", - "enum": [ - "sc" - ], - "title": "Seychelles" - }, - { - "type": "string", - "enum": [ - "sy" - ], - "title": "Syria" - }, - { - "type": "string", - "enum": [ - "td" - ], - "title": "Chad" - }, - { - "type": "string", - "enum": [ - "tg" - ], - "title": "Togo" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "Thailand" - }, - { - "type": "string", - "enum": [ - "tj" - ], - "title": "Tajikistan" - }, - { - "type": "string", - "enum": [ - "tm" - ], - "title": "Turkmenistan" - }, - { - "type": "string", - "enum": [ - "tl" - ], - "title": "Timor-Leste" - }, - { - "type": "string", - "enum": [ - "to" - ], - "title": "Tonga" - }, - { - "type": "string", - "enum": [ - "tt" - ], - "title": "Trinidad and Tobago" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "Tunisia" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "Turkey" - }, - { - "type": "string", - "enum": [ - "tv" - ], - "title": "Tuvalu" - }, - { - "type": "string", - "enum": [ - "tz" - ], - "title": "Tanzania" - }, - { - "type": "string", - "enum": [ - "ug" - ], - "title": "Uganda" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "Ukraine" - }, - { - "type": "string", - "enum": [ - "uy" - ], - "title": "Uruguay" - }, - { - "type": "string", - "enum": [ - "us" - ], - "title": "United States" - }, - { - "type": "string", - "enum": [ - "uz" - ], - "title": "Uzbekistan" - }, - { - "type": "string", - "enum": [ - "va" - ], - "title": "Vatican City" - }, - { - "type": "string", - "enum": [ - "vc" - ], - "title": "Saint Vincent and the Grenadines" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "Venezuela" - }, - { - "type": "string", - "enum": [ - "vn" - ], - "title": "Vietnam" - }, - { - "type": "string", - "enum": [ - "vu" - ], - "title": "Vanuatu" - }, - { - "type": "string", - "enum": [ - "ws" - ], - "title": "Samoa" - }, - { - "type": "string", - "enum": [ - "ye" - ], - "title": "Yemen" - }, - { - "type": "string", - "enum": [ - "za" - ], - "title": "South Africa" - }, - { - "type": "string", - "enum": [ - "zm" - ], - "title": "Zambia" - }, - { - "type": "string", - "enum": [ - "zw" - ], - "title": "Zimbabwe" - } - ] - }, - "in": "path" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/image": { - "get": { - "summary": "Get image from URL", - "operationId": "avatarsGetImage", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-image.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Image URL which you want to crop.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 400 - }, - "in": "query" - } - ] - } - }, - "\/avatars\/initials": { - "get": { - "summary": "Get user initials", - "operationId": "avatarsGetInitials", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-initials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "name", - "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - }, - { - "name": "width", - "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "height", - "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 500 - }, - "in": "query" - }, - { - "name": "background", - "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", - "required": false, - "schema": { - "type": "string", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/avatars\/photo": { - "get": { - "summary": "Get user photo", - "operationId": "avatarsGetPhoto", - "tags": [ - "avatars" - ], - "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-photo.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "width", - "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 256 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Output image quality between 0 and 100. Defaults to 100.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 100 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output image format. Defaults to 'png'.", - "required": false, - "schema": { - "type": "string", - "example": "png", - "default": "png" - }, - "in": "query" - }, - { - "name": "rating", - "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", - "required": false, - "schema": { - "type": "string", - "example": "g", - "default": "g" - }, - "in": "query" - }, - { - "name": "userId", - "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", - "required": false, - "schema": { - "type": "string", - "example": "current()", - "default": "" - }, - "in": "query" - }, - { - "name": "emailHash", - "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", - "required": false, - "schema": { - "type": "string", - "example": "<EMAIL_HASH>", - "default": "" - }, - "in": "query" - }, - { - "name": "name", - "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<NAME>", - "default": "" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Update photo", - "operationId": "avatarsUpdatePhoto", - "tags": [ - "avatars" - ], - "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", - "responses": { - "200": { - "description": "Account", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/account" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/update-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "file": { - "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", - "type": "string", - "format": "binary" - } - }, - "required": [ - "file" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete photo", - "operationId": "avatarsDeletePhoto", - "tags": [ - "avatars" - ], - "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/delete-photo.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "avatars.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/avatars\/qr": { - "get": { - "summary": "Get QR code", - "operationId": "avatarsGetQR", - "tags": [ - "avatars" - ], - "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-qr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "text", - "description": "Plain text to be converted to QR code image.", - "required": true, - "schema": { - "type": "string", - "example": "<TEXT>" - }, - "in": "query" - }, - { - "name": "size", - "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 400 - }, - "in": "query" - }, - { - "name": "margin", - "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "download", - "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": false - }, - "in": "query" - } - ] - } - }, - "\/avatars\/screenshots": { - "get": { - "summary": "Get webpage screenshot", - "operationId": "avatarsGetScreenshot", - "tags": [ - "avatars" - ], - "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/png": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "avatars\/get-screenshot.md", - "rate-limit": 60, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "avatars.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "url", - "description": "Website URL which you want to capture.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "headers", - "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", - "required": false, - "schema": { - "type": "object", - "default": {}, - "example": { - "Accept-Language": "en-US,en;q=0.9" - } - }, - "in": "query" - }, - { - "name": "viewportWidth", - "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1920, - "default": 1280 - }, - "in": "query" - }, - { - "name": "viewportHeight", - "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1080, - "default": 720 - }, - "in": "query" - }, - { - "name": "scale", - "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 2, - "default": 1 - }, - "in": "query" - }, - { - "name": "theme", - "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", - "required": false, - "schema": { - "type": "string", - "example": "dark", - "title": "BrowserTheme", - "oneOf": [ - { - "type": "string", - "enum": [ - "light" - ], - "title": "light" - }, - { - "type": "string", - "enum": [ - "dark" - ], - "title": "dark" - } - ], - "default": "light" - }, - "in": "query" - }, - { - "name": "userAgent", - "description": "Custom user agent string. Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", - "default": "" - }, - "in": "query" - }, - { - "name": "fullpage", - "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "locale", - "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "en-US", - "default": "" - }, - "in": "query" - }, - { - "name": "timezone", - "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", - "required": false, - "schema": { - "type": "string", - "example": "America\/New_York", - "title": "Timezone", - "oneOf": [ - { - "type": "string", - "enum": [ - "africa\/abidjan" - ], - "title": "africa\/abidjan" - }, - { - "type": "string", - "enum": [ - "africa\/accra" - ], - "title": "africa\/accra" - }, - { - "type": "string", - "enum": [ - "africa\/addis_ababa" - ], - "title": "africa\/addis_ababa" - }, - { - "type": "string", - "enum": [ - "africa\/algiers" - ], - "title": "africa\/algiers" - }, - { - "type": "string", - "enum": [ - "africa\/asmara" - ], - "title": "africa\/asmara" - }, - { - "type": "string", - "enum": [ - "africa\/bamako" - ], - "title": "africa\/bamako" - }, - { - "type": "string", - "enum": [ - "africa\/bangui" - ], - "title": "africa\/bangui" - }, - { - "type": "string", - "enum": [ - "africa\/banjul" - ], - "title": "africa\/banjul" - }, - { - "type": "string", - "enum": [ - "africa\/bissau" - ], - "title": "africa\/bissau" - }, - { - "type": "string", - "enum": [ - "africa\/blantyre" - ], - "title": "africa\/blantyre" - }, - { - "type": "string", - "enum": [ - "africa\/brazzaville" - ], - "title": "africa\/brazzaville" - }, - { - "type": "string", - "enum": [ - "africa\/bujumbura" - ], - "title": "africa\/bujumbura" - }, - { - "type": "string", - "enum": [ - "africa\/cairo" - ], - "title": "africa\/cairo" - }, - { - "type": "string", - "enum": [ - "africa\/casablanca" - ], - "title": "africa\/casablanca" - }, - { - "type": "string", - "enum": [ - "africa\/ceuta" - ], - "title": "africa\/ceuta" - }, - { - "type": "string", - "enum": [ - "africa\/conakry" - ], - "title": "africa\/conakry" - }, - { - "type": "string", - "enum": [ - "africa\/dakar" - ], - "title": "africa\/dakar" - }, - { - "type": "string", - "enum": [ - "africa\/dar_es_salaam" - ], - "title": "africa\/dar_es_salaam" - }, - { - "type": "string", - "enum": [ - "africa\/djibouti" - ], - "title": "africa\/djibouti" - }, - { - "type": "string", - "enum": [ - "africa\/douala" - ], - "title": "africa\/douala" - }, - { - "type": "string", - "enum": [ - "africa\/el_aaiun" - ], - "title": "africa\/el_aaiun" - }, - { - "type": "string", - "enum": [ - "africa\/freetown" - ], - "title": "africa\/freetown" - }, - { - "type": "string", - "enum": [ - "africa\/gaborone" - ], - "title": "africa\/gaborone" - }, - { - "type": "string", - "enum": [ - "africa\/harare" - ], - "title": "africa\/harare" - }, - { - "type": "string", - "enum": [ - "africa\/johannesburg" - ], - "title": "africa\/johannesburg" - }, - { - "type": "string", - "enum": [ - "africa\/juba" - ], - "title": "africa\/juba" - }, - { - "type": "string", - "enum": [ - "africa\/kampala" - ], - "title": "africa\/kampala" - }, - { - "type": "string", - "enum": [ - "africa\/khartoum" - ], - "title": "africa\/khartoum" - }, - { - "type": "string", - "enum": [ - "africa\/kigali" - ], - "title": "africa\/kigali" - }, - { - "type": "string", - "enum": [ - "africa\/kinshasa" - ], - "title": "africa\/kinshasa" - }, - { - "type": "string", - "enum": [ - "africa\/lagos" - ], - "title": "africa\/lagos" - }, - { - "type": "string", - "enum": [ - "africa\/libreville" - ], - "title": "africa\/libreville" - }, - { - "type": "string", - "enum": [ - "africa\/lome" - ], - "title": "africa\/lome" - }, - { - "type": "string", - "enum": [ - "africa\/luanda" - ], - "title": "africa\/luanda" - }, - { - "type": "string", - "enum": [ - "africa\/lubumbashi" - ], - "title": "africa\/lubumbashi" - }, - { - "type": "string", - "enum": [ - "africa\/lusaka" - ], - "title": "africa\/lusaka" - }, - { - "type": "string", - "enum": [ - "africa\/malabo" - ], - "title": "africa\/malabo" - }, - { - "type": "string", - "enum": [ - "africa\/maputo" - ], - "title": "africa\/maputo" - }, - { - "type": "string", - "enum": [ - "africa\/maseru" - ], - "title": "africa\/maseru" - }, - { - "type": "string", - "enum": [ - "africa\/mbabane" - ], - "title": "africa\/mbabane" - }, - { - "type": "string", - "enum": [ - "africa\/mogadishu" - ], - "title": "africa\/mogadishu" - }, - { - "type": "string", - "enum": [ - "africa\/monrovia" - ], - "title": "africa\/monrovia" - }, - { - "type": "string", - "enum": [ - "africa\/nairobi" - ], - "title": "africa\/nairobi" - }, - { - "type": "string", - "enum": [ - "africa\/ndjamena" - ], - "title": "africa\/ndjamena" - }, - { - "type": "string", - "enum": [ - "africa\/niamey" - ], - "title": "africa\/niamey" - }, - { - "type": "string", - "enum": [ - "africa\/nouakchott" - ], - "title": "africa\/nouakchott" - }, - { - "type": "string", - "enum": [ - "africa\/ouagadougou" - ], - "title": "africa\/ouagadougou" - }, - { - "type": "string", - "enum": [ - "africa\/porto-novo" - ], - "title": "africa\/porto-novo" - }, - { - "type": "string", - "enum": [ - "africa\/sao_tome" - ], - "title": "africa\/sao_tome" - }, - { - "type": "string", - "enum": [ - "africa\/tripoli" - ], - "title": "africa\/tripoli" - }, - { - "type": "string", - "enum": [ - "africa\/tunis" - ], - "title": "africa\/tunis" - }, - { - "type": "string", - "enum": [ - "africa\/windhoek" - ], - "title": "africa\/windhoek" - }, - { - "type": "string", - "enum": [ - "america\/adak" - ], - "title": "america\/adak" - }, - { - "type": "string", - "enum": [ - "america\/anchorage" - ], - "title": "america\/anchorage" - }, - { - "type": "string", - "enum": [ - "america\/anguilla" - ], - "title": "america\/anguilla" - }, - { - "type": "string", - "enum": [ - "america\/antigua" - ], - "title": "america\/antigua" - }, - { - "type": "string", - "enum": [ - "america\/araguaina" - ], - "title": "america\/araguaina" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/buenos_aires" - ], - "title": "america\/argentina\/buenos_aires" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/catamarca" - ], - "title": "america\/argentina\/catamarca" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/cordoba" - ], - "title": "america\/argentina\/cordoba" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/jujuy" - ], - "title": "america\/argentina\/jujuy" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/la_rioja" - ], - "title": "america\/argentina\/la_rioja" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/mendoza" - ], - "title": "america\/argentina\/mendoza" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/rio_gallegos" - ], - "title": "america\/argentina\/rio_gallegos" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/salta" - ], - "title": "america\/argentina\/salta" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_juan" - ], - "title": "america\/argentina\/san_juan" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/san_luis" - ], - "title": "america\/argentina\/san_luis" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/tucuman" - ], - "title": "america\/argentina\/tucuman" - }, - { - "type": "string", - "enum": [ - "america\/argentina\/ushuaia" - ], - "title": "america\/argentina\/ushuaia" - }, - { - "type": "string", - "enum": [ - "america\/aruba" - ], - "title": "america\/aruba" - }, - { - "type": "string", - "enum": [ - "america\/asuncion" - ], - "title": "america\/asuncion" - }, - { - "type": "string", - "enum": [ - "america\/atikokan" - ], - "title": "america\/atikokan" - }, - { - "type": "string", - "enum": [ - "america\/bahia" - ], - "title": "america\/bahia" - }, - { - "type": "string", - "enum": [ - "america\/bahia_banderas" - ], - "title": "america\/bahia_banderas" - }, - { - "type": "string", - "enum": [ - "america\/barbados" - ], - "title": "america\/barbados" - }, - { - "type": "string", - "enum": [ - "america\/belem" - ], - "title": "america\/belem" - }, - { - "type": "string", - "enum": [ - "america\/belize" - ], - "title": "america\/belize" - }, - { - "type": "string", - "enum": [ - "america\/blanc-sablon" - ], - "title": "america\/blanc-sablon" - }, - { - "type": "string", - "enum": [ - "america\/boa_vista" - ], - "title": "america\/boa_vista" - }, - { - "type": "string", - "enum": [ - "america\/bogota" - ], - "title": "america\/bogota" - }, - { - "type": "string", - "enum": [ - "america\/boise" - ], - "title": "america\/boise" - }, - { - "type": "string", - "enum": [ - "america\/cambridge_bay" - ], - "title": "america\/cambridge_bay" - }, - { - "type": "string", - "enum": [ - "america\/campo_grande" - ], - "title": "america\/campo_grande" - }, - { - "type": "string", - "enum": [ - "america\/cancun" - ], - "title": "america\/cancun" - }, - { - "type": "string", - "enum": [ - "america\/caracas" - ], - "title": "america\/caracas" - }, - { - "type": "string", - "enum": [ - "america\/cayenne" - ], - "title": "america\/cayenne" - }, - { - "type": "string", - "enum": [ - "america\/cayman" - ], - "title": "america\/cayman" - }, - { - "type": "string", - "enum": [ - "america\/chicago" - ], - "title": "america\/chicago" - }, - { - "type": "string", - "enum": [ - "america\/chihuahua" - ], - "title": "america\/chihuahua" - }, - { - "type": "string", - "enum": [ - "america\/ciudad_juarez" - ], - "title": "america\/ciudad_juarez" - }, - { - "type": "string", - "enum": [ - "america\/costa_rica" - ], - "title": "america\/costa_rica" - }, - { - "type": "string", - "enum": [ - "america\/coyhaique" - ], - "title": "america\/coyhaique" - }, - { - "type": "string", - "enum": [ - "america\/creston" - ], - "title": "america\/creston" - }, - { - "type": "string", - "enum": [ - "america\/cuiaba" - ], - "title": "america\/cuiaba" - }, - { - "type": "string", - "enum": [ - "america\/curacao" - ], - "title": "america\/curacao" - }, - { - "type": "string", - "enum": [ - "america\/danmarkshavn" - ], - "title": "america\/danmarkshavn" - }, - { - "type": "string", - "enum": [ - "america\/dawson" - ], - "title": "america\/dawson" - }, - { - "type": "string", - "enum": [ - "america\/dawson_creek" - ], - "title": "america\/dawson_creek" - }, - { - "type": "string", - "enum": [ - "america\/denver" - ], - "title": "america\/denver" - }, - { - "type": "string", - "enum": [ - "america\/detroit" - ], - "title": "america\/detroit" - }, - { - "type": "string", - "enum": [ - "america\/dominica" - ], - "title": "america\/dominica" - }, - { - "type": "string", - "enum": [ - "america\/edmonton" - ], - "title": "america\/edmonton" - }, - { - "type": "string", - "enum": [ - "america\/eirunepe" - ], - "title": "america\/eirunepe" - }, - { - "type": "string", - "enum": [ - "america\/el_salvador" - ], - "title": "america\/el_salvador" - }, - { - "type": "string", - "enum": [ - "america\/fort_nelson" - ], - "title": "america\/fort_nelson" - }, - { - "type": "string", - "enum": [ - "america\/fortaleza" - ], - "title": "america\/fortaleza" - }, - { - "type": "string", - "enum": [ - "america\/glace_bay" - ], - "title": "america\/glace_bay" - }, - { - "type": "string", - "enum": [ - "america\/goose_bay" - ], - "title": "america\/goose_bay" - }, - { - "type": "string", - "enum": [ - "america\/grand_turk" - ], - "title": "america\/grand_turk" - }, - { - "type": "string", - "enum": [ - "america\/grenada" - ], - "title": "america\/grenada" - }, - { - "type": "string", - "enum": [ - "america\/guadeloupe" - ], - "title": "america\/guadeloupe" - }, - { - "type": "string", - "enum": [ - "america\/guatemala" - ], - "title": "america\/guatemala" - }, - { - "type": "string", - "enum": [ - "america\/guayaquil" - ], - "title": "america\/guayaquil" - }, - { - "type": "string", - "enum": [ - "america\/guyana" - ], - "title": "america\/guyana" - }, - { - "type": "string", - "enum": [ - "america\/halifax" - ], - "title": "america\/halifax" - }, - { - "type": "string", - "enum": [ - "america\/havana" - ], - "title": "america\/havana" - }, - { - "type": "string", - "enum": [ - "america\/hermosillo" - ], - "title": "america\/hermosillo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/indianapolis" - ], - "title": "america\/indiana\/indianapolis" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/knox" - ], - "title": "america\/indiana\/knox" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/marengo" - ], - "title": "america\/indiana\/marengo" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/petersburg" - ], - "title": "america\/indiana\/petersburg" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/tell_city" - ], - "title": "america\/indiana\/tell_city" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vevay" - ], - "title": "america\/indiana\/vevay" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/vincennes" - ], - "title": "america\/indiana\/vincennes" - }, - { - "type": "string", - "enum": [ - "america\/indiana\/winamac" - ], - "title": "america\/indiana\/winamac" - }, - { - "type": "string", - "enum": [ - "america\/inuvik" - ], - "title": "america\/inuvik" - }, - { - "type": "string", - "enum": [ - "america\/iqaluit" - ], - "title": "america\/iqaluit" - }, - { - "type": "string", - "enum": [ - "america\/jamaica" - ], - "title": "america\/jamaica" - }, - { - "type": "string", - "enum": [ - "america\/juneau" - ], - "title": "america\/juneau" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/louisville" - ], - "title": "america\/kentucky\/louisville" - }, - { - "type": "string", - "enum": [ - "america\/kentucky\/monticello" - ], - "title": "america\/kentucky\/monticello" - }, - { - "type": "string", - "enum": [ - "america\/kralendijk" - ], - "title": "america\/kralendijk" - }, - { - "type": "string", - "enum": [ - "america\/la_paz" - ], - "title": "america\/la_paz" - }, - { - "type": "string", - "enum": [ - "america\/lima" - ], - "title": "america\/lima" - }, - { - "type": "string", - "enum": [ - "america\/los_angeles" - ], - "title": "america\/los_angeles" - }, - { - "type": "string", - "enum": [ - "america\/lower_princes" - ], - "title": "america\/lower_princes" - }, - { - "type": "string", - "enum": [ - "america\/maceio" - ], - "title": "america\/maceio" - }, - { - "type": "string", - "enum": [ - "america\/managua" - ], - "title": "america\/managua" - }, - { - "type": "string", - "enum": [ - "america\/manaus" - ], - "title": "america\/manaus" - }, - { - "type": "string", - "enum": [ - "america\/marigot" - ], - "title": "america\/marigot" - }, - { - "type": "string", - "enum": [ - "america\/martinique" - ], - "title": "america\/martinique" - }, - { - "type": "string", - "enum": [ - "america\/matamoros" - ], - "title": "america\/matamoros" - }, - { - "type": "string", - "enum": [ - "america\/mazatlan" - ], - "title": "america\/mazatlan" - }, - { - "type": "string", - "enum": [ - "america\/menominee" - ], - "title": "america\/menominee" - }, - { - "type": "string", - "enum": [ - "america\/merida" - ], - "title": "america\/merida" - }, - { - "type": "string", - "enum": [ - "america\/metlakatla" - ], - "title": "america\/metlakatla" - }, - { - "type": "string", - "enum": [ - "america\/mexico_city" - ], - "title": "america\/mexico_city" - }, - { - "type": "string", - "enum": [ - "america\/miquelon" - ], - "title": "america\/miquelon" - }, - { - "type": "string", - "enum": [ - "america\/moncton" - ], - "title": "america\/moncton" - }, - { - "type": "string", - "enum": [ - "america\/monterrey" - ], - "title": "america\/monterrey" - }, - { - "type": "string", - "enum": [ - "america\/montevideo" - ], - "title": "america\/montevideo" - }, - { - "type": "string", - "enum": [ - "america\/montserrat" - ], - "title": "america\/montserrat" - }, - { - "type": "string", - "enum": [ - "america\/nassau" - ], - "title": "america\/nassau" - }, - { - "type": "string", - "enum": [ - "america\/new_york" - ], - "title": "america\/new_york" - }, - { - "type": "string", - "enum": [ - "america\/nome" - ], - "title": "america\/nome" - }, - { - "type": "string", - "enum": [ - "america\/noronha" - ], - "title": "america\/noronha" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/beulah" - ], - "title": "america\/north_dakota\/beulah" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/center" - ], - "title": "america\/north_dakota\/center" - }, - { - "type": "string", - "enum": [ - "america\/north_dakota\/new_salem" - ], - "title": "america\/north_dakota\/new_salem" - }, - { - "type": "string", - "enum": [ - "america\/nuuk" - ], - "title": "america\/nuuk" - }, - { - "type": "string", - "enum": [ - "america\/ojinaga" - ], - "title": "america\/ojinaga" - }, - { - "type": "string", - "enum": [ - "america\/panama" - ], - "title": "america\/panama" - }, - { - "type": "string", - "enum": [ - "america\/paramaribo" - ], - "title": "america\/paramaribo" - }, - { - "type": "string", - "enum": [ - "america\/phoenix" - ], - "title": "america\/phoenix" - }, - { - "type": "string", - "enum": [ - "america\/port-au-prince" - ], - "title": "america\/port-au-prince" - }, - { - "type": "string", - "enum": [ - "america\/port_of_spain" - ], - "title": "america\/port_of_spain" - }, - { - "type": "string", - "enum": [ - "america\/porto_velho" - ], - "title": "america\/porto_velho" - }, - { - "type": "string", - "enum": [ - "america\/puerto_rico" - ], - "title": "america\/puerto_rico" - }, - { - "type": "string", - "enum": [ - "america\/punta_arenas" - ], - "title": "america\/punta_arenas" - }, - { - "type": "string", - "enum": [ - "america\/rankin_inlet" - ], - "title": "america\/rankin_inlet" - }, - { - "type": "string", - "enum": [ - "america\/recife" - ], - "title": "america\/recife" - }, - { - "type": "string", - "enum": [ - "america\/regina" - ], - "title": "america\/regina" - }, - { - "type": "string", - "enum": [ - "america\/resolute" - ], - "title": "america\/resolute" - }, - { - "type": "string", - "enum": [ - "america\/rio_branco" - ], - "title": "america\/rio_branco" - }, - { - "type": "string", - "enum": [ - "america\/santarem" - ], - "title": "america\/santarem" - }, - { - "type": "string", - "enum": [ - "america\/santiago" - ], - "title": "america\/santiago" - }, - { - "type": "string", - "enum": [ - "america\/santo_domingo" - ], - "title": "america\/santo_domingo" - }, - { - "type": "string", - "enum": [ - "america\/sao_paulo" - ], - "title": "america\/sao_paulo" - }, - { - "type": "string", - "enum": [ - "america\/scoresbysund" - ], - "title": "america\/scoresbysund" - }, - { - "type": "string", - "enum": [ - "america\/sitka" - ], - "title": "america\/sitka" - }, - { - "type": "string", - "enum": [ - "america\/st_barthelemy" - ], - "title": "america\/st_barthelemy" - }, - { - "type": "string", - "enum": [ - "america\/st_johns" - ], - "title": "america\/st_johns" - }, - { - "type": "string", - "enum": [ - "america\/st_kitts" - ], - "title": "america\/st_kitts" - }, - { - "type": "string", - "enum": [ - "america\/st_lucia" - ], - "title": "america\/st_lucia" - }, - { - "type": "string", - "enum": [ - "america\/st_thomas" - ], - "title": "america\/st_thomas" - }, - { - "type": "string", - "enum": [ - "america\/st_vincent" - ], - "title": "america\/st_vincent" - }, - { - "type": "string", - "enum": [ - "america\/swift_current" - ], - "title": "america\/swift_current" - }, - { - "type": "string", - "enum": [ - "america\/tegucigalpa" - ], - "title": "america\/tegucigalpa" - }, - { - "type": "string", - "enum": [ - "america\/thule" - ], - "title": "america\/thule" - }, - { - "type": "string", - "enum": [ - "america\/tijuana" - ], - "title": "america\/tijuana" - }, - { - "type": "string", - "enum": [ - "america\/toronto" - ], - "title": "america\/toronto" - }, - { - "type": "string", - "enum": [ - "america\/tortola" - ], - "title": "america\/tortola" - }, - { - "type": "string", - "enum": [ - "america\/vancouver" - ], - "title": "america\/vancouver" - }, - { - "type": "string", - "enum": [ - "america\/whitehorse" - ], - "title": "america\/whitehorse" - }, - { - "type": "string", - "enum": [ - "america\/winnipeg" - ], - "title": "america\/winnipeg" - }, - { - "type": "string", - "enum": [ - "america\/yakutat" - ], - "title": "america\/yakutat" - }, - { - "type": "string", - "enum": [ - "antarctica\/casey" - ], - "title": "antarctica\/casey" - }, - { - "type": "string", - "enum": [ - "antarctica\/davis" - ], - "title": "antarctica\/davis" - }, - { - "type": "string", - "enum": [ - "antarctica\/dumontdurville" - ], - "title": "antarctica\/dumontdurville" - }, - { - "type": "string", - "enum": [ - "antarctica\/macquarie" - ], - "title": "antarctica\/macquarie" - }, - { - "type": "string", - "enum": [ - "antarctica\/mawson" - ], - "title": "antarctica\/mawson" - }, - { - "type": "string", - "enum": [ - "antarctica\/mcmurdo" - ], - "title": "antarctica\/mcmurdo" - }, - { - "type": "string", - "enum": [ - "antarctica\/palmer" - ], - "title": "antarctica\/palmer" - }, - { - "type": "string", - "enum": [ - "antarctica\/rothera" - ], - "title": "antarctica\/rothera" - }, - { - "type": "string", - "enum": [ - "antarctica\/syowa" - ], - "title": "antarctica\/syowa" - }, - { - "type": "string", - "enum": [ - "antarctica\/troll" - ], - "title": "antarctica\/troll" - }, - { - "type": "string", - "enum": [ - "antarctica\/vostok" - ], - "title": "antarctica\/vostok" - }, - { - "type": "string", - "enum": [ - "arctic\/longyearbyen" - ], - "title": "arctic\/longyearbyen" - }, - { - "type": "string", - "enum": [ - "asia\/aden" - ], - "title": "asia\/aden" - }, - { - "type": "string", - "enum": [ - "asia\/almaty" - ], - "title": "asia\/almaty" - }, - { - "type": "string", - "enum": [ - "asia\/amman" - ], - "title": "asia\/amman" - }, - { - "type": "string", - "enum": [ - "asia\/anadyr" - ], - "title": "asia\/anadyr" - }, - { - "type": "string", - "enum": [ - "asia\/aqtau" - ], - "title": "asia\/aqtau" - }, - { - "type": "string", - "enum": [ - "asia\/aqtobe" - ], - "title": "asia\/aqtobe" - }, - { - "type": "string", - "enum": [ - "asia\/ashgabat" - ], - "title": "asia\/ashgabat" - }, - { - "type": "string", - "enum": [ - "asia\/atyrau" - ], - "title": "asia\/atyrau" - }, - { - "type": "string", - "enum": [ - "asia\/baghdad" - ], - "title": "asia\/baghdad" - }, - { - "type": "string", - "enum": [ - "asia\/bahrain" - ], - "title": "asia\/bahrain" - }, - { - "type": "string", - "enum": [ - "asia\/baku" - ], - "title": "asia\/baku" - }, - { - "type": "string", - "enum": [ - "asia\/bangkok" - ], - "title": "asia\/bangkok" - }, - { - "type": "string", - "enum": [ - "asia\/barnaul" - ], - "title": "asia\/barnaul" - }, - { - "type": "string", - "enum": [ - "asia\/beirut" - ], - "title": "asia\/beirut" - }, - { - "type": "string", - "enum": [ - "asia\/bishkek" - ], - "title": "asia\/bishkek" - }, - { - "type": "string", - "enum": [ - "asia\/brunei" - ], - "title": "asia\/brunei" - }, - { - "type": "string", - "enum": [ - "asia\/chita" - ], - "title": "asia\/chita" - }, - { - "type": "string", - "enum": [ - "asia\/colombo" - ], - "title": "asia\/colombo" - }, - { - "type": "string", - "enum": [ - "asia\/damascus" - ], - "title": "asia\/damascus" - }, - { - "type": "string", - "enum": [ - "asia\/dhaka" - ], - "title": "asia\/dhaka" - }, - { - "type": "string", - "enum": [ - "asia\/dili" - ], - "title": "asia\/dili" - }, - { - "type": "string", - "enum": [ - "asia\/dubai" - ], - "title": "asia\/dubai" - }, - { - "type": "string", - "enum": [ - "asia\/dushanbe" - ], - "title": "asia\/dushanbe" - }, - { - "type": "string", - "enum": [ - "asia\/famagusta" - ], - "title": "asia\/famagusta" - }, - { - "type": "string", - "enum": [ - "asia\/gaza" - ], - "title": "asia\/gaza" - }, - { - "type": "string", - "enum": [ - "asia\/hebron" - ], - "title": "asia\/hebron" - }, - { - "type": "string", - "enum": [ - "asia\/ho_chi_minh" - ], - "title": "asia\/ho_chi_minh" - }, - { - "type": "string", - "enum": [ - "asia\/hong_kong" - ], - "title": "asia\/hong_kong" - }, - { - "type": "string", - "enum": [ - "asia\/hovd" - ], - "title": "asia\/hovd" - }, - { - "type": "string", - "enum": [ - "asia\/irkutsk" - ], - "title": "asia\/irkutsk" - }, - { - "type": "string", - "enum": [ - "asia\/jakarta" - ], - "title": "asia\/jakarta" - }, - { - "type": "string", - "enum": [ - "asia\/jayapura" - ], - "title": "asia\/jayapura" - }, - { - "type": "string", - "enum": [ - "asia\/jerusalem" - ], - "title": "asia\/jerusalem" - }, - { - "type": "string", - "enum": [ - "asia\/kabul" - ], - "title": "asia\/kabul" - }, - { - "type": "string", - "enum": [ - "asia\/kamchatka" - ], - "title": "asia\/kamchatka" - }, - { - "type": "string", - "enum": [ - "asia\/karachi" - ], - "title": "asia\/karachi" - }, - { - "type": "string", - "enum": [ - "asia\/kathmandu" - ], - "title": "asia\/kathmandu" - }, - { - "type": "string", - "enum": [ - "asia\/khandyga" - ], - "title": "asia\/khandyga" - }, - { - "type": "string", - "enum": [ - "asia\/kolkata" - ], - "title": "asia\/kolkata" - }, - { - "type": "string", - "enum": [ - "asia\/krasnoyarsk" - ], - "title": "asia\/krasnoyarsk" - }, - { - "type": "string", - "enum": [ - "asia\/kuala_lumpur" - ], - "title": "asia\/kuala_lumpur" - }, - { - "type": "string", - "enum": [ - "asia\/kuching" - ], - "title": "asia\/kuching" - }, - { - "type": "string", - "enum": [ - "asia\/kuwait" - ], - "title": "asia\/kuwait" - }, - { - "type": "string", - "enum": [ - "asia\/macau" - ], - "title": "asia\/macau" - }, - { - "type": "string", - "enum": [ - "asia\/magadan" - ], - "title": "asia\/magadan" - }, - { - "type": "string", - "enum": [ - "asia\/makassar" - ], - "title": "asia\/makassar" - }, - { - "type": "string", - "enum": [ - "asia\/manila" - ], - "title": "asia\/manila" - }, - { - "type": "string", - "enum": [ - "asia\/muscat" - ], - "title": "asia\/muscat" - }, - { - "type": "string", - "enum": [ - "asia\/nicosia" - ], - "title": "asia\/nicosia" - }, - { - "type": "string", - "enum": [ - "asia\/novokuznetsk" - ], - "title": "asia\/novokuznetsk" - }, - { - "type": "string", - "enum": [ - "asia\/novosibirsk" - ], - "title": "asia\/novosibirsk" - }, - { - "type": "string", - "enum": [ - "asia\/omsk" - ], - "title": "asia\/omsk" - }, - { - "type": "string", - "enum": [ - "asia\/oral" - ], - "title": "asia\/oral" - }, - { - "type": "string", - "enum": [ - "asia\/phnom_penh" - ], - "title": "asia\/phnom_penh" - }, - { - "type": "string", - "enum": [ - "asia\/pontianak" - ], - "title": "asia\/pontianak" - }, - { - "type": "string", - "enum": [ - "asia\/pyongyang" - ], - "title": "asia\/pyongyang" - }, - { - "type": "string", - "enum": [ - "asia\/qatar" - ], - "title": "asia\/qatar" - }, - { - "type": "string", - "enum": [ - "asia\/qostanay" - ], - "title": "asia\/qostanay" - }, - { - "type": "string", - "enum": [ - "asia\/qyzylorda" - ], - "title": "asia\/qyzylorda" - }, - { - "type": "string", - "enum": [ - "asia\/riyadh" - ], - "title": "asia\/riyadh" - }, - { - "type": "string", - "enum": [ - "asia\/sakhalin" - ], - "title": "asia\/sakhalin" - }, - { - "type": "string", - "enum": [ - "asia\/samarkand" - ], - "title": "asia\/samarkand" - }, - { - "type": "string", - "enum": [ - "asia\/seoul" - ], - "title": "asia\/seoul" - }, - { - "type": "string", - "enum": [ - "asia\/shanghai" - ], - "title": "asia\/shanghai" - }, - { - "type": "string", - "enum": [ - "asia\/singapore" - ], - "title": "asia\/singapore" - }, - { - "type": "string", - "enum": [ - "asia\/srednekolymsk" - ], - "title": "asia\/srednekolymsk" - }, - { - "type": "string", - "enum": [ - "asia\/taipei" - ], - "title": "asia\/taipei" - }, - { - "type": "string", - "enum": [ - "asia\/tashkent" - ], - "title": "asia\/tashkent" - }, - { - "type": "string", - "enum": [ - "asia\/tbilisi" - ], - "title": "asia\/tbilisi" - }, - { - "type": "string", - "enum": [ - "asia\/tehran" - ], - "title": "asia\/tehran" - }, - { - "type": "string", - "enum": [ - "asia\/thimphu" - ], - "title": "asia\/thimphu" - }, - { - "type": "string", - "enum": [ - "asia\/tokyo" - ], - "title": "asia\/tokyo" - }, - { - "type": "string", - "enum": [ - "asia\/tomsk" - ], - "title": "asia\/tomsk" - }, - { - "type": "string", - "enum": [ - "asia\/ulaanbaatar" - ], - "title": "asia\/ulaanbaatar" - }, - { - "type": "string", - "enum": [ - "asia\/urumqi" - ], - "title": "asia\/urumqi" - }, - { - "type": "string", - "enum": [ - "asia\/ust-nera" - ], - "title": "asia\/ust-nera" - }, - { - "type": "string", - "enum": [ - "asia\/vientiane" - ], - "title": "asia\/vientiane" - }, - { - "type": "string", - "enum": [ - "asia\/vladivostok" - ], - "title": "asia\/vladivostok" - }, - { - "type": "string", - "enum": [ - "asia\/yakutsk" - ], - "title": "asia\/yakutsk" - }, - { - "type": "string", - "enum": [ - "asia\/yangon" - ], - "title": "asia\/yangon" - }, - { - "type": "string", - "enum": [ - "asia\/yekaterinburg" - ], - "title": "asia\/yekaterinburg" - }, - { - "type": "string", - "enum": [ - "asia\/yerevan" - ], - "title": "asia\/yerevan" - }, - { - "type": "string", - "enum": [ - "atlantic\/azores" - ], - "title": "atlantic\/azores" - }, - { - "type": "string", - "enum": [ - "atlantic\/bermuda" - ], - "title": "atlantic\/bermuda" - }, - { - "type": "string", - "enum": [ - "atlantic\/canary" - ], - "title": "atlantic\/canary" - }, - { - "type": "string", - "enum": [ - "atlantic\/cape_verde" - ], - "title": "atlantic\/cape_verde" - }, - { - "type": "string", - "enum": [ - "atlantic\/faroe" - ], - "title": "atlantic\/faroe" - }, - { - "type": "string", - "enum": [ - "atlantic\/madeira" - ], - "title": "atlantic\/madeira" - }, - { - "type": "string", - "enum": [ - "atlantic\/reykjavik" - ], - "title": "atlantic\/reykjavik" - }, - { - "type": "string", - "enum": [ - "atlantic\/south_georgia" - ], - "title": "atlantic\/south_georgia" - }, - { - "type": "string", - "enum": [ - "atlantic\/st_helena" - ], - "title": "atlantic\/st_helena" - }, - { - "type": "string", - "enum": [ - "atlantic\/stanley" - ], - "title": "atlantic\/stanley" - }, - { - "type": "string", - "enum": [ - "australia\/adelaide" - ], - "title": "australia\/adelaide" - }, - { - "type": "string", - "enum": [ - "australia\/brisbane" - ], - "title": "australia\/brisbane" - }, - { - "type": "string", - "enum": [ - "australia\/broken_hill" - ], - "title": "australia\/broken_hill" - }, - { - "type": "string", - "enum": [ - "australia\/darwin" - ], - "title": "australia\/darwin" - }, - { - "type": "string", - "enum": [ - "australia\/eucla" - ], - "title": "australia\/eucla" - }, - { - "type": "string", - "enum": [ - "australia\/hobart" - ], - "title": "australia\/hobart" - }, - { - "type": "string", - "enum": [ - "australia\/lindeman" - ], - "title": "australia\/lindeman" - }, - { - "type": "string", - "enum": [ - "australia\/lord_howe" - ], - "title": "australia\/lord_howe" - }, - { - "type": "string", - "enum": [ - "australia\/melbourne" - ], - "title": "australia\/melbourne" - }, - { - "type": "string", - "enum": [ - "australia\/perth" - ], - "title": "australia\/perth" - }, - { - "type": "string", - "enum": [ - "australia\/sydney" - ], - "title": "australia\/sydney" - }, - { - "type": "string", - "enum": [ - "europe\/amsterdam" - ], - "title": "europe\/amsterdam" - }, - { - "type": "string", - "enum": [ - "europe\/andorra" - ], - "title": "europe\/andorra" - }, - { - "type": "string", - "enum": [ - "europe\/astrakhan" - ], - "title": "europe\/astrakhan" - }, - { - "type": "string", - "enum": [ - "europe\/athens" - ], - "title": "europe\/athens" - }, - { - "type": "string", - "enum": [ - "europe\/belgrade" - ], - "title": "europe\/belgrade" - }, - { - "type": "string", - "enum": [ - "europe\/berlin" - ], - "title": "europe\/berlin" - }, - { - "type": "string", - "enum": [ - "europe\/bratislava" - ], - "title": "europe\/bratislava" - }, - { - "type": "string", - "enum": [ - "europe\/brussels" - ], - "title": "europe\/brussels" - }, - { - "type": "string", - "enum": [ - "europe\/bucharest" - ], - "title": "europe\/bucharest" - }, - { - "type": "string", - "enum": [ - "europe\/budapest" - ], - "title": "europe\/budapest" - }, - { - "type": "string", - "enum": [ - "europe\/busingen" - ], - "title": "europe\/busingen" - }, - { - "type": "string", - "enum": [ - "europe\/chisinau" - ], - "title": "europe\/chisinau" - }, - { - "type": "string", - "enum": [ - "europe\/copenhagen" - ], - "title": "europe\/copenhagen" - }, - { - "type": "string", - "enum": [ - "europe\/dublin" - ], - "title": "europe\/dublin" - }, - { - "type": "string", - "enum": [ - "europe\/gibraltar" - ], - "title": "europe\/gibraltar" - }, - { - "type": "string", - "enum": [ - "europe\/guernsey" - ], - "title": "europe\/guernsey" - }, - { - "type": "string", - "enum": [ - "europe\/helsinki" - ], - "title": "europe\/helsinki" - }, - { - "type": "string", - "enum": [ - "europe\/isle_of_man" - ], - "title": "europe\/isle_of_man" - }, - { - "type": "string", - "enum": [ - "europe\/istanbul" - ], - "title": "europe\/istanbul" - }, - { - "type": "string", - "enum": [ - "europe\/jersey" - ], - "title": "europe\/jersey" - }, - { - "type": "string", - "enum": [ - "europe\/kaliningrad" - ], - "title": "europe\/kaliningrad" - }, - { - "type": "string", - "enum": [ - "europe\/kirov" - ], - "title": "europe\/kirov" - }, - { - "type": "string", - "enum": [ - "europe\/kyiv" - ], - "title": "europe\/kyiv" - }, - { - "type": "string", - "enum": [ - "europe\/lisbon" - ], - "title": "europe\/lisbon" - }, - { - "type": "string", - "enum": [ - "europe\/ljubljana" - ], - "title": "europe\/ljubljana" - }, - { - "type": "string", - "enum": [ - "europe\/london" - ], - "title": "europe\/london" - }, - { - "type": "string", - "enum": [ - "europe\/luxembourg" - ], - "title": "europe\/luxembourg" - }, - { - "type": "string", - "enum": [ - "europe\/madrid" - ], - "title": "europe\/madrid" - }, - { - "type": "string", - "enum": [ - "europe\/malta" - ], - "title": "europe\/malta" - }, - { - "type": "string", - "enum": [ - "europe\/mariehamn" - ], - "title": "europe\/mariehamn" - }, - { - "type": "string", - "enum": [ - "europe\/minsk" - ], - "title": "europe\/minsk" - }, - { - "type": "string", - "enum": [ - "europe\/monaco" - ], - "title": "europe\/monaco" - }, - { - "type": "string", - "enum": [ - "europe\/moscow" - ], - "title": "europe\/moscow" - }, - { - "type": "string", - "enum": [ - "europe\/oslo" - ], - "title": "europe\/oslo" - }, - { - "type": "string", - "enum": [ - "europe\/paris" - ], - "title": "europe\/paris" - }, - { - "type": "string", - "enum": [ - "europe\/podgorica" - ], - "title": "europe\/podgorica" - }, - { - "type": "string", - "enum": [ - "europe\/prague" - ], - "title": "europe\/prague" - }, - { - "type": "string", - "enum": [ - "europe\/riga" - ], - "title": "europe\/riga" - }, - { - "type": "string", - "enum": [ - "europe\/rome" - ], - "title": "europe\/rome" - }, - { - "type": "string", - "enum": [ - "europe\/samara" - ], - "title": "europe\/samara" - }, - { - "type": "string", - "enum": [ - "europe\/san_marino" - ], - "title": "europe\/san_marino" - }, - { - "type": "string", - "enum": [ - "europe\/sarajevo" - ], - "title": "europe\/sarajevo" - }, - { - "type": "string", - "enum": [ - "europe\/saratov" - ], - "title": "europe\/saratov" - }, - { - "type": "string", - "enum": [ - "europe\/simferopol" - ], - "title": "europe\/simferopol" - }, - { - "type": "string", - "enum": [ - "europe\/skopje" - ], - "title": "europe\/skopje" - }, - { - "type": "string", - "enum": [ - "europe\/sofia" - ], - "title": "europe\/sofia" - }, - { - "type": "string", - "enum": [ - "europe\/stockholm" - ], - "title": "europe\/stockholm" - }, - { - "type": "string", - "enum": [ - "europe\/tallinn" - ], - "title": "europe\/tallinn" - }, - { - "type": "string", - "enum": [ - "europe\/tirane" - ], - "title": "europe\/tirane" - }, - { - "type": "string", - "enum": [ - "europe\/ulyanovsk" - ], - "title": "europe\/ulyanovsk" - }, - { - "type": "string", - "enum": [ - "europe\/vaduz" - ], - "title": "europe\/vaduz" - }, - { - "type": "string", - "enum": [ - "europe\/vatican" - ], - "title": "europe\/vatican" - }, - { - "type": "string", - "enum": [ - "europe\/vienna" - ], - "title": "europe\/vienna" - }, - { - "type": "string", - "enum": [ - "europe\/vilnius" - ], - "title": "europe\/vilnius" - }, - { - "type": "string", - "enum": [ - "europe\/volgograd" - ], - "title": "europe\/volgograd" - }, - { - "type": "string", - "enum": [ - "europe\/warsaw" - ], - "title": "europe\/warsaw" - }, - { - "type": "string", - "enum": [ - "europe\/zagreb" - ], - "title": "europe\/zagreb" - }, - { - "type": "string", - "enum": [ - "europe\/zurich" - ], - "title": "europe\/zurich" - }, - { - "type": "string", - "enum": [ - "indian\/antananarivo" - ], - "title": "indian\/antananarivo" - }, - { - "type": "string", - "enum": [ - "indian\/chagos" - ], - "title": "indian\/chagos" - }, - { - "type": "string", - "enum": [ - "indian\/christmas" - ], - "title": "indian\/christmas" - }, - { - "type": "string", - "enum": [ - "indian\/cocos" - ], - "title": "indian\/cocos" - }, - { - "type": "string", - "enum": [ - "indian\/comoro" - ], - "title": "indian\/comoro" - }, - { - "type": "string", - "enum": [ - "indian\/kerguelen" - ], - "title": "indian\/kerguelen" - }, - { - "type": "string", - "enum": [ - "indian\/mahe" - ], - "title": "indian\/mahe" - }, - { - "type": "string", - "enum": [ - "indian\/maldives" - ], - "title": "indian\/maldives" - }, - { - "type": "string", - "enum": [ - "indian\/mauritius" - ], - "title": "indian\/mauritius" - }, - { - "type": "string", - "enum": [ - "indian\/mayotte" - ], - "title": "indian\/mayotte" - }, - { - "type": "string", - "enum": [ - "indian\/reunion" - ], - "title": "indian\/reunion" - }, - { - "type": "string", - "enum": [ - "pacific\/apia" - ], - "title": "pacific\/apia" - }, - { - "type": "string", - "enum": [ - "pacific\/auckland" - ], - "title": "pacific\/auckland" - }, - { - "type": "string", - "enum": [ - "pacific\/bougainville" - ], - "title": "pacific\/bougainville" - }, - { - "type": "string", - "enum": [ - "pacific\/chatham" - ], - "title": "pacific\/chatham" - }, - { - "type": "string", - "enum": [ - "pacific\/chuuk" - ], - "title": "pacific\/chuuk" - }, - { - "type": "string", - "enum": [ - "pacific\/easter" - ], - "title": "pacific\/easter" - }, - { - "type": "string", - "enum": [ - "pacific\/efate" - ], - "title": "pacific\/efate" - }, - { - "type": "string", - "enum": [ - "pacific\/fakaofo" - ], - "title": "pacific\/fakaofo" - }, - { - "type": "string", - "enum": [ - "pacific\/fiji" - ], - "title": "pacific\/fiji" - }, - { - "type": "string", - "enum": [ - "pacific\/funafuti" - ], - "title": "pacific\/funafuti" - }, - { - "type": "string", - "enum": [ - "pacific\/galapagos" - ], - "title": "pacific\/galapagos" - }, - { - "type": "string", - "enum": [ - "pacific\/gambier" - ], - "title": "pacific\/gambier" - }, - { - "type": "string", - "enum": [ - "pacific\/guadalcanal" - ], - "title": "pacific\/guadalcanal" - }, - { - "type": "string", - "enum": [ - "pacific\/guam" - ], - "title": "pacific\/guam" - }, - { - "type": "string", - "enum": [ - "pacific\/honolulu" - ], - "title": "pacific\/honolulu" - }, - { - "type": "string", - "enum": [ - "pacific\/kanton" - ], - "title": "pacific\/kanton" - }, - { - "type": "string", - "enum": [ - "pacific\/kiritimati" - ], - "title": "pacific\/kiritimati" - }, - { - "type": "string", - "enum": [ - "pacific\/kosrae" - ], - "title": "pacific\/kosrae" - }, - { - "type": "string", - "enum": [ - "pacific\/kwajalein" - ], - "title": "pacific\/kwajalein" - }, - { - "type": "string", - "enum": [ - "pacific\/majuro" - ], - "title": "pacific\/majuro" - }, - { - "type": "string", - "enum": [ - "pacific\/marquesas" - ], - "title": "pacific\/marquesas" - }, - { - "type": "string", - "enum": [ - "pacific\/midway" - ], - "title": "pacific\/midway" - }, - { - "type": "string", - "enum": [ - "pacific\/nauru" - ], - "title": "pacific\/nauru" - }, - { - "type": "string", - "enum": [ - "pacific\/niue" - ], - "title": "pacific\/niue" - }, - { - "type": "string", - "enum": [ - "pacific\/norfolk" - ], - "title": "pacific\/norfolk" - }, - { - "type": "string", - "enum": [ - "pacific\/noumea" - ], - "title": "pacific\/noumea" - }, - { - "type": "string", - "enum": [ - "pacific\/pago_pago" - ], - "title": "pacific\/pago_pago" - }, - { - "type": "string", - "enum": [ - "pacific\/palau" - ], - "title": "pacific\/palau" - }, - { - "type": "string", - "enum": [ - "pacific\/pitcairn" - ], - "title": "pacific\/pitcairn" - }, - { - "type": "string", - "enum": [ - "pacific\/pohnpei" - ], - "title": "pacific\/pohnpei" - }, - { - "type": "string", - "enum": [ - "pacific\/port_moresby" - ], - "title": "pacific\/port_moresby" - }, - { - "type": "string", - "enum": [ - "pacific\/rarotonga" - ], - "title": "pacific\/rarotonga" - }, - { - "type": "string", - "enum": [ - "pacific\/saipan" - ], - "title": "pacific\/saipan" - }, - { - "type": "string", - "enum": [ - "pacific\/tahiti" - ], - "title": "pacific\/tahiti" - }, - { - "type": "string", - "enum": [ - "pacific\/tarawa" - ], - "title": "pacific\/tarawa" - }, - { - "type": "string", - "enum": [ - "pacific\/tongatapu" - ], - "title": "pacific\/tongatapu" - }, - { - "type": "string", - "enum": [ - "pacific\/wake" - ], - "title": "pacific\/wake" - }, - { - "type": "string", - "enum": [ - "pacific\/wallis" - ], - "title": "pacific\/wallis" - }, - { - "type": "string", - "enum": [ - "utc" - ], - "title": "utc" - } - ] - }, - "in": "query" - }, - { - "name": "latitude", - "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 37.7749, - "default": 0 - }, - "in": "query" - }, - { - "name": "longitude", - "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": -122.4194, - "default": 0 - }, - "in": "query" - }, - { - "name": "accuracy", - "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "example": 100, - "default": 0 - }, - "in": "query" - }, - { - "name": "touch", - "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", - "required": false, - "schema": { - "type": "boolean", - "example": true, - "default": false - }, - "in": "query" - }, - { - "name": "permissions", - "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", - "required": false, - "schema": { - "type": "array", - "items": { - "title": "BrowserPermission", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "geolocation" - ], - "title": "geolocation" - }, - { - "type": "string", - "enum": [ - "camera" - ], - "title": "camera" - }, - { - "type": "string", - "enum": [ - "microphone" - ], - "title": "microphone" - }, - { - "type": "string", - "enum": [ - "notifications" - ], - "title": "notifications" - }, - { - "type": "string", - "enum": [ - "midi" - ], - "title": "midi" - }, - { - "type": "string", - "enum": [ - "push" - ], - "title": "push" - }, - { - "type": "string", - "enum": [ - "clipboard-read" - ], - "title": "clipboard-read" - }, - { - "type": "string", - "enum": [ - "clipboard-write" - ], - "title": "clipboard-write" - }, - { - "type": "string", - "enum": [ - "payment-handler" - ], - "title": "payment-handler" - }, - { - "type": "string", - "enum": [ - "usb" - ], - "title": "usb" - }, - { - "type": "string", - "enum": [ - "bluetooth" - ], - "title": "bluetooth" - }, - { - "type": "string", - "enum": [ - "accelerometer" - ], - "title": "accelerometer" - }, - { - "type": "string", - "enum": [ - "gyroscope" - ], - "title": "gyroscope" - }, - { - "type": "string", - "enum": [ - "magnetometer" - ], - "title": "magnetometer" - }, - { - "type": "string", - "enum": [ - "ambient-light-sensor" - ], - "title": "ambient-light-sensor" - }, - { - "type": "string", - "enum": [ - "background-sync" - ], - "title": "background-sync" - }, - { - "type": "string", - "enum": [ - "persistent-storage" - ], - "title": "persistent-storage" - }, - { - "type": "string", - "enum": [ - "screen-wake-lock" - ], - "title": "screen-wake-lock" - }, - { - "type": "string", - "enum": [ - "web-share" - ], - "title": "web-share" - }, - { - "type": "string", - "enum": [ - "xr-spatial-tracking" - ], - "title": "xr-spatial-tracking" - } - ] - }, - "example": [ - "geolocation", - "notifications" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "sleep", - "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 3, - "default": 0 - }, - "in": "query" - }, - { - "name": "width", - "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 800, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 600, - "default": 0 - }, - "in": "query" - }, - { - "name": "quality", - "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 85, - "default": -1 - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpeg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/backups\/archives": { - "get": { - "summary": "List archives", - "operationId": "backupsListArchives", - "tags": [ - "backups" - ], - "description": "List all archives for a project.", - "responses": { - "200": { - "description": "Backup archive list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchiveList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-archives.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create archive", - "operationId": "backupsCreateArchive", - "tags": [ - "backups" - ], - "description": "Create a new archive asynchronously for a project.", - "responses": { - "201": { - "description": "Archive", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchive" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "services": { - "description": "Array of services to backup", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "resourceId": { - "description": "Resource ID. When set, only this single resource will be backed up.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - } - }, - "required": [ - "services" - ] - } - } - } - } - } - }, - "\/backups\/archives\/{archiveId}": { - "get": { - "summary": "Get backup archive", - "operationId": "backupsGetArchive", - "tags": [ - "backups" - ], - "description": "Get a backup archive using it's ID.", - "responses": { - "200": { - "description": "Archive", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupArchive" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "archiveId", - "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete archive", - "operationId": "backupsDeleteArchive", - "tags": [ - "backups" - ], - "description": "Delete an existing archive for a project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/delete-archive.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "archives.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "archiveId", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "backupsListPolicies", - "tags": [ - "backups" - ], - "description": "List all policies for a project.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "backups.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "backupsCreatePolicy", - "tags": [ - "backups" - ], - "description": "Create a new backup policy.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "services": { - "description": "Array of services to backup", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "resourceId": { - "description": "Resource ID. When set, only this single resource will be backed up.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When set to 'disabled', no backups will be taken", - "type": "boolean", - "default": true, - "example": false - }, - "retention": { - "description": "Days to keep backups before deletion", - "type": "integer", - "example": 1, - "format": "int32" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - } - }, - "required": [ - "policyId", - "services", - "retention", - "schedule" - ] - } - } - } - } - } - }, - "\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "backupsGetPolicy", - "tags": [ - "backups" - ], - "description": "Get a backup policy using it's ID.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "backups.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "backupsUpdatePolicy", - "tags": [ - "backups" - ], - "description": "Update an existing policy using it's ID.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/update-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "retention": { - "description": "Days to keep backups before deletion", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "schedule": { - "description": "Cron expression", - "type": "string" - }, - "enabled": { - "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "backupsDeletePolicy", - "tags": [ - "backups" - ], - "description": "Delete a policy using it's ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/delete-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "backups.policies.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/backups\/restoration": { - "post": { - "summary": "Create restoration", - "operationId": "backupsCreateRestoration", - "tags": [ - "backups" - ], - "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", - "responses": { - "201": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "archiveId": { - "description": "Backup archive ID to restore", - "type": "string", - "example": "<ARCHIVE_ID>" - }, - "services": { - "description": "Array of services to restore", - "type": "array", - "items": { - "title": "BackupServices", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases" - ], - "title": "dedicatedDatabases" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - } - ] - } - }, - "newResourceId": { - "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "default": "", - "example": "<NEW_RESOURCE_ID>" - }, - "newResourceName": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NEW_RESOURCE_NAME>" - } - }, - "required": [ - "archiveId", - "services" - ] - } - } - } - } - } - }, - "\/backups\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "backupsListRestorations", - "tags": [ - "backups" - ], - "description": "List all backup restorations for a project.", - "responses": { - "200": { - "description": "Backup restoration list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - } - }, - "\/backups\/restorations\/{restorationId}": { - "get": { - "summary": "Get backup restoration", - "operationId": "backupsGetRestoration", - "tags": [ - "backups" - ], - "description": "Get the current status of a backup restoration.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "backups\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "restorations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "restorationId", - "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases": { - "get": { - "summary": "List databases", - "operationId": "databasesList", - "tags": [ - "databases" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - }, - "methods": [ - { - "name": "list", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "queries", - "search", - "total" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/databaseList" - } - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "demo": "databases\/list.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - } - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "databasesCreate", - "tags": [ - "databases" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - }, - "methods": [ - { - "name": "create", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/database" - } - ], - "description": "Create a new Database.\n", - "demo": "databases\/create.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - } - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/databases\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "databasesListTransactions", - "tags": [ - "databases" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTransactions" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "databasesCreateTransaction", - "tags": [ - "databases" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTransaction" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/databases\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "databasesGetTransaction", - "tags": [ - "databases" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTransaction" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "databasesUpdateTransaction", - "tags": [ - "databases" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTransaction" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "databasesDeleteTransaction", - "tags": [ - "databases" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTransaction" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "databasesCreateOperations", - "tags": [ - "databases" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "transactions", - "demo": "databases\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createOperations" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "databasesGet", - "tags": [ - "databases" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - }, - "methods": [ - { - "name": "get", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/database" - } - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "demo": "databases\/get.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - } - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "databasesUpdate", - "tags": [ - "databases" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - }, - "methods": [ - { - "name": "update", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/database" - } - ], - "description": "Update a database by its unique ID.", - "demo": "databases\/update.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - } - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "databasesDelete", - "tags": [ - "databases" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "databases", - "demo": "databases\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - }, - "methods": [ - { - "name": "delete", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "demo": "databases\/delete.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - } - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "databasesListCollections", - "tags": [ - "databases" - ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Collections List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collectionList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTables" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create collections", - "operationId": "databasesCreateCollection", - "tags": [ - "databases" - ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTable" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "attributes": { - "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "collectionId", - "name" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "databasesGetCollection", - "tags": [ - "databases" - ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTable" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update collection", - "operationId": "databasesUpdateCollection", - "tags": [ - "databases" - ], - "description": "Update a collection by its unique ID.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTable" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete collection", - "operationId": "databasesDeleteCollection", - "tags": [ - "databases" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "collections", - "demo": "databases\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTable" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { - "get": { - "summary": "List attributes", - "operationId": "databasesListAttributes", - "tags": [ - "databases" - ], - "description": "List attributes in the collection.", - "responses": { - "200": { - "description": "Attributes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/list-attributes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listColumns" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { - "post": { - "summary": "Create bigint attribute", - "operationId": "databasesCreateBigIntAttribute", - "tags": [ - "databases" - ], - "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-big-int-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBigIntColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { - "patch": { - "summary": "Update bigint attribute", - "operationId": "databasesUpdateBigIntAttribute", - "tags": [ - "databases" - ], - "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-big-int-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBigIntColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { - "post": { - "summary": "Create boolean attribute", - "operationId": "databasesCreateBooleanAttribute", - "tags": [ - "databases" - ], - "description": "Create a boolean attribute.\n", - "responses": { - "202": { - "description": "AttributeBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-boolean-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBooleanColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { - "patch": { - "summary": "Update boolean attribute", - "operationId": "databasesUpdateBooleanAttribute", - "tags": [ - "databases" - ], - "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-boolean-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBooleanColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { - "post": { - "summary": "Create datetime attribute", - "operationId": "databasesCreateDatetimeAttribute", - "tags": [ - "databases" - ], - "description": "Create a date time attribute according to the ISO 8601 standard.", - "responses": { - "202": { - "description": "AttributeDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-datetime-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createDatetimeColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { - "patch": { - "summary": "Update datetime attribute", - "operationId": "databasesUpdateDatetimeAttribute", - "tags": [ - "databases" - ], - "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-datetime-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateDatetimeColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { - "post": { - "summary": "Create email attribute", - "operationId": "databasesCreateEmailAttribute", - "tags": [ - "databases" - ], - "description": "Create an email attribute.\n", - "responses": { - "202": { - "description": "AttributeEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-email-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEmailColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { - "patch": { - "summary": "Update email attribute", - "operationId": "databasesUpdateEmailAttribute", - "tags": [ - "databases" - ], - "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-email-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEmailColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { - "post": { - "summary": "Create enum attribute", - "operationId": "databasesCreateEnumAttribute", - "tags": [ - "databases" - ], - "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", - "responses": { - "202": { - "description": "AttributeEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-enum-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEnumColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "elements": { - "description": "Array of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "elements", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { - "patch": { - "summary": "Update enum attribute", - "operationId": "databasesUpdateEnumAttribute", - "tags": [ - "databases" - ], - "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-enum-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEnumColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "elements": { - "description": "Updated list of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { - "post": { - "summary": "Create float attribute", - "operationId": "databasesCreateFloatAttribute", - "tags": [ - "databases" - ], - "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-float-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createFloatColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { - "patch": { - "summary": "Update float attribute", - "operationId": "databasesUpdateFloatAttribute", - "tags": [ - "databases" - ], - "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-float-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateFloatColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { - "post": { - "summary": "Create integer attribute", - "operationId": "databasesCreateIntegerAttribute", - "tags": [ - "databases" - ], - "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "AttributeInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-integer-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIntegerColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { - "patch": { - "summary": "Update integer attribute", - "operationId": "databasesUpdateIntegerAttribute", - "tags": [ - "databases" - ], - "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-integer-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIntegerColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { - "post": { - "summary": "Create IP address attribute", - "operationId": "databasesCreateIpAttribute", - "tags": [ - "databases" - ], - "description": "Create IP address attribute.\n", - "responses": { - "202": { - "description": "AttributeIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeIp" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-ip-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIpColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { - "patch": { - "summary": "Update IP address attribute", - "operationId": "databasesUpdateIpAttribute", - "tags": [ - "databases" - ], - "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeIp" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-ip-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIpColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when attribute is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { - "post": { - "summary": "Create line attribute", - "operationId": "databasesCreateLineAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric line attribute.", - "responses": { - "202": { - "description": "AttributeLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLine" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-line-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createLineColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { - "patch": { - "summary": "Update line attribute", - "operationId": "databasesUpdateLineAttribute", - "tags": [ - "databases" - ], - "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributeLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLine" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-line-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateLineColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { - "post": { - "summary": "Create longtext attribute", - "operationId": "databasesCreateLongtextAttribute", - "tags": [ - "databases" - ], - "description": "Create a longtext attribute.\n", - "responses": { - "202": { - "description": "AttributeLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-longtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createLongtextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { - "patch": { - "summary": "Update longtext attribute", - "operationId": "databasesUpdateLongtextAttribute", - "tags": [ - "databases" - ], - "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-longtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateLongtextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { - "post": { - "summary": "Create mediumtext attribute", - "operationId": "databasesCreateMediumtextAttribute", - "tags": [ - "databases" - ], - "description": "Create a mediumtext attribute.\n", - "responses": { - "202": { - "description": "AttributeMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-mediumtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createMediumtextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext attribute", - "operationId": "databasesUpdateMediumtextAttribute", - "tags": [ - "databases" - ], - "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-mediumtext-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateMediumtextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { - "post": { - "summary": "Create point attribute", - "operationId": "databasesCreatePointAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric point attribute.", - "responses": { - "202": { - "description": "AttributePoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePoint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-point-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPointColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { - "patch": { - "summary": "Update point attribute", - "operationId": "databasesUpdatePointAttribute", - "tags": [ - "databases" - ], - "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributePoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePoint" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-point-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updatePointColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { - "post": { - "summary": "Create polygon attribute", - "operationId": "databasesCreatePolygonAttribute", - "tags": [ - "databases" - ], - "description": "Create a geometric polygon attribute.", - "responses": { - "202": { - "description": "AttributePolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-polygon-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPolygonColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { - "patch": { - "summary": "Update polygon attribute", - "operationId": "databasesUpdatePolygonAttribute", - "tags": [ - "databases" - ], - "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", - "responses": { - "200": { - "description": "AttributePolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-polygon-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updatePolygonColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - }, - "newKey": { - "description": "New attribute key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { - "post": { - "summary": "Create relationship attribute", - "operationId": "databasesCreateRelationshipAttribute", - "tags": [ - "databases" - ], - "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", - "responses": { - "202": { - "description": "AttributeRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-relationship-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRelationshipColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "relatedCollectionId": { - "description": "Related Collection ID.", - "type": "string", - "example": "<RELATED_COLLECTION_ID>" - }, - "type": { - "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", - "type": "string", - "example": "oneToOne", - "title": "RelationshipType", - "oneOf": [ - { - "type": "string", - "enum": [ - "oneToOne" - ], - "title": "oneToOne" - }, - { - "type": "string", - "enum": [ - "manyToOne" - ], - "title": "manyToOne" - }, - { - "type": "string", - "enum": [ - "manyToMany" - ], - "title": "manyToMany" - }, - { - "type": "string", - "enum": [ - "oneToMany" - ], - "title": "oneToMany" - } - ] - }, - "twoWay": { - "description": "Is Two Way?", - "type": "boolean", - "default": false, - "example": false - }, - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "twoWayKey": { - "description": "Two Way Attribute Key.", - "type": "string", - "example": "<TWO_WAY_KEY>", - "nullable": true - }, - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "default": "restrict", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - } - }, - "required": [ - "relatedCollectionId", - "type" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", - "tags": [ - "databases" - ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", - "responses": { - "200": { - "description": "AttributeRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-relationship-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { - "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", - "tags": [ - "databases" - ], - "description": "Create a string attribute.\n", - "responses": { - "202": { - "description": "AttributeString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-string-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Attribute size for text attributes, in number of characters.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { - "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", - "tags": [ - "databases" - ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-string-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the string attribute.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { - "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", - "tags": [ - "databases" - ], - "description": "Create a text attribute.\n", - "responses": { - "202": { - "description": "AttributeText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeText" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-text-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { - "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", - "tags": [ - "databases" - ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeText" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-text-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { - "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", - "tags": [ - "databases" - ], - "description": "Create a URL attribute.\n", - "responses": { - "202": { - "description": "AttributeURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-url-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { - "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", - "tags": [ - "databases" - ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-url-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { - "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", - "tags": [ - "databases" - ], - "description": "Create a varchar attribute.\n", - "responses": { - "202": { - "description": "AttributeVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/create-varchar-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createVarcharColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Attribute Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is attribute an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { - "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", - "tags": [ - "databases" - ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", - "responses": { - "200": { - "description": "AttributeVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/update-varchar-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateVarcharColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is attribute required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the varchar attribute.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Attribute Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", - "tags": [ - "databases" - ], - "description": "Get attribute by ID.", - "responses": { - "200": { - "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", - "content": { - "application\/json": { - "schema": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/get-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete attribute", - "operationId": "databasesDeleteAttribute", - "tags": [ - "databases" - ], - "description": "Deletes an attribute.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "attributes", - "demo": "databases\/delete-attribute.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "databasesListDocuments", - "tags": [ - "databases" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listRows" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "databasesCreateDocument", - "tags": [ - "databases" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - }, - "methods": [ - { - "name": "createDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create document", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-document.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - } - }, - { - "name": "createDocuments", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "Create documents", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-documents.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRows" - } - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert documents", - "operationId": "databasesUpsertDocuments", - "tags": [ - "databases" - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", - "responses": { - "201": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRows" - }, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "databases", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "documents" - ] - } - } - } - } - }, - "patch": { - "summary": "Update documents", - "operationId": "databasesUpdateDocuments", - "tags": [ - "databases" - ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRows" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected documents", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete documents", - "operationId": "databasesDeleteDocuments", - "tags": [ - "databases" - ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteRows" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "databasesGetDocument", - "tags": [ - "databases" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getRow" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "databasesUpsertDocument", - "tags": [ - "databases" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" - }, - "methods": [ - { - "name": "upsertDocument", - "namespace": "databases", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#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": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "databasesUpdateDocument", - "tags": [ - "databases" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRow" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "databasesDeleteDocument", - "tags": [ - "databases" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteRow" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "databasesDecrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Decrement a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.decrementRowColumn" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "databasesIncrementDocumentAttribute", - "tags": [ - "databases" - ], - "description": "Increment a specific attribute of a document by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "documents", - "demo": "databases\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.incrementRowColumn" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "databasesListIndexes", - "tags": [ - "databases" - ], - "description": "List indexes in the collection.", - "responses": { - "200": { - "description": "Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/indexList" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listIndexes" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create index", - "operationId": "databasesCreateIndex", - "tags": [ - "databases" - ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIndex" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "DatabasesIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - }, - { - "type": "string", - "enum": [ - "spatial" - ], - "title": "spatial" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "databasesGetIndex", - "tags": [ - "databases" - ], - "description": "Get an index by its unique ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getIndex" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "databasesDeleteIndex", - "tags": [ - "databases" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "indexes", - "demo": "databases\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteIndex" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb": { - "get": { - "summary": "List databases", - "operationId": "documentsDBList", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "documentsDBCreate", - "tags": [ - "documentsDB" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/documentsdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "documentsDBListSpecifications", - "tags": [ - "documentsDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/documentsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "documentsDBListTransactions", - "tags": [ - "documentsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "documentsDBCreateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/documentsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "documentsDBGetTransaction", - "tags": [ - "documentsDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "documentsDBUpdateTransaction", - "tags": [ - "documentsDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "documentsDBDeleteTransaction", - "tags": [ - "documentsDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "documentsDBCreateOperations", - "tags": [ - "documentsDB" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "documentsdb\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.write", - "platforms": [ - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "documentsDBGet", - "tags": [ - "documentsDB" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "documentsDBUpdate", - "tags": [ - "documentsDB" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "documentsDBDelete", - "tags": [ - "documentsDB" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "documentsDBListCollections", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Collections List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collectionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create collection", - "operationId": "documentsDBCreateCollection", - "tags": [ - "documentsDB" - ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "attributes": { - "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "collectionId", - "name" - ] - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "documentsDBGetCollection", - "tags": [ - "documentsDB" - ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update collection", - "operationId": "documentsDBUpdateCollection", - "tags": [ - "documentsDB" - ], - "description": "Update a collection by its unique ID.", - "responses": { - "200": { - "description": "Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/collection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete collection", - "operationId": "documentsDBDeleteCollection", - "tags": [ - "documentsDB" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "collections", - "demo": "documentsdb\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "documentsDBListDocuments", - "tags": [ - "documentsDB" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "documentsDBCreateDocument", - "tags": [ - "documentsDB" - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create document", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create documents", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/create-documents.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert documents", - "operationId": "documentsDBUpsertDocuments", - "tags": [ - "documentsDB" - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", - "responses": { - "201": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "documentsDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", - "demo": "documentsdb\/upsert-documents.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documents" - ] - } - } - } - } - }, - "patch": { - "summary": "Update documents", - "operationId": "documentsDBUpdateDocuments", - "tags": [ - "documentsDB" - ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected documents", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete documents", - "operationId": "documentsDBDeleteDocuments", - "tags": [ - "documentsDB" - ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "documentsDBGetDocument", - "tags": [ - "documentsDB" - ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "documentsDBUpsertDocument", - "tags": [ - "documentsDB" - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "documentsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "documentsdb\/upsert-document.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update document", - "operationId": "documentsDBUpdateDocument", - "tags": [ - "documentsDB" - ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete document", - "operationId": "documentsDBDeleteDocument", - "tags": [ - "documentsDB" - ], - "description": "Delete a document by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "documentsDBDecrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Decrement a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to decrement the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { - "patch": { - "summary": "Increment document attribute", - "operationId": "documentsDBIncrementDocumentAttribute", - "tags": [ - "documentsDB" - ], - "description": "Increment a specific column of a row by a given value.", - "responses": { - "200": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "documentsdb\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documentsdb.documents.write", - "platforms": [ - "client", - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", - "required": true, - "schema": { - "type": "string", - "example": "<ATTRIBUTE>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the attribute by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float" - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "documentsDBListIndexes", - "tags": [ - "documentsDB" - ], - "description": "List indexes in the collection.", - "responses": { - "200": { - "description": "Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/indexList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create index", - "operationId": "documentsDBCreateIndex", - "tags": [ - "documentsDB" - ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "DocumentsDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "documentsDBGetIndex", - "tags": [ - "documentsDB" - ], - "description": "Get index by ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/index" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "documentsDBDeleteIndex", - "tags": [ - "documentsDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "documentsdb\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documentsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "documentsDBCreateFailover", - "tags": [ - "documentsDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "documentsdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/documentsdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "documentsDBListOperations", - "tags": [ - "documentsDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "documentsdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "documentsDBGetReplicas", - "tags": [ - "documentsDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "documentsdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "documentsDBGetStatus", - "tags": [ - "documentsDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documentsdb", - "demo": "documentsdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains": { - "get": { - "summary": "List domains", - "operationId": "domainsList", - "tags": [ - "domains" - ], - "description": "List all domains registered for this project. This endpoint supports pagination.", - "responses": { - "200": { - "description": "Domains list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create a new domain.", - "operationId": "domainsCreate", - "tags": [ - "domains" - ], - "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", - "responses": { - "201": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "Team unique ID.", - "type": "string", - "example": "<TEAM_ID>" - }, - "domain": { - "description": "Domain name (e.g. \"example.com\").", - "type": "string", - "example": "example.com" - } - }, - "required": [ - "teamId", - "domain" - ] - } - } - } - } - } - }, - "\/domains\/price": { - "get": { - "summary": "Get domain price", - "operationId": "domainsGetPrice", - "tags": [ - "domains" - ], - "description": "Get the registration price for a domain name.", - "responses": { - "200": { - "description": "DomainPrice", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPrice" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": null, - "demo": "domains\/get-price.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "deprecated": { - "since": "2.0.0", - "replaceWith": "domains.listPrices" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domain", - "description": "Domain name to get price for.", - "required": true, - "schema": { - "type": "string", - "example": "example.com" - }, - "in": "query" - }, - { - "name": "periodYears", - "description": "Number of years to calculate the domain price for. Must be at least 1.", - "required": false, - "schema": { - "type": "integer", - "format": "uint32", - "default": 1 - }, - "in": "query" - }, - { - "name": "registrationType", - "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", - "required": false, - "schema": { - "type": "string", - "example": "new", - "title": "DomainRegistrationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "new" - ], - "title": "new" - }, - { - "type": "string", - "enum": [ - "transfer" - ], - "title": "transfer" - }, - { - "type": "string", - "enum": [ - "renewal" - ], - "title": "renewal" - }, - { - "type": "string", - "enum": [ - "trade" - ], - "title": "trade" - } - ], - "default": "new" - }, - "in": "query" - } - ] - } - }, - "\/domains\/prices": { - "get": { - "summary": "List domain prices", - "operationId": "domainsListPrices", - "tags": [ - "domains" - ], - "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", - "responses": { - "200": { - "description": "Domain prices list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPricesList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list-prices.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domains", - "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "in": "query" - }, - { - "name": "periodYears", - "description": "Number of years to calculate the domain price for. Must be at least 1.", - "required": false, - "schema": { - "type": "integer", - "format": "uint32", - "default": 1 - }, - "in": "query" - }, - { - "name": "registrationType", - "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", - "required": false, - "schema": { - "type": "string", - "example": "new", - "title": "DomainRegistrationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "new" - ], - "title": "new" - }, - { - "type": "string", - "enum": [ - "transfer" - ], - "title": "transfer" - }, - { - "type": "string", - "enum": [ - "renewal" - ], - "title": "renewal" - }, - { - "type": "string", - "enum": [ - "trade" - ], - "title": "trade" - } - ], - "default": "new" - }, - "in": "query" - } - ] - } - }, - "\/domains\/{domainId}": { - "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", - "tags": [ - "domains" - ], - "description": "Get a domain by its unique ID.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", - "tags": [ - "domains" - ], - "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Update the registrar nameservers for the given domain.", - "operationId": "domainsUpdateNameservers", - "tags": [ - "domains" - ], - "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-nameservers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "nameservers": { - "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - } - } - } - } - } - } - } - }, - "\/domains\/{domainId}\/nameservers\/verification": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsVerifyNameservers", - "tags": [ - "domains" - ], - "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/verify-nameservers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/google-workspace": { - "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", - "tags": [ - "domains" - ], - "description": "List Google Workspace DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-google-workspace.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", - "tags": [ - "domains" - ], - "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-google-workspace.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/icloud": { - "get": { - "summary": "Get iCloud preset (Records)", - "operationId": "domainsGetPresetICloud", - "tags": [ - "domains" - ], - "description": "List iCloud DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-i-cloud.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", - "tags": [ - "domains" - ], - "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-i-cloud.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/mailgun": { - "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", - "tags": [ - "domains" - ], - "description": "List Mailgun DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-mailgun.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", - "tags": [ - "domains" - ], - "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-mailgun.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", - "tags": [ - "domains" - ], - "description": "List Outlook DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-outlook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", - "tags": [ - "domains" - ], - "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-outlook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/proton-mail": { - "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", - "tags": [ - "domains" - ], - "description": "List ProtonMail DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", - "tags": [ - "domains" - ], - "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/zoho": { - "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", - "tags": [ - "domains" - ], - "description": "List Zoho DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", - "tags": [ - "domains" - ], - "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/records": { - "get": { - "summary": "List DNS records for a given domain.", - "operationId": "domainsListRecords", - "tags": [ - "domains" - ], - "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", - "responses": { - "200": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/list-records.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", - "tags": [ - "domains" - ], - "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv4 address for this A record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/a\/{recordId}": { - "put": { - "summary": "Update an existing A record for the given domain.", - "operationId": "domainsUpdateRecordA", - "tags": [ - "domains" - ], - "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv4 address for this A record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/aaaa": { - "post": { - "summary": "Create a new AAAA record for the given domain.", - "operationId": "domainsCreateRecordAAAA", - "tags": [ - "domains" - ], - "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv6 address for this AAAA record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment explaining what this record is for.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { - "put": { - "summary": "Update an existing AAAA record for the given domain.", - "operationId": "domainsUpdateRecordAAAA", - "tags": [ - "domains" - ], - "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "IPv6 address for this AAAA record.", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", - "tags": [ - "domains" - ], - "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "Target domain for this ALIAS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/alias\/{recordId}": { - "put": { - "summary": "Update an existing ALIAS record for the given domain.", - "operationId": "domainsUpdateRecordAlias", - "tags": [ - "domains" - ], - "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "Target domain for this ALIAS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/caa": { - "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", - "tags": [ - "domains" - ], - "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-caa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "CAA value (e.g. issuer domain).", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", - "tags": [ - "domains" - ], - "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-caa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name.", - "type": "string" - }, - "value": { - "description": "CAA value (e.g. issuer domain).", - "type": "string" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/cname": { - "post": { - "summary": "Create a new CNAME record for the given domain.", - "operationId": "domainsCreateRecordCNAME", - "tags": [ - "domains" - ], - "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-cname.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Canonical target for this CNAME record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", - "tags": [ - "domains" - ], - "description": "Update an existing CNAME record for the given domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-cname.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Canonical target for this CNAME record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/https": { - "post": { - "summary": "Create a new HTTPS record for the given domain.", - "operationId": "domainsCreateRecordHTTPS", - "tags": [ - "domains" - ], - "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-https.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Target for the HTTPS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/https\/{recordId}": { - "put": { - "summary": "Update an existing HTTPS record for the given domain.", - "operationId": "domainsUpdateRecordHTTPS", - "tags": [ - "domains" - ], - "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-https.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Target for the HTTPS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/mx": { - "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", - "tags": [ - "domains" - ], - "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-mx.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Mail server domain for this MX record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "MX priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", - "tags": [ - "domains" - ], - "description": "Update an existing MX record for the given domain.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-mx.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Mail server domain for this MX record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "MX priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/ns": { - "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", - "tags": [ - "domains" - ], - "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-ns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Nameserver target for this NS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", - "tags": [ - "domains" - ], - "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-ns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain).", - "type": "string" - }, - "value": { - "description": "Nameserver target for this NS record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/srv": { - "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", - "tags": [ - "domains" - ], - "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-srv.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (service name).", - "type": "string" - }, - "value": { - "description": "Target hostname for this SRV record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "Record priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "weight": { - "description": "Record weight, used to share load between targets of equal priority.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "port": { - "description": "Port number for the service.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "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", - "tags": [ - "domains" - ], - "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-srv.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (service name).", - "type": "string" - }, - "value": { - "description": "Target hostname for this SRV record.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "priority": { - "description": "Record priority. Lower values are tried first.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "weight": { - "description": "Record weight, used to share load between targets of equal priority.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "port": { - "description": "Port number for the service.", - "type": "integer", - "example": 0, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "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", - "tags": [ - "domains" - ], - "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/create-record-txt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain) for the TXT record.", - "type": "string" - }, - "value": { - "description": "TXT record value.", - "type": "string", - "default": "", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", - "tags": [ - "domains" - ], - "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-record-txt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Record name (subdomain) for the TXT record.", - "type": "string" - }, - "value": { - "description": "TXT record value.", - "type": "string", - "example": "<VALUE>" - }, - "ttl": { - "description": "Time to live, in seconds. Must be between 1 and 2147483647.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "comment": { - "description": "A comment for this record.", - "type": "string", - "default": "", - "example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/{recordId}": { - "get": { - "summary": "Get a single DNS record for a given domain by record ID.", - "operationId": "domainsGetRecord", - "tags": [ - "domains" - ], - "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", - "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-record.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a DNS record for the given domain.", - "operationId": "domainsDeleteRecord", - "tags": [ - "domains" - ], - "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/delete-record.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RECORD_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/team": { - "patch": { - "summary": "Update domain team.", - "operationId": "domainsUpdateTeam", - "tags": [ - "domains" - ], - "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-team.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "description": "New team unique ID.", - "type": "string", - "example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/transfers\/status": { - "get": { - "summary": "Get domain transfer status.", - "operationId": "domainsGetTransferStatus", - "tags": [ - "domains" - ], - "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", - "responses": { - "200": { - "description": "domainTransferStatus", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainTransferStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-transfer-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/zone": { - "get": { - "summary": "Retrieve the DNS zone file for the given domain.", - "operationId": "domainsGetZone", - "tags": [ - "domains" - ], - "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", - "responses": { - "200": { - "description": "Text", - "content": { - "text\/plain": { - "schema": { - "type": "string" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/get-zone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", - "operationId": "domainsUpdateZone", - "tags": [ - "domains" - ], - "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", - "responses": { - "201": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "domains\/update-zone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOMAIN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "description": "DNS zone file content as a string.", - "type": "string", - "example": "<CONTENT>" - } - }, - "required": [ - "content" - ] - } - } - } - } - } - }, - "\/embeddings\/text": { - "post": { - "summary": "Create text embeddings", - "operationId": "embeddingsCreateTextEmbeddings", - "tags": [ - "embeddings" - ], - "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", - "responses": { - "200": { - "description": "Embedding list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/embeddingList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "embeddings", - "demo": "embeddings\/create-text-embeddings.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "embeddings.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createTextEmbeddings", - "namespace": "embeddings", - "platforms": [ - "console", - "server" - ], - "summary": "Create Text Embedding", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "texts", - "model" - ], - "required": [ - "texts" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/embeddingList" - } - ], - "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", - "demo": "embeddings\/create-text-embeddings.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "texts": { - "description": "Array of text to generate embeddings.", - "type": "array", - "example": [ - "Appwrite helps developers build applications.", - "Find documents with semantic search." - ], - "items": { - "type": "string" - } - }, - "model": { - "description": "The embedding model to use for generating vector embeddings.", - "type": "string", - "default": "nomic-embed-text", - "example": "nomic-embed-text", - "title": "EmbeddingModel", - "oneOf": [ - { - "type": "string", - "enum": [ - "nomic-embed-text" - ], - "title": "nomic-embed-text" - }, - { - "type": "string", - "enum": [ - "all-minilm" - ], - "title": "all-minilm" - } - ] - } - }, - "required": [ - "texts" - ] - } - } - } - } - } - }, - "\/functions": { - "get": { - "summary": "List functions", - "operationId": "functionsList", - "tags": [ - "functions" - ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Functions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/functionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create function", - "operationId": "functionsCreate", - "tags": [ - "functions" - ], - "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", - "responses": { - "201": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "functionId": { - "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<FUNCTION_ID>" - }, - "name": { - "description": "Function name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "runtime": { - "description": "Execution runtime.", - "type": "string", - "example": "node-14.5", - "title": "Runtime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "execute": { - "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "type": "array", - "default": [], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string", - "default": "", - "example": "0 0 * * *" - }, - "timeout": { - "description": "Function maximum execution time in seconds.", - "type": "integer", - "default": 15, - "example": 1, - "format": "int32" - }, - "enabled": { - "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "entrypoint": { - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "type": "string", - "default": "", - "example": "<ENTRYPOINT>" - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "default": "", - "example": "<COMMANDS>" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the function.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "description": "Production branch for the repo linked to the function.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to function code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "buildSpecification": { - "description": "Build specification for the function deployments.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "description": "Runtime specification for the function executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] - } - } - } - } - } - }, - "\/functions\/runtimes": { - "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", - "tags": [ - "functions" - ], - "description": "Get a list of all runtimes that are currently active on your instance.", - "responses": { - "200": { - "description": "Runtimes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/runtimeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "runtimes", - "demo": "functions\/list-runtimes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", - "tags": [ - "functions" - ], - "description": "List allowed function specifications for this instance.", - "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "runtimes", - "demo": "functions\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", - "required": false, - "schema": { - "type": "string", - "example": "runtimes", - "default": "runtimes" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/functions\/{functionId}": { - "get": { - "summary": "Get function", - "operationId": "functionsGet", - "tags": [ - "functions" - ], - "description": "Get a function by its unique ID.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update function", - "operationId": "functionsUpdate", - "tags": [ - "functions" - ], - "description": "Update function by its unique ID.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Function name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "runtime": { - "description": "Execution runtime.", - "type": "string", - "example": "node-14.5", - "title": "Runtime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "execute": { - "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "type": "array", - "default": [], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string", - "default": "", - "example": "0 0 * * *" - }, - "timeout": { - "description": "Maximum execution time in seconds.", - "type": "integer", - "default": 15, - "example": 1, - "format": "int32" - }, - "enabled": { - "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "entrypoint": { - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "type": "string", - "default": "", - "example": "<ENTRYPOINT>" - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "default": "", - "example": "<COMMANDS>" - }, - "scopes": { - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the function", - "type": "string", - "example": "<PROVIDER_REPOSITORY_ID>", - "nullable": true - }, - "providerBranch": { - "description": "Production branch for the repo linked to the function", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to function code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "buildSpecification": { - "description": "Build specification for the function deployments.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "runtimeSpecification": { - "description": "Runtime specification for the function executions.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", - "tags": [ - "functions" - ], - "description": "Delete a function by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", - "tags": [ - "functions" - ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", - "responses": { - "200": { - "description": "Function", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/function" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "functions", - "demo": "functions\/update-function-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", - "tags": [ - "functions" - ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Deployments List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deploymentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/list-deployments.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", - "tags": [ - "functions" - ], - "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": true, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "entrypoint": { - "description": "Entrypoint File.", - "type": "string", - "example": "<ENTRYPOINT>", - "nullable": true - }, - "commands": { - "description": "Build Commands.", - "type": "string", - "example": "<COMMANDS>", - "nullable": true - }, - "code": { - "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", - "type": "string", - "format": "binary" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "example": false - } - }, - "required": [ - "code", - "activate" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", - "tags": [ - "functions" - ], - "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-duplicate-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "buildId": { - "description": "Build unique ID.", - "type": "string", - "default": "", - "example": "<BUILD_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", - "tags": [ - "functions" - ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-template-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "description": "Repository name of the template.", - "type": "string", - "example": "<REPOSITORY>" - }, - "owner": { - "description": "The name of the owner of the template.", - "type": "string", - "example": "<OWNER>" - }, - "rootDirectory": { - "description": "Path to function code in the template repo.", - "type": "string", - "example": "<ROOT_DIRECTORY>" - }, - "type": { - "description": "Type for the reference provided. Can be commit, branch, or tag", - "type": "string", - "example": "commit", - "title": "TemplateReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "Reference value, can be a commit hash, branch name, or release tag", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", - "tags": [ - "functions" - ], - "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/create-vcs-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Type of reference passed. Allowed values are: branch, commit", - "type": "string", - "example": "branch", - "title": "VCSReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - } - ] - }, - "reference": { - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", - "tags": [ - "functions" - ], - "description": "Get a function deployment by its unique ID.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/get-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", - "tags": [ - "functions" - ], - "description": "Delete a code deployment by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/delete-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", - "tags": [ - "functions" - ], - "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/get-deployment-download.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "functions.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "example": "source", - "title": "DeploymentDownloadType", - "oneOf": [ - { - "type": "string", - "enum": [ - "source" - ], - "title": "source" - }, - { - "type": "string", - "enum": [ - "output" - ], - "title": "output" - } - ], - "default": "source" - }, - "in": "query" - }, - { - "name": "token", - "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", - "tags": [ - "functions" - ], - "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "functions\/update-deployment-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", - "tags": [ - "functions" - ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Executions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/executionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/list-executions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", - "tags": [ - "functions" - ], - "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", - "responses": { - "201": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "description": "HTTP body of execution. Default value is empty string.", - "type": "string", - "default": "", - "example": "<BODY>" - }, - "async": { - "description": "Execute code in the background. Default value is false.", - "type": "boolean", - "default": false, - "example": false - }, - "path": { - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "type": "string", - "default": "\/", - "example": "<PATH>" - }, - "method": { - "description": "HTTP method of execution. Default value is POST.", - "type": "string", - "default": "POST", - "example": "GET", - "title": "ExecutionMethod", - "oneOf": [ - { - "type": "string", - "enum": [ - "GET" - ], - "title": "GET" - }, - { - "type": "string", - "enum": [ - "POST" - ], - "title": "POST" - }, - { - "type": "string", - "enum": [ - "PUT" - ], - "title": "PUT" - }, - { - "type": "string", - "enum": [ - "PATCH" - ], - "title": "PATCH" - }, - { - "type": "string", - "enum": [ - "DELETE" - ], - "title": "DELETE" - }, - { - "type": "string", - "enum": [ - "OPTIONS" - ], - "title": "OPTIONS" - }, - { - "type": "string", - "enum": [ - "HEAD" - ], - "title": "HEAD" - } - ] - }, - "headers": { - "description": "HTTP headers of execution. Defaults to empty.", - "type": "object", - "default": {}, - "example": {} - }, - "scheduledAt": { - "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", - "type": "string", - "example": "<SCHEDULED_AT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", - "tags": [ - "functions" - ], - "description": "Get a function execution log by its unique ID.", - "responses": { - "200": { - "description": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/execution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/get-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EXECUTION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", - "tags": [ - "functions" - ], - "description": "Delete a function execution by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "functions\/delete-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "schema": { - "type": "string", - "example": "<EXECUTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", - "tags": [ - "functions" - ], - "description": "Get a list of all variables of a specific function.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/list-variables.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", - "tags": [ - "functions" - ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", - "responses": { - "201": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", - "tags": [ - "functions" - ], - "description": "Get a variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", - "tags": [ - "functions" - ], - "description": "Update variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/update-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", - "tags": [ - "functions" - ], - "description": "Delete a variable by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "functions\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FUNCTION_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "query { localeGet { ip } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "query": { - "description": "The query or queries to execute.", - "type": "object", - "default": {}, - "example": { - "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" - } - } - }, - "required": [ - "query" - ] - } - } - } - } - } - }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "tags": [ - "locale" - ], - "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", - "responses": { - "200": { - "description": "Locale", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/locale" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "tags": [ - "locale" - ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", - "responses": { - "200": { - "description": "Locale codes list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "tags": [ - "locale" - ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Continents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/continentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-continents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "tags": [ - "locale" - ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "tags": [ - "locale" - ], - "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Countries List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-eu.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", - "tags": [ - "locale" - ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Phones List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/phoneList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", - "tags": [ - "locale" - ], - "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", - "responses": { - "200": { - "description": "Currencies List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/currencyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "tags": [ - "locale" - ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", - "responses": { - "200": { - "description": "Languages List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/languageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", - "tags": [ - "messaging" - ], - "description": "Get a list of all messages from the current Appwrite project.", - "responses": { - "200": { - "description": "Message list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/messageList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/list-messages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", - "tags": [ - "messaging" - ], - "description": "Create a new email message.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "subject": { - "description": "Email Subject.", - "type": "string", - "example": "<SUBJECT>" - }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "cc": { - "description": "Array of target IDs to be added as CC.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "bcc": { - "description": "Array of target IDs to be added as BCC.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "attachments": { - "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>.", - "type": "array", - "default": [], - "items": { - "type": "string" - }, - "nullable": true - }, - "replyToEmail": { - "description": "Email address to reply to. If not set, defaults to the sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name of the reply to recipient. If not set, defaults to the sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "html": { - "description": "Is content of type HTML", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - }, - "examples": { - "draft": { - "summary": "Create an email draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "subject": "Welcome", - "content": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", - "tags": [ - "messaging" - ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subject": { - "description": "Email Subject.", - "type": "string", - "example": "<SUBJECT>", - "nullable": true - }, - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "cc": { - "description": "Array of target IDs to be added as CC.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "bcc": { - "description": "Array of target IDs to be added as BCC.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "attachments": { - "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>.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "replyToEmail": { - "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "html": { - "description": "Is content of type HTML", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", - "tags": [ - "messaging" - ], - "description": "Create a new push notification.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-push.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "title": { - "description": "Title for push notification.", - "type": "string", - "default": "", - "example": "<TITLE>" - }, - "body": { - "description": "Body for push notification.", - "type": "string", - "default": "", - "example": "<BODY>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "data": { - "description": "Additional key-value pair data for push notification.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "action": { - "description": "Action for push notification.", - "type": "string", - "default": "", - "example": "<ACTION>" - }, - "image": { - "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>.", - "type": "string", - "default": "", - "example": "<ID1:ID2>" - }, - "icon": { - "description": "Icon for push notification. Available only for Android and Web Platform.", - "type": "string", - "default": "", - "example": "<ICON>" - }, - "sound": { - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "type": "string", - "default": "", - "example": "<SOUND>" - }, - "color": { - "description": "Color for push notification. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<COLOR>" - }, - "tag": { - "description": "Tag for push notification. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<TAG>" - }, - "badge": { - "description": "Badge for push notification. Available only for iOS Platform.", - "type": "integer", - "default": -1, - "example": 1, - "format": "int32" - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "contentAvailable": { - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "type": "boolean", - "default": false, - "example": false - }, - "critical": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "priority": { - "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.", - "type": "string", - "default": "high", - "example": "normal", - "title": "MessagePriority", - "oneOf": [ - { - "type": "string", - "enum": [ - "normal" - ], - "title": "normal" - }, - { - "type": "string", - "enum": [ - "high" - ], - "title": "high" - } - ] - }, - "channelId": { - "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", - "type": "string", - "default": "", - "example": "<CHANNEL_ID>" - } - }, - "required": [ - "messageId" - ] - }, - "examples": { - "draft": { - "summary": "Create a push notification draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "title": "Welcome", - "body": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", - "tags": [ - "messaging" - ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-push.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "title": { - "description": "Title for push notification.", - "type": "string", - "example": "<TITLE>", - "nullable": true - }, - "body": { - "description": "Body for push notification.", - "type": "string", - "example": "<BODY>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "data": { - "description": "Additional Data for push notification.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "action": { - "description": "Action for push notification.", - "type": "string", - "example": "<ACTION>", - "nullable": true - }, - "image": { - "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>.", - "type": "string", - "example": "<ID1:ID2>", - "nullable": true - }, - "icon": { - "description": "Icon for push notification. Available only for Android and Web platforms.", - "type": "string", - "example": "<ICON>", - "nullable": true - }, - "sound": { - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "type": "string", - "example": "<SOUND>", - "nullable": true - }, - "color": { - "description": "Color for push notification. Available only for Android platforms.", - "type": "string", - "example": "<COLOR>", - "nullable": true - }, - "tag": { - "description": "Tag for push notification. Available only for Android platforms.", - "type": "string", - "example": "<TAG>", - "nullable": true - }, - "badge": { - "description": "Badge for push notification. Available only for iOS platforms.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "contentAvailable": { - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "type": "boolean", - "example": false, - "nullable": true - }, - "critical": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - }, - "priority": { - "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.", - "type": "string", - "example": "normal", - "title": "MessagePriority", - "oneOf": [ - { - "type": "string", - "enum": [ - "normal" - ], - "title": "normal" - }, - { - "type": "string", - "enum": [ - "high" - ], - "title": "high" - } - ], - "nullable": true - }, - "channelId": { - "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", - "type": "string", - "example": "<CHANNEL_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", - "tags": [ - "messaging" - ], - "description": "Create a new SMS message.", - "responses": { - "201": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/create-sms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "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.", - "type": "string", - "example": "<MESSAGE_ID>" - }, - "content": { - "description": "SMS Content.", - "type": "string", - "example": "<CONTENT>" - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "default": false, - "example": false - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - }, - "examples": { - "draft": { - "summary": "Create an SMS draft without sending it", - "value": { - "messageId": "<MESSAGE_ID>", - "content": "Welcome to our app.", - "draft": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", - "tags": [ - "messaging" - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/update-sms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "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", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "description": "Email Content.", - "type": "string", - "example": "<CONTENT>", - "nullable": true - }, - "topics": { - "description": "List of Topic IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "users": { - "description": "List of User IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "targets": { - "description": "List of Targets IDs.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "draft": { - "description": "Is message a draft", - "type": "boolean", - "example": false, - "nullable": true - }, - "scheduledAt": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", - "tags": [ - "messaging" - ], - "description": "Get a message by its unique ID.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/get-message.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", - "tags": [ - "messaging" - ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/messages\/{messageId}\/targets": { - "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", - "tags": [ - "messaging" - ], - "description": "Get a list of the targets associated with a message.", - "responses": { - "200": { - "description": "Target list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/targetList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "messages", - "demo": "messaging\/list-targets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MESSAGE_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/providers": { - "get": { - "summary": "List providers", - "operationId": "messagingListProviders", - "tags": [ - "messaging" - ], - "description": "Get a list of all providers from the current Appwrite project.", - "responses": { - "200": { - "description": "Provider list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/list-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Apple Push Notification service provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-apns-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "authKey": { - "description": "APNS authentication key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "authKeyId": { - "description": "APNS authentication key ID.", - "type": "string", - "default": "", - "example": "<AUTH_KEY_ID>" - }, - "teamId": { - "description": "APNS team ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - }, - "bundleId": { - "description": "APNS bundle ID.", - "type": "string", - "default": "", - "example": "<BUNDLE_ID>" - }, - "sandbox": { - "description": "Use APNS sandbox environment.", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", - "tags": [ - "messaging" - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-apns-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "authKey": { - "description": "APNS authentication key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "authKeyId": { - "description": "APNS authentication key ID.", - "type": "string", - "default": "", - "example": "<AUTH_KEY_ID>" - }, - "teamId": { - "description": "APNS team ID.", - "type": "string", - "default": "", - "example": "<TEAM_ID>" - }, - "bundleId": { - "description": "APNS bundle ID.", - "type": "string", - "default": "", - "example": "<BUNDLE_ID>" - }, - "sandbox": { - "description": "Use APNS sandbox environment.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/appwrite": { - "post": { - "summary": "Create Appwrite provider", - "operationId": "messagingCreateAppwriteProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Appwrite push provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-appwrite-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "qos": { - "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/appwrite\/{providerId}": { - "patch": { - "summary": "Update Appwrite provider", - "operationId": "messagingUpdateAppwriteProvider", - "tags": [ - "messaging" - ], - "description": "Update an Appwrite push provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-appwrite-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "qos": { - "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-fcm-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "serviceAccountJSON": { - "description": "FCM service account JSON.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", - "tags": [ - "messaging" - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-fcm-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "serviceAccountJSON": { - "description": "FCM service account JSON.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Mailgun provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-mailgun-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Mailgun API Key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "domain": { - "description": "Mailgun Domain.", - "type": "string", - "default": "", - "example": "example.com" - }, - "isEuRegion": { - "description": "Set as EU region.", - "type": "boolean", - "example": false, - "nullable": true - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "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.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "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.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", - "tags": [ - "messaging" - ], - "description": "Update a Mailgun provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-mailgun-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "apiKey": { - "description": "Mailgun API Key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "domain": { - "description": "Mailgun Domain.", - "type": "string", - "default": "", - "example": "example.com" - }, - "isEuRegion": { - "description": "Set as EU region.", - "type": "boolean", - "example": false, - "nullable": true - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", - "tags": [ - "messaging" - ], - "description": "Create a new MSG91 provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-msg-91-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "templateId": { - "description": "Msg91 template ID", - "type": "string", - "default": "", - "example": "<TEMPLATE_ID>" - }, - "senderId": { - "description": "Msg91 sender ID.", - "type": "string", - "default": "", - "example": "<SENDER_ID>" - }, - "authKey": { - "description": "Msg91 auth key.", - "type": "string", - "default": "", - "example": "<AUTH_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "tags": [ - "messaging" - ], - "description": "Update a MSG91 provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-msg-91-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "templateId": { - "description": "Msg91 template ID.", - "type": "string", - "default": "", - "example": "<TEMPLATE_ID>" - }, - "senderId": { - "description": "Msg91 sender ID.", - "type": "string", - "default": "", - "example": "<SENDER_ID>" - }, - "authKey": { - "description": "Msg91 auth key.", - "type": "string", - "default": "", - "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": { - "group": "providers", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Resend API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", - "tags": [ - "messaging" - ], - "description": "Update a Resend provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Resend API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Sendgrid provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-sendgrid-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "apiKey": { - "description": "Sendgrid API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", - "tags": [ - "messaging" - ], - "description": "Update a Sendgrid provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-sendgrid-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Sendgrid API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/ses": { - "post": { - "summary": "Create Amazon SES provider", - "operationId": "messagingCreateSesProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Amazon SES provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-ses-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "accessKey": { - "description": "AWS access key ID.", - "type": "string", - "default": "", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "AWS secret access key.", - "type": "string", - "default": "", - "example": "<SECRET_KEY>" - }, - "region": { - "description": "AWS region, for example us-east-1.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/ses\/{providerId}": { - "patch": { - "summary": "Update Amazon SES provider", - "operationId": "messagingUpdateSesProvider", - "tags": [ - "messaging" - ], - "description": "Update an Amazon SES provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-ses-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "accessKey": { - "description": "AWS access key ID.", - "type": "string", - "default": "", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "AWS secret access key.", - "type": "string", - "default": "", - "example": "<SECRET_KEY>" - }, - "region": { - "description": "AWS region, for example us-east-1.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", - "tags": [ - "messaging" - ], - "description": "Create a new SMTP provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-smtp-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "host": { - "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.", - "type": "string", - "example": "<HOST>" - }, - "port": { - "description": "The default SMTP server port.", - "type": "integer", - "default": 587, - "example": 587, - "format": "int32" - }, - "username": { - "description": "Authentication username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "password": { - "description": "Authentication password.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "encryption": { - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "type": "string", - "example": "none", - "title": "SmtpEncryption", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - }, - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - } - ] - }, - "autoTLS": { - "description": "Enable SMTP AutoTLS feature.", - "type": "boolean", - "default": true, - "example": false - }, - "mailer": { - "description": "The value to use for the X-Mailer header.", - "type": "string", - "default": "", - "example": "<MAILER>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", - "tags": [ - "messaging" - ], - "description": "Update a SMTP provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-smtp-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "host": { - "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.", - "type": "string", - "default": "", - "example": "<HOST>" - }, - "port": { - "description": "SMTP port.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "username": { - "description": "Authentication username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "password": { - "description": "Authentication password.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "encryption": { - "description": "Encryption type. Can be 'ssl' or 'tls'", - "type": "string", - "example": "none", - "title": "SmtpEncryption", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - }, - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - } - ] - }, - "autoTLS": { - "description": "Enable SMTP AutoTLS feature.", - "type": "boolean", - "example": false, - "nullable": true - }, - "mailer": { - "description": "The value to use for the X-Mailer header.", - "type": "string", - "default": "", - "example": "<MAILER>" - }, - "fromName": { - "description": "Sender Name.", - "type": "string", - "default": "", - "example": "<FROM_NAME>" - }, - "fromEmail": { - "description": "Sender email address.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "replyToName": { - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "type": "string", - "default": "", - "example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "type": "string", - "default": "", - "example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Telesign provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-telesign-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "customerId": { - "description": "Telesign customer ID.", - "type": "string", - "default": "", - "example": "<CUSTOMER_ID>" - }, - "apiKey": { - "description": "Telesign API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", - "tags": [ - "messaging" - ], - "description": "Update a Telesign provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-telesign-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "customerId": { - "description": "Telesign customer ID.", - "type": "string", - "default": "", - "example": "<CUSTOMER_ID>" - }, - "apiKey": { - "description": "Telesign API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Textmagic provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-textmagic-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "username": { - "description": "Textmagic username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "apiKey": { - "description": "Textmagic apiKey.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Update a Textmagic provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-textmagic-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "username": { - "description": "Textmagic username.", - "type": "string", - "default": "", - "example": "<USERNAME>" - }, - "apiKey": { - "description": "Textmagic apiKey.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "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": { - "group": "providers", - "demo": "messaging\/create-twilio-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "<FROM>" - }, - "accountSid": { - "description": "Twilio account secret ID.", - "type": "string", - "default": "", - "example": "<ACCOUNT_SID>" - }, - "authToken": { - "description": "Twilio authentication token.", - "type": "string", - "default": "", - "example": "<AUTH_TOKEN>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", - "tags": [ - "messaging" - ], - "description": "Update a Twilio provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-twilio-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "accountSid": { - "description": "Twilio account secret ID.", - "type": "string", - "default": "", - "example": "<ACCOUNT_SID>" - }, - "authToken": { - "description": "Twilio authentication token.", - "type": "string", - "default": "", - "example": "<AUTH_TOKEN>" - }, - "from": { - "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Vonage provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/create-vonage-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "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.", - "type": "string", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Provider name.", - "type": "string", - "example": "<NAME>" - }, - "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "description": "Vonage API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "apiSecret": { - "description": "Vonage API secret.", - "type": "string", - "default": "", - "example": "<API_SECRET>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", - "tags": [ - "messaging" - ], - "description": "Update a Vonage provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/update-vonage-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Provider name.", - "type": "string", - "default": "", - "example": "<NAME>" - }, - "enabled": { - "description": "Set as enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "apiKey": { - "description": "Vonage API key.", - "type": "string", - "default": "", - "example": "<API_KEY>" - }, - "apiSecret": { - "description": "Vonage API secret.", - "type": "string", - "default": "", - "example": "<API_SECRET>" - }, - "from": { - "description": "Sender number.", - "type": "string", - "default": "", - "example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", - "tags": [ - "messaging" - ], - "description": "Get a provider by its unique ID.\n", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "demo": "messaging\/get-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "tags": [ - "messaging" - ], - "description": "Delete a provider by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "providers", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", - "tags": [ - "messaging" - ], - "description": "Get a list of all topics from the current Appwrite project.", - "responses": { - "200": { - "description": "Topic list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topicList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "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, - "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, 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", - "tags": [ - "messaging" - ], - "description": "Create a new topic.", - "responses": { - "201": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/create-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topicId": { - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "type": "string", - "example": "<TOPIC_ID>" - }, - "name": { - "description": "Topic Name.", - "type": "string", - "example": "<NAME>" - }, - "subscribe": { - "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.", - "type": "array", - "default": [ - "users" - ], - "example": [ - "any" - ], - "items": { - "type": "string" - } - }, - "qos": { - "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "topicId", - "name" - ] - } - } - } - } - } - }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", - "tags": [ - "messaging" - ], - "description": "Get a topic by its unique ID.\n", - "responses": { - "200": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/get-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", - "tags": [ - "messaging" - ], - "description": "Update a topic by its unique ID.\n", - "responses": { - "200": { - "description": "Topic", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/topic" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/update-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Topic Name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "subscribe": { - "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.", - "type": "array", - "example": [ - "any" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "qos": { - "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "expiry": { - "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", - "tags": [ - "messaging" - ], - "description": "Delete a topic by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "topics", - "demo": "messaging\/delete-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", - "tags": [ - "messaging" - ], - "description": "Get a list of all subscribers from the current Appwrite project.", - "responses": { - "200": { - "description": "Subscriber list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriberList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "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": { - "group": "subscribers", - "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, - "auth": { - "Project": [], - "JWT": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subscriberId": { - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "type": "string", - "example": "<SUBSCRIBER_ID>" - }, - "targetId": { - "description": "Target ID. The target ID to link to the specified Topic ID.", - "type": "string", - "example": "<TARGET_ID>" - } - }, - "required": [ - "subscriberId", - "targetId" - ] - } - } - } - } - } - }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { - "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", - "tags": [ - "messaging" - ], - "description": "Get a subscriber by its unique ID.\n", - "responses": { - "200": { - "description": "Subscriber", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "subscribers", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "subscribers", - "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, - "auth": { - "Project": [], - "JWT": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SUBSCRIBER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo": { - "get": { - "summary": "List databases", - "operationId": "mongoList", - "tags": [ - "mongo" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "mongoCreate", - "tags": [ - "mongo" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/mongo\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "mongoListSpecifications", - "tags": [ - "mongo" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/mongo\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "mongoGet", - "tags": [ - "mongo" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "mongoUpdate", - "tags": [ - "mongo" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "mongoDelete", - "tags": [ - "mongo" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "mongoListBackups", - "tags": [ - "mongo" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "mongoCreateBackup", - "tags": [ - "mongo" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "mongoListBackupPolicies", - "tags": [ - "mongo" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "mongoCreateBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "mongoGetBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "mongoUpdateBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "mongoDeleteBackupPolicy", - "tags": [ - "mongo" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mongo\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "mongoUpdateBackupStorage", - "tags": [ - "mongo" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "mongoGetBackup", - "tags": [ - "mongo" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "mongoDeleteBackup", - "tags": [ - "mongo" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mongo\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "mongoListBranches", - "tags": [ - "mongo" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "mongoCreateBranch", - "tags": [ - "mongo" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "mongoDeleteBranch", - "tags": [ - "mongo" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mongo\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "mongoUpdateCredentials", - "tags": [ - "mongo" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "mongoCreateFailover", - "tags": [ - "mongo" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "mongo\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "mongoUpdateMaintenance", - "tags": [ - "mongo" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "mongoCreateMigration", - "tags": [ - "mongo" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "mongo\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "mongoListOperations", - "tags": [ - "mongo" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "mongo\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/mongo\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "mongoGetPitr", - "tags": [ - "mongo" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "mongo\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "mongoGetReplicas", - "tags": [ - "mongo" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "mongo\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "mongoListRestorations", - "tags": [ - "mongo" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "mongoCreateRestoration", - "tags": [ - "mongo" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/mongo\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "mongoGetRestoration", - "tags": [ - "mongo" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mongo\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "mongoGetStatus", - "tags": [ - "mongo" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mongo\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "mongoCreateUpgrade", - "tags": [ - "mongo" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mongo", - "demo": "mongo\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/mysql": { - "get": { - "summary": "List databases", - "operationId": "mysqlList", - "tags": [ - "mysql" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "mysqlCreate", - "tags": [ - "mysql" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/mysql\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "mysqlListSpecifications", - "tags": [ - "mysql" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/mysql\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "mysqlGet", - "tags": [ - "mysql" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "mysqlUpdate", - "tags": [ - "mysql" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "mysqlDelete", - "tags": [ - "mysql" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "mysqlListBackups", - "tags": [ - "mysql" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "mysqlCreateBackup", - "tags": [ - "mysql" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "mysqlListBackupPolicies", - "tags": [ - "mysql" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "mysqlCreateBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "mysqlGetBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "mysqlUpdateBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "mysqlDeleteBackupPolicy", - "tags": [ - "mysql" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "mysql\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "mysqlUpdateBackupStorage", - "tags": [ - "mysql" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "mysqlGetBackup", - "tags": [ - "mysql" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "mysqlDeleteBackup", - "tags": [ - "mysql" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "mysql\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "mysqlListBranches", - "tags": [ - "mysql" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "mysqlCreateBranch", - "tags": [ - "mysql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "mysqlDeleteBranch", - "tags": [ - "mysql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "mysql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "mysqlUpdateCredentials", - "tags": [ - "mysql" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/executions": { - "post": { - "summary": "Create execution", - "operationId": "mysqlCreateExecution", - "tags": [ - "mysql" - ], - "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.center\/v1\/sql\/executions` 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": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "mysql\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sql": { - "description": "SQL statement to execute. Exactly one statement per request.", - "type": "string", - "example": "<SQL>" - }, - "bindings": { - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "timeoutSeconds": { - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "sql" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "mysqlCreateFailover", - "tags": [ - "mysql" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "mysql\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "mysqlUpdateMaintenance", - "tags": [ - "mysql" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "mysqlCreateMigration", - "tags": [ - "mysql" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "mysql\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "mysqlListOperations", - "tags": [ - "mysql" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "mysql\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/mysql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "mysqlGetPitr", - "tags": [ - "mysql" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "mysql\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/pooler": { - "get": { - "summary": "Get pooler", - "operationId": "mysqlGetPooler", - "tags": [ - "mysql" - ], - "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": { - "group": "pooler", - "demo": "mysql\/get-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update pooler", - "operationId": "mysqlUpdatePooler", - "tags": [ - "mysql" - ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", - "responses": { - "200": { - "description": "PoolerConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pooler", - "demo": "mysql\/update-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mode": { - "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.", - "type": "string", - "example": "transaction", - "nullable": true - }, - "maxConnections": { - "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", - "type": "integer", - "example": 10, - "format": "int32", - "nullable": true - }, - "defaultPoolSize": { - "description": "Default pool size per user.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "readWriteSplitting": { - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "poolerCpuRequest": { - "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).", - "type": "string", - "example": "<POOLER_CPU_REQUEST>", - "nullable": true - }, - "poolerCpuLimit": { - "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.", - "type": "string", - "example": "<POOLER_CPU_LIMIT>", - "nullable": true - }, - "poolerMemoryRequest": { - "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).", - "type": "string", - "example": "<POOLER_MEMORY_REQUEST>", - "nullable": true - }, - "poolerMemoryLimit": { - "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.", - "type": "string", - "example": "<POOLER_MEMORY_LIMIT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "mysqlGetReplicas", - "tags": [ - "mysql" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "mysql\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "mysqlListRestorations", - "tags": [ - "mysql" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "mysqlCreateRestoration", - "tags": [ - "mysql" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/mysql\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "mysqlGetRestoration", - "tags": [ - "mysql" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "mysql\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "mysqlGetStatus", - "tags": [ - "mysql" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/mysql\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "mysqlCreateUpgrade", - "tags": [ - "mysql" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mysql", - "demo": "mysql\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/approve": { - "post": { - "summary": "Approve OAuth2", - "operationId": "oauth2Approve", - "tags": [ - "oauth2" - ], - "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Approve", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Approve" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/approve.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - }, - "authorization_details": { - "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "scope": { - "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", - "type": "string", - "default": "", - "example": "<SCOPE>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/authorize": { - "get": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2Authorize", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "client_id", - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "required": false, - "schema": { - "type": "string", - "example": "<CLIENT_ID>", - "default": "" - }, - "in": "query" - }, - { - "name": "redirect_uri", - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "required": false, - "schema": { - "type": "string", - "format": "url", - "example": "https:\/\/example.com", - "default": "" - }, - "in": "query" - }, - { - "name": "response_type", - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "required": false, - "schema": { - "type": "string", - "example": "", - "default": "" - }, - "in": "query" - }, - { - "name": "scope", - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "required": false, - "schema": { - "type": "string", - "example": "<SCOPE>", - "default": "" - }, - "in": "query" - }, - { - "name": "state", - "description": "OAuth2 state. You receive this back in the redirect URI.", - "required": false, - "schema": { - "type": "string", - "example": "<STATE>", - "default": "" - }, - "in": "query" - }, - { - "name": "nonce", - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "required": false, - "schema": { - "type": "string", - "example": "<NONCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge", - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "<CODE_CHALLENGE>", - "default": "" - }, - "in": "query" - }, - { - "name": "code_challenge_method", - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "required": false, - "schema": { - "type": "string", - "example": "s256", - "default": "" - }, - "in": "query" - }, - { - "name": "prompt", - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "required": false, - "schema": { - "type": "string", - "example": "<PROMPT>", - "default": "" - }, - "in": "query" - }, - { - "name": "max_age", - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0 - }, - "in": "query" - }, - { - "name": "authorization_details", - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "required": false, - "schema": { - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "default": "" - }, - "in": "query" - }, - { - "name": "resource", - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "required": false, - "schema": { - "type": "string", - "default": [] - }, - "in": "query" - }, - { - "name": "audience", - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "required": false, - "schema": { - "type": "string", - "example": "<AUDIENCE>", - "default": "" - }, - "in": "query" - }, - { - "name": "request_uri", - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "required": false, - "schema": { - "type": "string", - "example": "<REQUEST_URI>", - "default": "" - }, - "in": "query" - } - ] - }, - "post": { - "summary": "OAuth2 Authorize", - "operationId": "oauth2AuthorizePost", - "tags": [ - "oauth2" - ], - "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Authorize", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Authorize" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/authorize.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", - "type": "string", - "default": "", - "example": "" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - }, - "request_uri": { - "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", - "type": "string", - "default": "", - "example": "<REQUEST_URI>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/device_authorization": { - "post": { - "summary": "OAuth2 Device Authorization", - "operationId": "oauth2CreateDeviceAuthorization", - "tags": [ - "oauth2" - ], - "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", - "responses": { - "200": { - "description": "OAuth2 Device Authorization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-device-authorization.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - } - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants": { - "post": { - "summary": "Create OAuth2 Grant", - "operationId": "oauth2CreateGrant", - "tags": [ - "oauth2" - ], - "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", - "responses": { - "201": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/create-grant.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "user_code": { - "description": "User code displayed on the device.", - "type": "string", - "example": "<USER_CODE>" - } - }, - "required": [ - "user_code" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/grants\/{grant_id}": { - "get": { - "summary": "Get OAuth2 Grant", - "operationId": "oauth2GetGrant", - "tags": [ - "oauth2" - ], - "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", - "responses": { - "200": { - "description": "OAuth2 Grant", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Grant" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "grants", - "demo": "oauth2\/get-grant.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client that created grant during authorization exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "grant_id", - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "required": true, - "schema": { - "type": "string", - "example": "<GRANT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/oauth2\/{project_id}\/introspect": { - "post": { - "summary": "OAuth2 Introspect", - "operationId": "oauth2Introspect", - "tags": [ - "oauth2" - ], - "description": "Introspect an OAuth2 access token or refresh token. Authenticate with an API key holding the `oauth2.introspect` scope to introspect any token in the project, or with the client credentials of the app the token was issued to.", - "responses": { - "200": { - "description": "OAuth2 Introspection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Introspection" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/introspect.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "global", - "platforms": [ - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "description": "The access token or refresh token to introspect.", - "type": "string", - "example": "<TOKEN>" - }, - "token_type_hint": { - "description": "Type of token to introspect. Can be one of: `access_token` or `refresh_token`.", - "type": "string", - "default": "", - "example": "access_token" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - } - }, - "required": [ - "token" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/organizations": { - "get": { - "summary": "OAuth2 List Accessible Organizations", - "operationId": "oauth2ListOrganizations", - "tags": [ - "oauth2" - ], - "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible organizations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2OrganizationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-organizations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.organizations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of organizations to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of organizations to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/par": { - "post": { - "summary": "OAuth2 PAR", - "operationId": "oauth2CreatePAR", - "tags": [ - "oauth2" - ], - "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", - "responses": { - "201": { - "description": "OAuth2 PAR", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2PAR" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/create-par.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "example": "<CLIENT_ID>" - }, - "redirect_uri": { - "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "response_type": { - "description": "OAuth2 \/ OIDC response type.", - "type": "string", - "example": "code" - }, - "scope": { - "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", - "type": "string", - "default": "", - "example": "<SCOPE>" - }, - "state": { - "description": "OAuth2 state. You receive this back in the redirect URI.", - "type": "string", - "default": "", - "example": "<STATE>" - }, - "nonce": { - "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", - "type": "string", - "default": "", - "example": "<NONCE>" - }, - "code_challenge": { - "description": "PKCE code challenge. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "<CODE_CHALLENGE>" - }, - "code_challenge_method": { - "description": "PKCE code challenge method. Required when OAuth2 app is public.", - "type": "string", - "default": "", - "example": "s256" - }, - "prompt": { - "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", - "type": "string", - "default": "", - "example": "<PROMPT>" - }, - "max_age": { - "description": "OIDC max_age parameter for customization of consent screen.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "authorization_details": { - "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "client_id", - "redirect_uri", - "response_type" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/projects": { - "get": { - "summary": "OAuth2 List Accessible Projects", - "operationId": "oauth2ListProjects", - "tags": [ - "oauth2" - ], - "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", - "responses": { - "200": { - "description": "OAuth2 accessible projects list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2ProjectList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platform", - "demo": "oauth2\/list-projects.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.projects.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID of the console project the OAuth2 access token was issued for.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of projects to return. Between 1 and 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of projects to skip before returning results. Used for pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/oauth2\/{project_id}\/reject": { - "post": { - "summary": "Reject OAuth2", - "operationId": "oauth2Reject", - "tags": [ - "oauth2" - ], - "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", - "responses": { - "200": { - "description": "OAuth2 Reject", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Reject" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "authorization", - "demo": "oauth2\/reject.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "oauth2.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_id": { - "description": "Grant ID made during authorization, provided to consent screen in URL search params.", - "type": "string", - "example": "<GRANT_ID>" - } - }, - "required": [ - "grant_id" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/revoke": { - "post": { - "summary": "OAuth2 Revoke", - "operationId": "oauth2Revoke", - "tags": [ - "oauth2" - ], - "description": "Revoke an OAuth2 access token or refresh token.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/revoke.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "description": "The access or refresh token to revoke.", - "type": "string", - "example": "<TOKEN>" - }, - "token_type_hint": { - "description": "Type of token to revoke (access_token or refresh_token).", - "type": "string", - "default": "", - "example": "access_token" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - } - }, - "required": [ - "token" - ] - } - } - } - } - } - }, - "\/oauth2\/{project_id}\/token": { - "post": { - "summary": "OAuth2 Token", - "operationId": "oauth2CreateToken", - "tags": [ - "oauth2" - ], - "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", - "responses": { - "200": { - "description": "OAuth2 Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oauth2Token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "oauth2\/create-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "config": { - "project_id": "project" - }, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "project_id", - "description": "Project ID in which OAuth2 client exists.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "grant_type": { - "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", - "type": "string", - "example": "<GRANT_TYPE>" - }, - "code": { - "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "<CODE>" - }, - "refresh_token": { - "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", - "type": "string", - "default": "", - "example": "<REFRESH_TOKEN>" - }, - "device_code": { - "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", - "type": "string", - "default": "", - "example": "<DEVICE_CODE>" - }, - "client_id": { - "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", - "type": "string", - "default": "", - "example": "<CLIENT_ID>" - }, - "client_secret": { - "description": "OAuth2 client secret. Required for confidential apps.", - "type": "string", - "default": "", - "example": "<CLIENT_SECRET>" - }, - "code_verifier": { - "description": "PKCE code verifier. Required for public apps.", - "type": "string", - "default": "", - "example": "<CODE_VERIFIER>" - }, - "redirect_uri": { - "description": "Redirect URI. Required for `authorization_code` grant type.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "resource": { - "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] - }, - "audience": { - "description": "Compatibility alias for a single OAuth2 resource indicator URI.", - "type": "string", - "default": "", - "example": "<AUDIENCE>" - } - }, - "required": [ - "grant_type" - ] - }, - "examples": { - "authorizationCode": { - "summary": "Exchange an authorization code", - "value": { - "grant_type": "authorization_code", - "code": "<CODE>", - "redirect_uri": "https:\/\/example.com\/callback", - "client_id": "<CLIENT_ID>", - "code_verifier": "<CODE_VERIFIER>" - } - }, - "refreshToken": { - "summary": "Refresh an access token", - "value": { - "grant_type": "refresh_token", - "refresh_token": "<REFRESH_TOKEN>", - "client_id": "<CLIENT_ID>" - } - }, - "deviceCode": { - "summary": "Exchange a device code", - "value": { - "grant_type": "urn:ietf:params:oauth:grant-type:device_code", - "device_code": "<DEVICE_CODE>", - "client_id": "<CLIENT_ID>" - } - } - } - } - } - } - } - }, - "\/organization": { - "get": { - "summary": "Get organization", - "operationId": "organizationGet", - "tags": [ - "organization" - ], - "description": "Get the current organization.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ] - }, - "put": { - "summary": "Update organization", - "operationId": "organizationUpdate", - "tags": [ - "organization" - ], - "description": "Update the current organization's name.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "New organization name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete organization", - "operationId": "organizationDelete", - "tags": [ - "organization" - ], - "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "organization\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ] - } - }, - "\/organization\/installations": { - "get": { - "summary": "List Installations", - "operationId": "organizationListInstallations", - "tags": [ - "organization" - ], - "description": "List app installations on the organization. Any organization member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "organizationCreateInstallation", - "tags": [ - "organization" - ], - "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/organization\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "organizationGetInstallation", - "tags": [ - "organization" - ], - "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "organizationUpdateInstallation", - "tags": [ - "organization" - ], - "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "organizationDeleteInstallation", - "tags": [ - "organization" - ], - "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "installations", - "demo": "organization\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "organization.installations.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organization\/memberships": { - "get": { - "summary": "List organization memberships", - "operationId": "organizationListMemberships", - "tags": [ - "organization" - ], - "description": "Get a list of all memberships from the current organization.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "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, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create organization membership", - "operationId": "organizationCreateMembership", - "tags": [ - "organization" - ], - "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Email of the new organization member.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "userId": { - "description": "ID of the user to be added to the organization.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "roles": { - "description": "Array of strings. Use this param to set the user roles in the organization. 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.", - "type": "array", - "items": { - "type": "string" - } - }, - "url": { - "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.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "description": "Name of the new organization member. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } - } - }, - "\/organization\/memberships\/{membershipId}": { - "get": { - "summary": "Get organization membership", - "operationId": "organizationGetMembership", - "tags": [ - "organization" - ], - "description": "Get a membership from the current organization by its unique ID.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/get-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update organization membership", - "operationId": "organizationUpdateMembership", - "tags": [ - "organization" - ], - "description": "Modify the roles of a member in the current organization.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "description": "An array of strings. Use this param to set the user's roles in the organization. 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.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "roles" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete organization membership", - "operationId": "organizationDeleteMembership", - "tags": [ - "organization" - ], - "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "organization\/delete-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organization.memberships.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "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, accessedAt", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "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.", - "type": "string", - "example": "<PROJECT_ID>" - }, - "name": { - "description": "Project name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "region": { - "description": "Project Region.", - "type": "string", - "example": "fra", - "title": "Region", - "oneOf": [ - { - "type": "string", - "enum": [ - "fra" - ], - "title": "fra" - }, - { - "type": "string", - "enum": [ - "nyc" - ], - "title": "nyc" - }, - { - "type": "string", - "enum": [ - "syd" - ], - "title": "syd" - }, - { - "type": "string", - "enum": [ - "sfo" - ], - "title": "sfo" - }, - { - "type": "string", - "enum": [ - "sgp" - ], - "title": "sgp" - }, - { - "type": "string", - "enum": [ - "tor" - ], - "title": "tor" - } - ] - } - }, - "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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Project name. Max length: 128 chars.", - "type": "string", - "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": { - "group": "projects", - "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": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organization\/projects\/{projectId}\/keys": { - "get": { - "summary": "List project keys", - "operationId": "organizationListProjectKeys", - "tags": [ - "organization" - ], - "description": "Get a list of all API keys of a project in your organization.", - "responses": { - "200": { - "description": "API Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/keyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/list-project-keys.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.read", - "keys.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/organization\/projects\/{projectId}\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "organizationCreateEphemeralProjectKey", - "tags": [ - "organization" - ], - "description": "Create a new ephemeral API key for a project in your organization. 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": { - "201": { - "description": "Ephemeral Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/create-ephemeral-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "duration": { - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "type": "integer", - "example": 600, - "format": "int32" - } - }, - "required": [ - "scopes", - "duration" - ] - } - } - } - } - } - }, - "\/organization\/projects\/{projectId}\/keys\/{keyId}": { - "get": { - "summary": "Get project key", - "operationId": "organizationGetProjectKey", - "tags": [ - "organization" - ], - "description": "Get a project key by its unique ID.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/get-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.read", - "keys.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project key", - "operationId": "organizationUpdateProjectKey", - "tags": [ - "organization" - ], - "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/update-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete project key", - "operationId": "organizationDeleteProjectKey", - "tags": [ - "organization" - ], - "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "organization\/delete-project-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "organization.projects.keys.write", - "keys.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/ping": { - "get": { - "summary": "Test the connection between the Appwrite and the SDK.", - "operationId": "pingGet", - "tags": [ - "ping" - ], - "description": "Send a ping to project as part of onboarding.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "ping\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "global", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [], - "Session": [] - } - ] - } - }, - "\/postgresql": { - "get": { - "summary": "List databases", - "operationId": "postgresqlList", - "tags": [ - "postgresql" - ], - "description": "List all dedicated databases. Results support pagination.", - "responses": { - "200": { - "description": "Dedicated databases list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "postgresqlCreate", - "tags": [ - "postgresql" - ], - "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", - "responses": { - "201": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "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.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database display name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "version": { - "description": "Database engine version. Defaults to latest for selected engine.", - "type": "string", - "example": "17", - "nullable": true - }, - "specification": { - "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", - "type": "string", - "default": "s-1vcpu-1gb", - "example": "<SPECIFICATION>" - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes of inactivity before container scales to zero.", - "type": "integer", - "default": 15, - "example": 5, - "format": "int32" - }, - "pitr": { - "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", - "type": "boolean", - "default": true, - "example": false - }, - "pitrRetentionDays": { - "description": "Number of days to retain PITR data.", - "type": "integer", - "default": 7, - "example": 1, - "format": "int32" - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "default": true, - "example": false - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "default": 85, - "example": 50, - "format": "int32" - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/postgresql\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "postgresqlListSpecifications", - "tags": [ - "postgresql" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/postgresql\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "postgresqlGet", - "tags": [ - "postgresql" - ], - "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update database", - "operationId": "postgresqlUpdate", - "tags": [ - "postgresql" - ], - "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database display name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "status": { - "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", - "type": "string", - "example": "ready", - "nullable": true - }, - "specification": { - "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - }, - "networkIdleTimeoutSeconds": { - "description": "Connection idle timeout in seconds (60-86400).", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "networkIPAllowlist": { - "description": "IP addresses\/CIDR ranges allowed to connect.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "idleTimeoutMinutes": { - "description": "Minutes before container scales to zero.", - "type": "integer", - "example": 5, - "format": "int32", - "nullable": true - }, - "pitr": { - "description": "Enable or disable point-in-time recovery (PITR).", - "type": "boolean", - "example": false, - "nullable": true - }, - "pitrRetentionDays": { - "description": "Days to retain PITR data.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "storageAutoscaling": { - "description": "Enable automatic storage expansion when usage exceeds threshold.", - "type": "boolean", - "example": false, - "nullable": true - }, - "storageAutoscalingThresholdPercent": { - "description": "Storage usage percentage (50-95) that triggers automatic expansion.", - "type": "integer", - "example": 50, - "format": "int32", - "nullable": true - }, - "storageAutoscalingMaxGb": { - "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "metricsTraceSampleRate": { - "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", - "type": "number", - "format": "float", - "nullable": true - }, - "metricsSlowQueryLogThresholdMs": { - "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "sqlApiEnabled": { - "description": "Enable the SQL API sidecar for this database.", - "type": "boolean", - "example": false, - "nullable": true - }, - "sqlApiAllowedStatements": { - "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "sqlApiMaxRows": { - "description": "Maximum rows returned per SQL API execution (1-1000000).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "sqlApiMaxBytes": { - "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", - "type": "integer", - "example": 1024, - "format": "int32", - "nullable": true - }, - "sqlApiTimeoutSeconds": { - "description": "Per-call SQL API execution timeout in seconds (1-300).", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "postgresqlDelete", - "tags": [ - "postgresql" - ], - "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/backups": { - "get": { - "summary": "List backups", - "operationId": "postgresqlListBackups", - "tags": [ - "postgresql" - ], - "description": "List all backups for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "BackupList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/list-backups.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create backup", - "operationId": "postgresqlCreateBackup", - "tags": [ - "postgresql" - ], - "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": { - "202": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/create-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/policies": { - "get": { - "summary": "List backup policies", - "operationId": "postgresqlListBackupPolicies", - "tags": [ - "postgresql" - ], - "description": "List scheduled backup policies for a dedicated database.", - "responses": { - "200": { - "description": "Backup policy list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/list-backup-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "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" - } - ] - }, - "post": { - "summary": "Create backup policy", - "operationId": "postgresqlCreateBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Create a scheduled backup policy for a dedicated database.", - "responses": { - "201": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/create-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "policyId": { - "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<POLICY_ID>" - }, - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "type": { - "description": "Backup type: full or incremental.", - "type": "string", - "default": "full", - "example": "full" - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "policyId", - "name", - "schedule", - "retention" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { - "get": { - "summary": "Get backup policy", - "operationId": "postgresqlGetBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Get a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/get-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update backup policy", - "operationId": "postgresqlUpdateBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Update a scheduled backup policy for a dedicated database.", - "responses": { - "200": { - "description": "backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/backupPolicy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/update-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Policy name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "schedule": { - "description": "Schedule CRON syntax.", - "type": "string" - }, - "retention": { - "description": "Days to keep backups before deletion.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Is policy enabled? When disabled, no backups will be taken.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete backup policy", - "operationId": "postgresqlDeleteBackupPolicy", - "tags": [ - "postgresql" - ], - "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "postgresql\/delete-backup-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "policyId", - "description": "Policy ID.", - "required": true, - "schema": { - "type": "string", - "example": "<POLICY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/backups\/storage": { - "put": { - "summary": "Update backup storage", - "operationId": "postgresqlUpdateBackupStorage", - "tags": [ - "postgresql" - ], - "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": "BackupStorageConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/update-backup-storage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", - "type": "string", - "example": "s3" - }, - "bucket": { - "description": "Storage bucket or container name.", - "type": "string", - "example": "<BUCKET>" - }, - "region": { - "description": "Storage region.", - "type": "string", - "default": "", - "example": "<REGION>" - }, - "prefix": { - "description": "Object key prefix for backups.", - "type": "string", - "default": "backups\/", - "example": "<PREFIX>" - }, - "endpoint": { - "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", - "type": "string", - "default": "", - "example": "<ENDPOINT>" - }, - "accessKey": { - "description": "Access key or client ID for authentication.", - "type": "string", - "example": "<ACCESS_KEY>" - }, - "secretKey": { - "description": "Secret key or service account JSON for authentication.", - "type": "string", - "example": "<SECRET_KEY>" - } - }, - "required": [ - "provider", - "bucket", - "accessKey", - "secretKey" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/backups\/{backupId}": { - "get": { - "summary": "Get backup", - "operationId": "postgresqlGetBackup", - "tags": [ - "postgresql" - ], - "description": "Get details of a specific database backup including its status, size, and timestamps.", - "responses": { - "200": { - "description": "Backup", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/get-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete backup", - "operationId": "postgresqlDeleteBackup", - "tags": [ - "postgresql" - ], - "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "backups", - "demo": "postgresql\/delete-backup.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "backupId", - "description": "Backup ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BACKUP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/branches": { - "get": { - "summary": "List branches", - "operationId": "postgresqlListBranches", - "tags": [ - "postgresql" - ], - "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", - "responses": { - "200": { - "description": "BranchList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/list-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create branch", - "operationId": "postgresqlCreateBranch", - "tags": [ - "postgresql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/create-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "branchId": { - "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.", - "type": "string", - "default": "", - "example": "<BRANCH_ID>" - }, - "ttl": { - "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", - "type": "integer", - "default": 86400, - "example": 300, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/branches\/{branchId}": { - "delete": { - "summary": "Delete branch", - "operationId": "postgresqlDeleteBranch", - "tags": [ - "postgresql" - ], - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "branches", - "demo": "postgresql\/delete-branch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "branchId", - "description": "Branch ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BRANCH_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/credentials": { - "patch": { - "summary": "Update credentials", - "operationId": "postgresqlUpdateCredentials", - "tags": [ - "postgresql" - ], - "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", - "responses": { - "202": { - "description": "Operation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update-credentials.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/executions": { - "post": { - "summary": "Create execution", - "operationId": "postgresqlCreateExecution", - "tags": [ - "postgresql" - ], - "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.center\/v1\/sql\/executions` 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": "Execution", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "executions", - "demo": "postgresql\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sql": { - "description": "SQL statement to execute. Exactly one statement per request.", - "type": "string", - "example": "<SQL>" - }, - "bindings": { - "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", - "type": "object", - "default": {}, - "example": {}, - "nullable": true - }, - "timeoutSeconds": { - "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "sql" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/extensions": { - "get": { - "summary": "List extensions", - "operationId": "postgresqlListExtensions", - "tags": [ - "postgresql" - ], - "description": "List installed and available extensions for a PostgreSQL database.", - "responses": { - "200": { - "description": "Extensions", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/list-extensions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create extension", - "operationId": "postgresqlCreateExtension", - "tags": [ - "postgresql" - ], - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/create-extension.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { - "delete": { - "summary": "Delete extension", - "operationId": "postgresqlDeleteExtension", - "tags": [ - "postgresql" - ], - "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "extensions", - "demo": "postgresql\/delete-extension.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "extensionName", - "description": "Extension name to uninstall.", - "required": true, - "schema": { - "type": "string", - "example": "<EXTENSION_NAME>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "postgresqlCreateFailover", - "tags": [ - "postgresql" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "postgresql\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/maintenance": { - "patch": { - "summary": "Update maintenance", - "operationId": "postgresqlUpdateMaintenance", - "tags": [ - "postgresql" - ], - "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/update-maintenance.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "day": { - "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", - "type": "string", - "example": "sun" - }, - "hourUtc": { - "description": "Hour in UTC (0-23) for maintenance window start.", - "type": "integer", - "example": 0, - "format": "int32" - } - }, - "required": [ - "day", - "hourUtc" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/migrations": { - "post": { - "summary": "Create migration", - "operationId": "postgresqlCreateMigration", - "tags": [ - "postgresql" - ], - "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "postgresql\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetType": { - "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", - "type": "string", - "example": "shared" - }, - "specification": { - "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", - "type": "string", - "example": "<SPECIFICATION>", - "nullable": true - } - }, - "required": [ - "targetType" - ] - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "postgresqlListOperations", - "tags": [ - "postgresql" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "postgresql\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/postgresql\/{databaseId}\/pitr": { - "get": { - "summary": "Get PITR", - "operationId": "postgresqlGetPitr", - "tags": [ - "postgresql" - ], - "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", - "responses": { - "200": { - "description": "PITRWindows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pitr", - "demo": "postgresql\/get-pitr.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/pooler": { - "get": { - "summary": "Get pooler", - "operationId": "postgresqlGetPooler", - "tags": [ - "postgresql" - ], - "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": { - "group": "pooler", - "demo": "postgresql\/get-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update pooler", - "operationId": "postgresqlUpdatePooler", - "tags": [ - "postgresql" - ], - "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", - "responses": { - "200": { - "description": "PoolerConfig", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "pooler", - "demo": "postgresql\/update-pooler.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mode": { - "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.", - "type": "string", - "example": "transaction", - "nullable": true - }, - "maxConnections": { - "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", - "type": "integer", - "example": 10, - "format": "int32", - "nullable": true - }, - "defaultPoolSize": { - "description": "Default pool size per user.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "readWriteSplitting": { - "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", - "type": "boolean", - "example": false, - "nullable": true - }, - "poolerCpuRequest": { - "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).", - "type": "string", - "example": "<POOLER_CPU_REQUEST>", - "nullable": true - }, - "poolerCpuLimit": { - "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.", - "type": "string", - "example": "<POOLER_CPU_LIMIT>", - "nullable": true - }, - "poolerMemoryRequest": { - "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).", - "type": "string", - "example": "<POOLER_MEMORY_REQUEST>", - "nullable": true - }, - "poolerMemoryLimit": { - "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.", - "type": "string", - "example": "<POOLER_MEMORY_LIMIT>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "postgresqlGetReplicas", - "tags": [ - "postgresql" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "postgresql\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/restorations": { - "get": { - "summary": "List restorations", - "operationId": "postgresqlListRestorations", - "tags": [ - "postgresql" - ], - "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", - "responses": { - "200": { - "description": "Dedicated database restorations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/list-restorations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by restoration status.", - "required": false, - "schema": { - "type": "string", - "example": "pending" - }, - "in": "query" - }, - { - "name": "type", - "description": "Filter by restoration type.", - "required": false, - "schema": { - "type": "string", - "example": "backup" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of restorations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of restorations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create restoration", - "operationId": "postgresqlCreateRestoration", - "tags": [ - "postgresql" - ], - "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 as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", - "responses": { - "202": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/create-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", - "type": "string", - "default": "backup", - "example": "backup" - }, - "backupId": { - "description": "Backup ID to restore from (required for backup type).", - "type": "string", - "example": "<BACKUP_ID>", - "nullable": true - }, - "targetDatabaseId": { - "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", - "type": "string", - "example": "<TARGET_DATABASE_ID>", - "nullable": true - }, - "targetTime": { - "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - }, - "examples": { - "backup": { - "summary": "Restore from a backup", - "value": { - "type": "backup", - "backupId": "<BACKUP_ID>" - } - }, - "pitr": { - "summary": "Restore to a point in time within the PITR retention window", - "value": { - "type": "pitr", - "targetTime": "2026-01-01T00:00:00.000+00:00" - } - } - } - } - } - } - } - }, - "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { - "get": { - "summary": "Get restoration", - "operationId": "postgresqlGetRestoration", - "tags": [ - "postgresql" - ], - "description": "Get details of a specific database restoration including its status, type, and timestamps.", - "responses": { - "200": { - "description": "Restoration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "restorations", - "demo": "postgresql\/get-restoration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "restorationId", - "description": "Restoration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RESTORATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "postgresqlGetStatus", - "tags": [ - "postgresql" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/postgresql\/{databaseId}\/upgrades": { - "post": { - "summary": "Create upgrade", - "operationId": "postgresqlCreateUpgrade", - "tags": [ - "postgresql" - ], - "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", - "responses": { - "200": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "postgresql", - "demo": "postgresql\/create-upgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetVersion": { - "description": "Target engine version to upgrade to.", - "type": "string", - "example": "<TARGET_VERSION>" - } - }, - "required": [ - "targetVersion" - ] - } - } - } - } - } - }, - "\/presences": { - "get": { - "summary": "List presences", - "operationId": "presencesList", - "tags": [ - "presences" - ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", - "responses": { - "200": { - "description": "Presences List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presenceList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", - "tags": [ - "presences" - ], - "description": "Create or update a presence log by its user ID.\n", - "responses": { - "200": { - "description": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/upsert.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "platforms": [ - "server" - ], - "summary": "Upsert presence", - "auth": { - "Project": [], - "Key": [] - }, - "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": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "status" - ] - } - } - } - } - }, - "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", - "tags": [ - "presences" - ], - "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": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "update", - "namespace": "presences", - "platforms": [ - "server" - ], - "summary": "Update presence", - "auth": { - "Project": [], - "Key": [] - }, - "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.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "status": { - "description": "Presence status.", - "type": "string", - "example": "<STATUS>" - }, - "expiresAt": { - "description": "Presence expiry datetime.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "description": "Presence metadata object.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "purge": { - "description": "When true, purge cached responses used by list presences endpoint.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", - "tags": [ - "presences" - ], - "description": "Delete a presence log by its unique ID.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "presences", - "demo": "presences\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PRESENCE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/project": { - "get": { - "summary": "Get project", - "operationId": "projectGet", - "tags": [ - "project" - ], - "description": "Get a project.", - "responses": { - "200": { - "description": "Project", - "content": { - "": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/get.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", - "tags": [ - "project" - ], - "description": "Delete a project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/project\/auth-methods\/{methodId}": { - "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", - "tags": [ - "project" - ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-auth-method.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "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", - "example": "email-password", - "title": "ProjectAuthMethodId", - "oneOf": [ - { - "type": "string", - "enum": [ - "email-password" - ], - "title": "email-password" - }, - { - "type": "string", - "enum": [ - "magic-url" - ], - "title": "magic-url" - }, - { - "type": "string", - "enum": [ - "email-otp" - ], - "title": "email-otp" - }, - { - "type": "string", - "enum": [ - "anonymous" - ], - "title": "anonymous" - }, - { - "type": "string", - "enum": [ - "invites" - ], - "title": "invites" - }, - { - "type": "string", - "enum": [ - "jwt" - ], - "title": "jwt" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Auth method status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/keys": { - "get": { - "summary": "List project keys", - "operationId": "projectListKeys", - "tags": [ - "project" - ], - "description": "Get a list of all API keys from the current project.", - "responses": { - "200": { - "description": "API Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/keyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/list-keys.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": [], - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", - "tags": [ - "project" - ], - "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": { - "201": { - "description": "Ephemeral Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/create-ephemeral-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "duration": { - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "type": "integer", - "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": { - "group": "keys", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project key", - "operationId": "projectUpdateKey", - "tags": [ - "project" - ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "project\/update-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "scopes": { - "description": "Key scopes list. Maximum of 200 scopes are allowed.", - "type": "array", - "example": [ - "users.read" - ], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", - "tags": [ - "project" - ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "keys", - "demo": "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key ID.", - "required": true, - "schema": { - "type": "string", - "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": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-labels.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "type": "array", - "example": [ - "production" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/project\/mock-phones": { - "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", - "tags": [ - "project" - ], - "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": "Mock Numbers List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mockNumberList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mocks", - "demo": "project\/list-mock-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "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": { - "group": "mocks", - "demo": "project\/create-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "number": { - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "type": "string", - "example": "+12065550100", - "format": "phone" - }, - "otp": { - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "type": "string", - "example": "<OTP>" - } - }, - "required": [ - "number", - "otp" - ] - } - } - } - } - } - }, - "\/project\/mock-phones\/{number}": { - "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", - "tags": [ - "project" - ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", - "responses": { - "200": { - "description": "Mock Number", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mockNumber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mocks", - "demo": "project\/get-mock-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "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", - "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": { - "group": "mocks", - "demo": "project\/update-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": [], - "Key": [] - } - }, - "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", - "example": "+12065550100" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "otp": { - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "type": "string", - "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": { - "group": "mocks", - "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": [], - "Key": [] - } - }, - "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", - "example": "+12065550100" - }, - "in": "path" - } - ] - } - }, - "\/project\/oauth2": { - "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2ProviderList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/list-o-auth-2-providers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/oauth2-server": { - "put": { - "summary": "Update OAuth2 server", - "operationId": "projectUpdateOAuth2Server", - "tags": [ - "project" - ], - "description": "Update the OAuth2 server (OIDC provider) configuration.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-o-auth-2-server.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Enable or disable the OAuth2 server.", - "type": "boolean", - "example": false - }, - "authorizationUrl": { - "description": "URL to your application with consent screen.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "scopes": { - "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "authorizationDetailsTypes": { - "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "accessTokenDuration": { - "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "refreshTokenDuration": { - "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "publicAccessTokenDuration": { - "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "publicRefreshTokenDuration": { - "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "installationAccessTokenDuration": { - "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "confidentialPkce": { - "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "type": "boolean", - "example": false, - "nullable": true - }, - "verificationUrl": { - "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "userCodeLength": { - "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", - "type": "integer", - "example": 6, - "format": "int32", - "nullable": true - }, - "userCodeFormat": { - "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", - "type": "string", - "default": "alphanumeric", - "example": "numeric" - }, - "deviceCodeDuration": { - "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", - "type": "integer", - "example": 60, - "format": "int32", - "nullable": true - }, - "defaultScopes": { - "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "installationScopes": { - "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - } - }, - "required": [ - "enabled", - "authorizationUrl" - ] - } - } - } - } - } - }, - "\/project\/oauth2\/amazon": { - "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Amazon configuration.", - "responses": { - "200": { - "description": "OAuth2Amazon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-amazon.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/apple": { - "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Apple configuration.", - "responses": { - "200": { - "description": "OAuth2Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Apple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-apple.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "serviceId": { - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "type": "string", - "example": "<SERVICE_ID>", - "nullable": true - }, - "keyId": { - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "type": "string", - "example": "<KEY_ID>", - "nullable": true - }, - "teamId": { - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "type": "string", - "example": "<TEAM_ID>", - "nullable": true - }, - "p8File": { - "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-----", - "type": "string", - "example": "<P8_FILE>", - "nullable": true - }, - "nativeClientIds": { - "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enabled": { - "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", - "type": "boolean", - "example": false, - "nullable": true - }, - "nativeEnabled": { - "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/appwrite": { - "patch": { - "summary": "Update project OAuth2 Appwrite", - "operationId": "projectUpdateOAuth2Appwrite", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Appwrite configuration.", - "responses": { - "200": { - "description": "OAuth2Appwrite", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Appwrite" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-appwrite.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/auth0": { - "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Auth0 configuration.", - "responses": { - "200": { - "description": "OAuth2Auth0", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-auth-0.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "prompt": { - "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", - "type": "array", - "items": { - "title": "ProjectOAuth2Auth0Prompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/authentik": { - "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Authentik configuration.", - "responses": { - "200": { - "description": "OAuth2Authentik", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-authentik.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Authentik instance. For example: example.authentik.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/autodesk": { - "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Autodesk configuration.", - "responses": { - "200": { - "description": "OAuth2Autodesk", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-autodesk.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/bitbucket": { - "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Bitbucket configuration.", - "responses": { - "200": { - "description": "OAuth2Bitbucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-bitbucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "secret": { - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "type": "string", - "example": "<SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/bitly": { - "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Bitly configuration.", - "responses": { - "200": { - "description": "OAuth2Bitly", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-bitly.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/box": { - "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Box configuration.", - "responses": { - "200": { - "description": "OAuth2Box", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Box" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-box.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/cloudflare": { - "patch": { - "summary": "Update project OAuth2 Cloudflare", - "operationId": "projectUpdateOAuth2Cloudflare", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Cloudflare configuration.", - "responses": { - "200": { - "description": "OAuth2Cloudflare", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-cloudflare.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/dailymotion": { - "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Dailymotion configuration.", - "responses": { - "200": { - "description": "OAuth2Dailymotion", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-dailymotion.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "apiKey": { - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "type": "string", - "example": "<API_KEY>", - "nullable": true - }, - "apiSecret": { - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "type": "string", - "example": "<API_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/discord": { - "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Discord configuration.", - "responses": { - "200": { - "description": "OAuth2Discord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Discord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-discord.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", - "type": "array", - "items": { - "title": "ProjectOAuth2DiscordPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/disqus": { - "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Disqus configuration.", - "responses": { - "200": { - "description": "OAuth2Disqus", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-disqus.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "publicKey": { - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "type": "string", - "example": "<PUBLIC_KEY>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/dropbox": { - "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Dropbox configuration.", - "responses": { - "200": { - "description": "OAuth2Dropbox", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-dropbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appKey": { - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "type": "string", - "example": "<APP_KEY>", - "nullable": true - }, - "appSecret": { - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "type": "string", - "example": "<APP_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/etsy": { - "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Etsy configuration.", - "responses": { - "200": { - "description": "OAuth2Etsy", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-etsy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyString": { - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "type": "string", - "example": "<KEY_STRING>", - "nullable": true - }, - "sharedSecret": { - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "type": "string", - "example": "<SHARED_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/facebook": { - "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Facebook configuration.", - "responses": { - "200": { - "description": "OAuth2Facebook", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-facebook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "type": "string", - "example": "<APP_ID>", - "nullable": true - }, - "appSecret": { - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "type": "string", - "example": "<APP_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/figma": { - "patch": { - "summary": "Update project OAuth2 Figma", - "operationId": "projectUpdateOAuth2Figma", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Figma configuration.", - "responses": { - "200": { - "description": "OAuth2Figma", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Figma" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-figma.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/fusionauth": { - "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 FusionAuth configuration.", - "responses": { - "200": { - "description": "OAuth2FusionAuth", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-fusion-auth.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/github": { - "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 GitHub configuration.", - "responses": { - "200": { - "description": "OAuth2GitHub", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Github" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-git-hub.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", - "type": "array", - "items": { - "title": "ProjectOAuth2GitHubPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/gitlab": { - "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Gitlab configuration.", - "responses": { - "200": { - "description": "OAuth2Gitlab", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-gitlab.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "type": "string", - "example": "<APPLICATION_ID>", - "nullable": true - }, - "secret": { - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "type": "string", - "example": "<SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/google": { - "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Google configuration.", - "responses": { - "200": { - "description": "OAuth2Google", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Google" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-google.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "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.", - "type": "array", - "items": { - "title": "ProjectOAuth2GooglePrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "nativeClientIds": { - "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "enabled": { - "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", - "type": "boolean", - "example": false, - "nullable": true - }, - "nativeEnabled": { - "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/huggingface": { - "patch": { - "summary": "Update project OAuth2 Hugging Face", - "operationId": "projectUpdateOAuth2HuggingFace", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Hugging Face configuration.", - "responses": { - "200": { - "description": "OAuth2HuggingFace", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2HuggingFace" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-hugging-face.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/kakao": { - "patch": { - "summary": "Update project OAuth2 Kakao", - "operationId": "projectUpdateOAuth2Kakao", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Kakao configuration.", - "responses": { - "200": { - "description": "OAuth2Kakao", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-kakao.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", - "type": "array", - "items": { - "title": "ProjectOAuth2KakaoPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "create" - ], - "title": "create" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/keycloak": { - "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Keycloak configuration.", - "responses": { - "200": { - "description": "OAuth2Keycloak", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-keycloak.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "endpoint": { - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "type": "string", - "example": "<ENDPOINT>", - "nullable": true - }, - "realmName": { - "description": "Keycloak realm name. For example: appwrite-realm", - "type": "string", - "example": "<REALM_NAME>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/kick": { - "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Kick configuration.", - "responses": { - "200": { - "description": "OAuth2Kick", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kick" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-kick.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/linkedin": { - "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Linkedin configuration.", - "responses": { - "200": { - "description": "OAuth2Linkedin", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-linkedin.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "primaryClientSecret": { - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "type": "string", - "example": "<PRIMARY_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/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": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-microsoft.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "type": "string", - "example": "<APPLICATION_ID>", - "nullable": true - }, - "applicationSecret": { - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "type": "string", - "example": "<APPLICATION_SECRET>", - "nullable": true - }, - "tenant": { - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "type": "string", - "example": "<TENANT>", - "nullable": true - }, - "prompt": { - "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", - "type": "array", - "items": { - "title": "ProjectOAuth2MicrosoftPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/notion": { - "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Notion configuration.", - "responses": { - "200": { - "description": "OAuth2Notion", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Notion" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-notion.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauthClientId": { - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "type": "string", - "example": "<OAUTH_CLIENT_ID>", - "nullable": true - }, - "oauthClientSecret": { - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "type": "string", - "example": "<OAUTH_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/oidc": { - "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Oidc configuration.", - "responses": { - "200": { - "description": "OAuth2Oidc", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-oidc.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "wellKnownURL": { - "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", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "authorizationURL": { - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "tokenURL": { - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "userInfoURL": { - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "prompt": { - "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "type": "array", - "items": { - "title": "ProjectOAuth2OidcPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "nullable": true - }, - "maxAge": { - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Okta configuration.", - "responses": { - "200": { - "description": "OAuth2Okta", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Okta" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-okta.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "domain": { - "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\/", - "type": "string", - "example": "example.com", - "nullable": true - }, - "authorizationServerId": { - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "type": "string", - "example": "<AUTHORIZATION_SERVER_ID>", - "nullable": true - }, - "prompt": { - "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", - "type": "array", - "items": { - "title": "ProjectOAuth2OktaPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/paypal": { - "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Paypal configuration.", - "responses": { - "200": { - "description": "OAuth2Paypal", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-paypal.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", - "responses": { - "200": { - "description": "OAuth2Paypal", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/podio": { - "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Podio configuration.", - "responses": { - "200": { - "description": "OAuth2Podio", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Podio" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-podio.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/resend": { - "patch": { - "summary": "Update project OAuth2 Resend", - "operationId": "projectUpdateOAuth2Resend", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Resend configuration.", - "responses": { - "200": { - "description": "OAuth2Resend", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Resend" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-resend.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Salesforce configuration.", - "responses": { - "200": { - "description": "OAuth2Salesforce", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-salesforce.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "customerKey": { - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "type": "string", - "example": "<CUSTOMER_KEY>", - "nullable": true - }, - "customerSecret": { - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "type": "string", - "example": "<CUSTOMER_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", - "type": "array", - "items": { - "title": "ProjectOAuth2SalesforcePrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Slack configuration.", - "responses": { - "200": { - "description": "OAuth2Slack", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Slack" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-slack.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/spotify": { - "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Spotify configuration.", - "responses": { - "200": { - "description": "OAuth2Spotify", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-spotify.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Stripe configuration.", - "responses": { - "200": { - "description": "OAuth2Stripe", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-stripe.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "apiSecretKey": { - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "type": "string", - "example": "<API_SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tiktok": { - "patch": { - "summary": "Update project OAuth2 TikTok", - "operationId": "projectUpdateOAuth2TikTok", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 TikTok configuration.", - "responses": { - "200": { - "description": "OAuth2TikTok", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tik-tok.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Tradeshift configuration.", - "responses": { - "200": { - "description": "OAuth2Tradeshift", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "type": "string", - "example": "<OAUTH2_CLIENT_ID>", - "nullable": true - }, - "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "type": "string", - "example": "<OAUTH2_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", - "responses": { - "200": { - "description": "OAuth2Tradeshift", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "type": "string", - "example": "<OAUTH2_CLIENT_ID>", - "nullable": true - }, - "oauth2ClientSecret": { - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "type": "string", - "example": "<OAUTH2_CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Twitch configuration.", - "responses": { - "200": { - "description": "OAuth2Twitch", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-twitch.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/webflow": { - "patch": { - "summary": "Update project OAuth2 Webflow", - "operationId": "projectUpdateOAuth2Webflow", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Webflow configuration.", - "responses": { - "200": { - "description": "OAuth2Webflow", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Webflow" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-webflow.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 WordPress configuration.", - "responses": { - "200": { - "description": "OAuth2WordPress", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2WordPress" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-word-press.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/x": { - "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 X configuration.", - "responses": { - "200": { - "description": "OAuth2X", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2X" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2x.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "customerKey": { - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "type": "string", - "example": "<CUSTOMER_KEY>", - "nullable": true - }, - "secretKey": { - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "type": "string", - "example": "<SECRET_KEY>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/yahoo": { - "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Yahoo configuration.", - "responses": { - "200": { - "description": "OAuth2Yahoo", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-yahoo.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/yandex": { - "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Yandex configuration.", - "responses": { - "200": { - "description": "OAuth2Yandex", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yandex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-yandex.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/zoho": { - "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Zoho configuration.", - "responses": { - "200": { - "description": "OAuth2Zoho", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoho" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "prompt": { - "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", - "type": "array", - "items": { - "title": "ProjectOAuth2ZohoPrompt", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "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": { - "group": "oauth2", - "demo": "project\/update-o-auth-2-zoom.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "type": "string", - "example": "<CLIENT_ID>", - "nullable": true - }, - "clientSecret": { - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "type": "string", - "example": "<CLIENT_SECRET>", - "nullable": true - }, - "enabled": { - "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.", - "type": "boolean", - "example": false, - "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 OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, 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, or OAuth2TikTok, or OAuth2Kakao", - "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\/oAuth2Webflow" - }, - { - "$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\/oAuth2HuggingFace" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Resend" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - }, - { - "$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" - }, - { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - ], - "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", - "webflow": "#\/components\/schemas\/oAuth2Webflow", - "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", - "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", - "resend": "#\/components\/schemas\/oAuth2Resend", - "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", - "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", - "tiktok": "#\/components\/schemas\/oAuth2TikTok", - "kakao": "#\/components\/schemas\/oAuth2Kakao" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "oauth2", - "demo": "project\/get-o-auth-2-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.oauth2.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "OAuth2 provider key. For example: github, google, apple.", - "required": true, - "schema": { - "type": "string", - "example": "amazon", - "title": "ProjectOAuthProviderId", - "oneOf": [ - { - "type": "string", - "enum": [ - "amazon" - ], - "title": "amazon" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "appwrite" - ], - "title": "appwrite" - }, - { - "type": "string", - "enum": [ - "auth0" - ], - "title": "auth0" - }, - { - "type": "string", - "enum": [ - "authentik" - ], - "title": "authentik" - }, - { - "type": "string", - "enum": [ - "autodesk" - ], - "title": "autodesk" - }, - { - "type": "string", - "enum": [ - "bitbucket" - ], - "title": "bitbucket" - }, - { - "type": "string", - "enum": [ - "bitly" - ], - "title": "bitly" - }, - { - "type": "string", - "enum": [ - "box" - ], - "title": "box" - }, - { - "type": "string", - "enum": [ - "cloudflare" - ], - "title": "cloudflare" - }, - { - "type": "string", - "enum": [ - "dailymotion" - ], - "title": "dailymotion" - }, - { - "type": "string", - "enum": [ - "discord" - ], - "title": "discord" - }, - { - "type": "string", - "enum": [ - "disqus" - ], - "title": "disqus" - }, - { - "type": "string", - "enum": [ - "dropbox" - ], - "title": "dropbox" - }, - { - "type": "string", - "enum": [ - "etsy" - ], - "title": "etsy" - }, - { - "type": "string", - "enum": [ - "facebook" - ], - "title": "facebook" - }, - { - "type": "string", - "enum": [ - "figma" - ], - "title": "figma" - }, - { - "type": "string", - "enum": [ - "fusionauth" - ], - "title": "fusionauth" - }, - { - "type": "string", - "enum": [ - "github" - ], - "title": "github" - }, - { - "type": "string", - "enum": [ - "gitlab" - ], - "title": "gitlab" - }, - { - "type": "string", - "enum": [ - "google" - ], - "title": "google" - }, - { - "type": "string", - "enum": [ - "huggingface" - ], - "title": "huggingface" - }, - { - "type": "string", - "enum": [ - "kakao" - ], - "title": "kakao" - }, - { - "type": "string", - "enum": [ - "keycloak" - ], - "title": "keycloak" - }, - { - "type": "string", - "enum": [ - "kick" - ], - "title": "kick" - }, - { - "type": "string", - "enum": [ - "linkedin" - ], - "title": "linkedin" - }, - { - "type": "string", - "enum": [ - "microsoft" - ], - "title": "microsoft" - }, - { - "type": "string", - "enum": [ - "notion" - ], - "title": "notion" - }, - { - "type": "string", - "enum": [ - "oidc" - ], - "title": "oidc" - }, - { - "type": "string", - "enum": [ - "okta" - ], - "title": "okta" - }, - { - "type": "string", - "enum": [ - "paypal" - ], - "title": "paypal" - }, - { - "type": "string", - "enum": [ - "paypalSandbox" - ], - "title": "paypalSandbox" - }, - { - "type": "string", - "enum": [ - "podio" - ], - "title": "podio" - }, - { - "type": "string", - "enum": [ - "resend" - ], - "title": "resend" - }, - { - "type": "string", - "enum": [ - "salesforce" - ], - "title": "salesforce" - }, - { - "type": "string", - "enum": [ - "slack" - ], - "title": "slack" - }, - { - "type": "string", - "enum": [ - "spotify" - ], - "title": "spotify" - }, - { - "type": "string", - "enum": [ - "stripe" - ], - "title": "stripe" - }, - { - "type": "string", - "enum": [ - "tiktok" - ], - "title": "tiktok" - }, - { - "type": "string", - "enum": [ - "tradeshift" - ], - "title": "tradeshift" - }, - { - "type": "string", - "enum": [ - "tradeshiftBox" - ], - "title": "tradeshiftBox" - }, - { - "type": "string", - "enum": [ - "twitch" - ], - "title": "twitch" - }, - { - "type": "string", - "enum": [ - "webflow" - ], - "title": "webflow" - }, - { - "type": "string", - "enum": [ - "wordpress" - ], - "title": "wordpress" - }, - { - "type": "string", - "enum": [ - "x" - ], - "title": "x" - }, - { - "type": "string", - "enum": [ - "yahoo" - ], - "title": "yahoo" - }, - { - "type": "string", - "enum": [ - "yammer" - ], - "title": "yammer" - }, - { - "type": "string", - "enum": [ - "yandex" - ], - "title": "yandex" - }, - { - "type": "string", - "enum": [ - "zoho" - ], - "title": "zoho" - }, - { - "type": "string", - "enum": [ - "zoom" - ], - "title": "zoom" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", - "tags": [ - "project" - ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", - "responses": { - "200": { - "description": "Platforms List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/list-platforms.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.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: 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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/platforms\/android": { - "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Android", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-android-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "applicationId": { - "description": "Android application ID. Max length: 256 chars.", - "type": "string", - "example": "<APPLICATION_ID>" - } - }, - "required": [ - "platformId", - "name", - "applicationId" - ] - } - } - } - } - } - }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", - "tags": [ - "project" - ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", - "responses": { - "200": { - "description": "Platform Android", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-android-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "applicationId": { - "description": "Android application ID. Max length: 256 chars.", - "type": "string", - "example": "<APPLICATION_ID>" - } - }, - "required": [ - "name", - "applicationId" - ] - } - } - } - } - } - }, - "\/project\/platforms\/apple": { - "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", - "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.", - "responses": { - "201": { - "description": "Platform Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformApple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-apple-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "bundleIdentifier": { - "description": "Apple bundle identifier. Max length: 256 chars.", - "type": "string", - "example": "<BUNDLE_IDENTIFIER>" - } - }, - "required": [ - "platformId", - "name", - "bundleIdentifier" - ] - } - } - } - } - } - }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", - "tags": [ - "project" - ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", - "responses": { - "200": { - "description": "Platform Apple", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformApple" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-apple-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "bundleIdentifier": { - "description": "Apple bundle identifier. Max length: 256 chars.", - "type": "string", - "example": "<BUNDLE_IDENTIFIER>" - } - }, - "required": [ - "name", - "bundleIdentifier" - ] - } - } - } - } - } - }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Linux", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformLinux" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-linux-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageName": { - "description": "Linux package name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_NAME>" - } - }, - "required": [ - "platformId", - "name", - "packageName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", - "tags": [ - "project" - ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", - "responses": { - "200": { - "description": "Platform Linux", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformLinux" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-linux-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageName": { - "description": "Linux package name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_NAME>" - } - }, - "required": [ - "name", - "packageName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Web", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWeb" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-web-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "hostname": { - "description": "Platform web hostname. Max length: 256 chars.", - "type": "string", - "example": "app.example.com" - } - }, - "required": [ - "platformId", - "name", - "hostname" - ] - } - } - } - } - } - }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", - "tags": [ - "project" - ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", - "responses": { - "200": { - "description": "Platform Web", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWeb" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-web-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "hostname": { - "description": "Platform web hostname. Max length: 256 chars.", - "type": "string", - "example": "app.example.com" - } - }, - "required": [ - "name", - "hostname" - ] - } - } - } - } - } - }, - "\/project\/platforms\/windows": { - "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", - "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.", - "responses": { - "201": { - "description": "Platform Windows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/create-windows-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "platformId": { - "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.", - "type": "string", - "example": "<PLATFORM_ID>" - }, - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageIdentifierName": { - "description": "Windows package identifier name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_IDENTIFIER_NAME>" - } - }, - "required": [ - "platformId", - "name", - "packageIdentifierName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", - "tags": [ - "project" - ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", - "responses": { - "200": { - "description": "Platform Windows", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/platformWindows" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/update-windows-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Platform name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "packageIdentifierName": { - "description": "Windows package identifier name. Max length: 256 chars.", - "type": "string", - "example": "<PACKAGE_IDENTIFIER_NAME>" - } - }, - "required": [ - "name", - "packageIdentifierName" - ] - } - } - } - } - } - }, - "\/project\/platforms\/{platformId}": { - "get": { - "summary": "Get project platform", - "operationId": "projectGetPlatform", - "tags": [ - "project" - ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", - "responses": { - "200": { - "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", - "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" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "platforms", - "demo": "project\/get-platform.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "example": "<PLATFORM_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", - "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": { - "group": "platforms", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "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.", - "responses": { - "200": { - "description": "Policies List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/policyList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/list-policies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/project\/policies\/deny-aliased-email": { - "patch": { - "summary": "Update deny aliased email policy", - "operationId": "projectUpdateDenyAliasedEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block aliased emails during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-corporate-email": { - "patch": { - "summary": "Update deny non-corporate email policy", - "operationId": "projectUpdateDenyCorporateEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-deny-corporate-email-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-disposable-email": { - "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/deny-free-email": { - "patch": { - "summary": "Update deny free email policy", - "operationId": "projectUpdateDenyFreeEmailPolicy", - "tags": [ - "project" - ], - "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Set whether or not to block free email addresses during signup and email updates.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/membership-privacy": { - "patch": { - "summary": "Update membership privacy policy", - "operationId": "projectUpdateMembershipPrivacyPolicy", - "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..", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userEmail": { - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userPhone": { - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userName": { - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userMFA": { - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - }, - "userAccessedAt": { - "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/mfa-factors": { - "patch": { - "summary": "Update MFA factors policy", - "operationId": "projectUpdateMFAFactorsPolicy", - "tags": [ - "project" - ], - "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-mfa-factors-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "totp": { - "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "email": { - "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "phone": { - "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - }, - "custom": { - "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/password-dictionary": { - "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-dictionary-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-history": { - "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-history-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - } - }, - "required": [ - "total" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-personal-data": { - "patch": { - "summary": "Update password personal data policy", - "operationId": "projectUpdatePasswordPersonalDataPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-personal-data-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/password-pwned": { - "patch": { - "summary": "Update password pwned policy", - "operationId": "projectUpdatePasswordPwnedPolicy", - "tags": [ - "project" - ], - "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-pwned-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", - "type": "boolean", - "example": false - }, - "sessions": { - "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", - "type": "boolean", - "example": false - }, - "users": { - "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/password-strength": { - "patch": { - "summary": "Update password strength policy", - "operationId": "projectUpdatePasswordStrengthPolicy", - "tags": [ - "project" - ], - "description": "Update the password strength requirements for users in the project.", - "responses": { - "200": { - "description": "Policy Password Strength", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-password-strength-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "min": { - "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", - "type": "integer", - "example": 8, - "format": "int32" - }, - "uppercase": { - "description": "Whether passwords must include at least one uppercase letter.", - "type": "boolean", - "example": false - }, - "lowercase": { - "description": "Whether passwords must include at least one lowercase letter.", - "type": "boolean", - "example": false - }, - "number": { - "description": "Whether passwords must include at least one number.", - "type": "boolean", - "example": false - }, - "symbols": { - "description": "Whether passwords must include at least one symbol.", - "type": "boolean", - "example": false - } - } - } - } - } - } - } - }, - "\/project\/policies\/session-alert": { - "patch": { - "summary": "Update session alert policy", - "operationId": "projectUpdateSessionAlertPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-session-alert-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/policies\/session-duration": { - "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", - "tags": [ - "project" - ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/update-session-duration-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", - "type": "integer", - "example": 60, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } - } - } - } - } - }, - "\/project\/policies\/session-invalidation": { - "patch": { - "summary": "Update session invalidation policy", - "operationId": "projectUpdateSessionInvalidationPolicy", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "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.", - "type": "boolean", - "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": { - "group": "policies", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", - "type": "integer", - "example": 1, - "format": "int32" - } - }, - "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": { - "group": "policies", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "total": { - "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - } - }, - "required": [ - "total" - ] - } - } - } - } - } - }, - "\/project\/policies\/{policyId}": { - "get": { - "summary": "Get project policy", - "operationId": "projectGetPolicy", - "tags": [ - "project" - ], - "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", - "responses": { - "200": { - "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", - "content": { - "application\/json": { - "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPwned" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$ref": "#\/components\/schemas\/policyMfaFactors" - }, - { - "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyFreeEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", - "password-history": "#\/components\/schemas\/policyPasswordHistory", - "password-strength": "#\/components\/schemas\/policyPasswordStrength", - "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", - "password-pwned": "#\/components\/schemas\/policyPasswordPwned", - "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", - "mfa-factors": "#\/components\/schemas\/policyMfaFactors", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "policies", - "demo": "project\/get-policy.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", - "required": true, - "schema": { - "type": "string", - "example": "password-dictionary", - "title": "ProjectPolicyId", - "oneOf": [ - { - "type": "string", - "enum": [ - "password-dictionary" - ], - "title": "password-dictionary" - }, - { - "type": "string", - "enum": [ - "password-history" - ], - "title": "password-history" - }, - { - "type": "string", - "enum": [ - "password-strength" - ], - "title": "password-strength" - }, - { - "type": "string", - "enum": [ - "password-personal-data" - ], - "title": "password-personal-data" - }, - { - "type": "string", - "enum": [ - "password-pwned" - ], - "title": "password-pwned" - }, - { - "type": "string", - "enum": [ - "session-alert" - ], - "title": "session-alert" - }, - { - "type": "string", - "enum": [ - "session-duration" - ], - "title": "session-duration" - }, - { - "type": "string", - "enum": [ - "session-invalidation" - ], - "title": "session-invalidation" - }, - { - "type": "string", - "enum": [ - "session-limit" - ], - "title": "session-limit" - }, - { - "type": "string", - "enum": [ - "user-limit" - ], - "title": "user-limit" - }, - { - "type": "string", - "enum": [ - "membership-privacy" - ], - "title": "membership-privacy" - }, - { - "type": "string", - "enum": [ - "mfa-factors" - ], - "title": "mfa-factors" - }, - { - "type": "string", - "enum": [ - "deny-aliased-email" - ], - "title": "deny-aliased-email" - }, - { - "type": "string", - "enum": [ - "deny-disposable-email" - ], - "title": "deny-disposable-email" - }, - { - "type": "string", - "enum": [ - "deny-free-email" - ], - "title": "deny-free-email" - }, - { - "type": "string", - "enum": [ - "deny-corporate-email" - ], - "title": "deny-corporate-email" - } - ] - }, - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "protocolId", - "description": "Protocol name. Can be one of: rest, graphql, websocket", - "required": true, - "schema": { - "type": "string", - "example": "rest", - "title": "ProjectProtocolId", - "oneOf": [ - { - "type": "string", - "enum": [ - "rest" - ], - "title": "rest" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "websocket" - ], - "title": "websocket" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Protocol status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/services\/{serviceId}": { - "patch": { - "summary": "Update project service", - "operationId": "projectUpdateService", - "tags": [ - "project" - ], - "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/update-service.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "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, oauth2", - "required": true, - "schema": { - "type": "string", - "example": "account", - "title": "ProjectServiceId", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "avatars" - ], - "title": "avatars" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "locale" - ], - "title": "locale" - }, - { - "type": "string", - "enum": [ - "health" - ], - "title": "health" - }, - { - "type": "string", - "enum": [ - "project" - ], - "title": "project" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "vcs" - ], - "title": "vcs" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "proxy" - ], - "title": "proxy" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "migrations" - ], - "title": "migrations" - }, - { - "type": "string", - "enum": [ - "messaging" - ], - "title": "messaging" - }, - { - "type": "string", - "enum": [ - "advisor" - ], - "title": "advisor" - }, - { - "type": "string", - "enum": [ - "oauth2" - ], - "title": "oauth2" - } - ] - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "description": "Service status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/project\/smtp": { - "patch": { - "summary": "Update project SMTP configuration", - "operationId": "projectUpdateSMTP", - "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.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "smtp", - "demo": "project\/update-smtp.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "host": { - "description": "SMTP server hostname (domain)", - "type": "string", - "example": "example.com", - "nullable": true - }, - "port": { - "description": "SMTP server port", - "type": "integer", - "example": 587, - "format": "int32", - "nullable": true - }, - "username": { - "description": "SMTP server username. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<USERNAME>", - "nullable": true - }, - "password": { - "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).", - "type": "string", - "example": "password", - "format": "password", - "nullable": true - }, - "senderEmail": { - "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "senderName": { - "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<SENDER_NAME>", - "nullable": true - }, - "replyToEmail": { - "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "nullable": true - }, - "secure": { - "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "type": "string", - "example": "tls", - "title": "ProjectSMTPSecure", - "oneOf": [ - { - "type": "string", - "enum": [ - "tls" - ], - "title": "tls" - }, - { - "type": "string", - "enum": [ - "ssl" - ], - "title": "ssl" - } - ], - "nullable": true - }, - "enabled": { - "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - } - }, - "\/project\/smtp\/tests": { - "post": { - "summary": "Create project SMTP test", - "operationId": "projectCreateSMTPTest", - "tags": [ - "project" - ], - "description": "Send a test email to verify SMTP configuration. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "smtp", - "demo": "project\/create-smtp-test.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emails": { - "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", - "type": "array", - "example": [ - "recipient@example.com" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "emails" - ] - } - } - } - } - } - }, - "\/project\/templates\/email": { - "get": { - "summary": "List project email templates", - "operationId": "projectListEmailTemplates", - "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.", - "responses": { - "200": { - "description": "Email Templates List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/emailTemplateList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "project\/list-email-templates.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": [], - "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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "patch": { - "summary": "Update project email template", - "operationId": "projectUpdateEmailTemplate", - "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.", - "responses": { - "200": { - "description": "EmailTemplate", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "templates", - "demo": "project\/update-email-template.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "templates.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "templateId": { - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", - "type": "string", - "example": "verification", - "title": "ProjectEmailTemplateId", - "oneOf": [ - { - "type": "string", - "enum": [ - "verification" - ], - "title": "verification" - }, - { - "type": "string", - "enum": [ - "magicSession" - ], - "title": "magicSession" - }, - { - "type": "string", - "enum": [ - "recovery" - ], - "title": "recovery" - }, - { - "type": "string", - "enum": [ - "invitation" - ], - "title": "invitation" - }, - { - "type": "string", - "enum": [ - "mfaChallenge" - ], - "title": "mfaChallenge" - }, - { - "type": "string", - "enum": [ - "sessionAlert" - ], - "title": "sessionAlert" - }, - { - "type": "string", - "enum": [ - "otpSession" - ], - "title": "otpSession" - }, - { - "type": "string", - "enum": [ - "otpVerification" - ], - "title": "otpVerification" - }, - { - "type": "string", - "enum": [ - "otpRecovery" - ], - "title": "otpRecovery" - } - ] - }, - "locale": { - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "type": "string", - "example": "af", - "title": "ProjectEmailTemplateLocale", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "af" - }, - { - "type": "string", - "enum": [ - "ar-ae" - ], - "title": "ar-ae" - }, - { - "type": "string", - "enum": [ - "ar-bh" - ], - "title": "ar-bh" - }, - { - "type": "string", - "enum": [ - "ar-dz" - ], - "title": "ar-dz" - }, - { - "type": "string", - "enum": [ - "ar-eg" - ], - "title": "ar-eg" - }, - { - "type": "string", - "enum": [ - "ar-iq" - ], - "title": "ar-iq" - }, - { - "type": "string", - "enum": [ - "ar-jo" - ], - "title": "ar-jo" - }, - { - "type": "string", - "enum": [ - "ar-kw" - ], - "title": "ar-kw" - }, - { - "type": "string", - "enum": [ - "ar-lb" - ], - "title": "ar-lb" - }, - { - "type": "string", - "enum": [ - "ar-ly" - ], - "title": "ar-ly" - }, - { - "type": "string", - "enum": [ - "ar-ma" - ], - "title": "ar-ma" - }, - { - "type": "string", - "enum": [ - "ar-om" - ], - "title": "ar-om" - }, - { - "type": "string", - "enum": [ - "ar-qa" - ], - "title": "ar-qa" - }, - { - "type": "string", - "enum": [ - "ar-sa" - ], - "title": "ar-sa" - }, - { - "type": "string", - "enum": [ - "ar-sy" - ], - "title": "ar-sy" - }, - { - "type": "string", - "enum": [ - "ar-tn" - ], - "title": "ar-tn" - }, - { - "type": "string", - "enum": [ - "ar-ye" - ], - "title": "ar-ye" - }, - { - "type": "string", - "enum": [ - "as" - ], - "title": "as" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "az" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "be" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "bg" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "bh" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "bn" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "bs" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "ca" - }, - { - "type": "string", - "enum": [ - "cs" - ], - "title": "cs" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "cy" - }, - { - "type": "string", - "enum": [ - "da" - ], - "title": "da" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "de" - }, - { - "type": "string", - "enum": [ - "de-at" - ], - "title": "de-at" - }, - { - "type": "string", - "enum": [ - "de-ch" - ], - "title": "de-ch" - }, - { - "type": "string", - "enum": [ - "de-li" - ], - "title": "de-li" - }, - { - "type": "string", - "enum": [ - "de-lu" - ], - "title": "de-lu" - }, - { - "type": "string", - "enum": [ - "el" - ], - "title": "el" - }, - { - "type": "string", - "enum": [ - "en" - ], - "title": "en" - }, - { - "type": "string", - "enum": [ - "en-au" - ], - "title": "en-au" - }, - { - "type": "string", - "enum": [ - "en-bz" - ], - "title": "en-bz" - }, - { - "type": "string", - "enum": [ - "en-ca" - ], - "title": "en-ca" - }, - { - "type": "string", - "enum": [ - "en-gb" - ], - "title": "en-gb" - }, - { - "type": "string", - "enum": [ - "en-ie" - ], - "title": "en-ie" - }, - { - "type": "string", - "enum": [ - "en-jm" - ], - "title": "en-jm" - }, - { - "type": "string", - "enum": [ - "en-nz" - ], - "title": "en-nz" - }, - { - "type": "string", - "enum": [ - "en-tt" - ], - "title": "en-tt" - }, - { - "type": "string", - "enum": [ - "en-us" - ], - "title": "en-us" - }, - { - "type": "string", - "enum": [ - "en-za" - ], - "title": "en-za" - }, - { - "type": "string", - "enum": [ - "eo" - ], - "title": "eo" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "es" - }, - { - "type": "string", - "enum": [ - "es-ar" - ], - "title": "es-ar" - }, - { - "type": "string", - "enum": [ - "es-bo" - ], - "title": "es-bo" - }, - { - "type": "string", - "enum": [ - "es-cl" - ], - "title": "es-cl" - }, - { - "type": "string", - "enum": [ - "es-co" - ], - "title": "es-co" - }, - { - "type": "string", - "enum": [ - "es-cr" - ], - "title": "es-cr" - }, - { - "type": "string", - "enum": [ - "es-do" - ], - "title": "es-do" - }, - { - "type": "string", - "enum": [ - "es-ec" - ], - "title": "es-ec" - }, - { - "type": "string", - "enum": [ - "es-gt" - ], - "title": "es-gt" - }, - { - "type": "string", - "enum": [ - "es-hn" - ], - "title": "es-hn" - }, - { - "type": "string", - "enum": [ - "es-mx" - ], - "title": "es-mx" - }, - { - "type": "string", - "enum": [ - "es-ni" - ], - "title": "es-ni" - }, - { - "type": "string", - "enum": [ - "es-pa" - ], - "title": "es-pa" - }, - { - "type": "string", - "enum": [ - "es-pe" - ], - "title": "es-pe" - }, - { - "type": "string", - "enum": [ - "es-pr" - ], - "title": "es-pr" - }, - { - "type": "string", - "enum": [ - "es-py" - ], - "title": "es-py" - }, - { - "type": "string", - "enum": [ - "es-sv" - ], - "title": "es-sv" - }, - { - "type": "string", - "enum": [ - "es-uy" - ], - "title": "es-uy" - }, - { - "type": "string", - "enum": [ - "es-ve" - ], - "title": "es-ve" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "et" - }, - { - "type": "string", - "enum": [ - "eu" - ], - "title": "eu" - }, - { - "type": "string", - "enum": [ - "fa" - ], - "title": "fa" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "fi" - }, - { - "type": "string", - "enum": [ - "fo" - ], - "title": "fo" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "fr" - }, - { - "type": "string", - "enum": [ - "fr-be" - ], - "title": "fr-be" - }, - { - "type": "string", - "enum": [ - "fr-ca" - ], - "title": "fr-ca" - }, - { - "type": "string", - "enum": [ - "fr-ch" - ], - "title": "fr-ch" - }, - { - "type": "string", - "enum": [ - "fr-lu" - ], - "title": "fr-lu" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "ga" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "gd" - }, - { - "type": "string", - "enum": [ - "he" - ], - "title": "he" - }, - { - "type": "string", - "enum": [ - "hi" - ], - "title": "hi" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "hr" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "hu" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "id" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "is" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "it" - }, - { - "type": "string", - "enum": [ - "it-ch" - ], - "title": "it-ch" - }, - { - "type": "string", - "enum": [ - "ja" - ], - "title": "ja" - }, - { - "type": "string", - "enum": [ - "ji" - ], - "title": "ji" - }, - { - "type": "string", - "enum": [ - "ko" - ], - "title": "ko" - }, - { - "type": "string", - "enum": [ - "ku" - ], - "title": "ku" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "lt" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "lv" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "mk" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "ml" - }, - { - "type": "string", - "enum": [ - "ms" - ], - "title": "ms" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "mt" - }, - { - "type": "string", - "enum": [ - "nb" - ], - "title": "nb" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "ne" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "nl" - }, - { - "type": "string", - "enum": [ - "nl-be" - ], - "title": "nl-be" - }, - { - "type": "string", - "enum": [ - "nn" - ], - "title": "nn" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "no" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "pa" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "pl" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "pt" - }, - { - "type": "string", - "enum": [ - "pt-br" - ], - "title": "pt-br" - }, - { - "type": "string", - "enum": [ - "rm" - ], - "title": "rm" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "ro" - }, - { - "type": "string", - "enum": [ - "ro-md" - ], - "title": "ro-md" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "ru" - }, - { - "type": "string", - "enum": [ - "ru-md" - ], - "title": "ru-md" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "sb" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "sk" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "sl" - }, - { - "type": "string", - "enum": [ - "sq" - ], - "title": "sq" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "sr" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "sv" - }, - { - "type": "string", - "enum": [ - "sv-fi" - ], - "title": "sv-fi" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "th" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "tn" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "tr" - }, - { - "type": "string", - "enum": [ - "ts" - ], - "title": "ts" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "ua" - }, - { - "type": "string", - "enum": [ - "ur" - ], - "title": "ur" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "ve" - }, - { - "type": "string", - "enum": [ - "vi" - ], - "title": "vi" - }, - { - "type": "string", - "enum": [ - "xh" - ], - "title": "xh" - }, - { - "type": "string", - "enum": [ - "zh-cn" - ], - "title": "zh-cn" - }, - { - "type": "string", - "enum": [ - "zh-hk" - ], - "title": "zh-hk" - }, - { - "type": "string", - "enum": [ - "zh-sg" - ], - "title": "zh-sg" - }, - { - "type": "string", - "enum": [ - "zh-tw" - ], - "title": "zh-tw" - }, - { - "type": "string", - "enum": [ - "zu" - ], - "title": "zu" - } - ] - }, - "subject": { - "description": "Subject of the email template. Can be up to 255 characters.", - "type": "string", - "example": "<SUBJECT>", - "nullable": true - }, - "message": { - "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "type": "string", - "example": "<MESSAGE>", - "nullable": true - }, - "senderName": { - "description": "Name of the email sender.", - "type": "string", - "example": "<SENDER_NAME>", - "nullable": true - }, - "senderEmail": { - "description": "Email of the sender. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToEmail": { - "description": "Reply to email. Pass an empty string to clear a previously set value.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "replyToName": { - "description": "Reply to name.", - "type": "string", - "example": "<REPLY_TO_NAME>", - "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": { - "group": "templates", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", - "required": true, - "schema": { - "type": "string", - "example": "verification", - "title": "ProjectEmailTemplateId", - "oneOf": [ - { - "type": "string", - "enum": [ - "verification" - ], - "title": "verification" - }, - { - "type": "string", - "enum": [ - "magicSession" - ], - "title": "magicSession" - }, - { - "type": "string", - "enum": [ - "recovery" - ], - "title": "recovery" - }, - { - "type": "string", - "enum": [ - "invitation" - ], - "title": "invitation" - }, - { - "type": "string", - "enum": [ - "mfaChallenge" - ], - "title": "mfaChallenge" - }, - { - "type": "string", - "enum": [ - "sessionAlert" - ], - "title": "sessionAlert" - }, - { - "type": "string", - "enum": [ - "otpSession" - ], - "title": "otpSession" - }, - { - "type": "string", - "enum": [ - "otpVerification" - ], - "title": "otpVerification" - }, - { - "type": "string", - "enum": [ - "otpRecovery" - ], - "title": "otpRecovery" - } - ] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "schema": { - "type": "string", - "example": "af", - "title": "ProjectEmailTemplateLocale", - "oneOf": [ - { - "type": "string", - "enum": [ - "af" - ], - "title": "af" - }, - { - "type": "string", - "enum": [ - "ar-ae" - ], - "title": "ar-ae" - }, - { - "type": "string", - "enum": [ - "ar-bh" - ], - "title": "ar-bh" - }, - { - "type": "string", - "enum": [ - "ar-dz" - ], - "title": "ar-dz" - }, - { - "type": "string", - "enum": [ - "ar-eg" - ], - "title": "ar-eg" - }, - { - "type": "string", - "enum": [ - "ar-iq" - ], - "title": "ar-iq" - }, - { - "type": "string", - "enum": [ - "ar-jo" - ], - "title": "ar-jo" - }, - { - "type": "string", - "enum": [ - "ar-kw" - ], - "title": "ar-kw" - }, - { - "type": "string", - "enum": [ - "ar-lb" - ], - "title": "ar-lb" - }, - { - "type": "string", - "enum": [ - "ar-ly" - ], - "title": "ar-ly" - }, - { - "type": "string", - "enum": [ - "ar-ma" - ], - "title": "ar-ma" - }, - { - "type": "string", - "enum": [ - "ar-om" - ], - "title": "ar-om" - }, - { - "type": "string", - "enum": [ - "ar-qa" - ], - "title": "ar-qa" - }, - { - "type": "string", - "enum": [ - "ar-sa" - ], - "title": "ar-sa" - }, - { - "type": "string", - "enum": [ - "ar-sy" - ], - "title": "ar-sy" - }, - { - "type": "string", - "enum": [ - "ar-tn" - ], - "title": "ar-tn" - }, - { - "type": "string", - "enum": [ - "ar-ye" - ], - "title": "ar-ye" - }, - { - "type": "string", - "enum": [ - "as" - ], - "title": "as" - }, - { - "type": "string", - "enum": [ - "az" - ], - "title": "az" - }, - { - "type": "string", - "enum": [ - "be" - ], - "title": "be" - }, - { - "type": "string", - "enum": [ - "bg" - ], - "title": "bg" - }, - { - "type": "string", - "enum": [ - "bh" - ], - "title": "bh" - }, - { - "type": "string", - "enum": [ - "bn" - ], - "title": "bn" - }, - { - "type": "string", - "enum": [ - "bs" - ], - "title": "bs" - }, - { - "type": "string", - "enum": [ - "ca" - ], - "title": "ca" - }, - { - "type": "string", - "enum": [ - "cs" - ], - "title": "cs" - }, - { - "type": "string", - "enum": [ - "cy" - ], - "title": "cy" - }, - { - "type": "string", - "enum": [ - "da" - ], - "title": "da" - }, - { - "type": "string", - "enum": [ - "de" - ], - "title": "de" - }, - { - "type": "string", - "enum": [ - "de-at" - ], - "title": "de-at" - }, - { - "type": "string", - "enum": [ - "de-ch" - ], - "title": "de-ch" - }, - { - "type": "string", - "enum": [ - "de-li" - ], - "title": "de-li" - }, - { - "type": "string", - "enum": [ - "de-lu" - ], - "title": "de-lu" - }, - { - "type": "string", - "enum": [ - "el" - ], - "title": "el" - }, - { - "type": "string", - "enum": [ - "en" - ], - "title": "en" - }, - { - "type": "string", - "enum": [ - "en-au" - ], - "title": "en-au" - }, - { - "type": "string", - "enum": [ - "en-bz" - ], - "title": "en-bz" - }, - { - "type": "string", - "enum": [ - "en-ca" - ], - "title": "en-ca" - }, - { - "type": "string", - "enum": [ - "en-gb" - ], - "title": "en-gb" - }, - { - "type": "string", - "enum": [ - "en-ie" - ], - "title": "en-ie" - }, - { - "type": "string", - "enum": [ - "en-jm" - ], - "title": "en-jm" - }, - { - "type": "string", - "enum": [ - "en-nz" - ], - "title": "en-nz" - }, - { - "type": "string", - "enum": [ - "en-tt" - ], - "title": "en-tt" - }, - { - "type": "string", - "enum": [ - "en-us" - ], - "title": "en-us" - }, - { - "type": "string", - "enum": [ - "en-za" - ], - "title": "en-za" - }, - { - "type": "string", - "enum": [ - "eo" - ], - "title": "eo" - }, - { - "type": "string", - "enum": [ - "es" - ], - "title": "es" - }, - { - "type": "string", - "enum": [ - "es-ar" - ], - "title": "es-ar" - }, - { - "type": "string", - "enum": [ - "es-bo" - ], - "title": "es-bo" - }, - { - "type": "string", - "enum": [ - "es-cl" - ], - "title": "es-cl" - }, - { - "type": "string", - "enum": [ - "es-co" - ], - "title": "es-co" - }, - { - "type": "string", - "enum": [ - "es-cr" - ], - "title": "es-cr" - }, - { - "type": "string", - "enum": [ - "es-do" - ], - "title": "es-do" - }, - { - "type": "string", - "enum": [ - "es-ec" - ], - "title": "es-ec" - }, - { - "type": "string", - "enum": [ - "es-gt" - ], - "title": "es-gt" - }, - { - "type": "string", - "enum": [ - "es-hn" - ], - "title": "es-hn" - }, - { - "type": "string", - "enum": [ - "es-mx" - ], - "title": "es-mx" - }, - { - "type": "string", - "enum": [ - "es-ni" - ], - "title": "es-ni" - }, - { - "type": "string", - "enum": [ - "es-pa" - ], - "title": "es-pa" - }, - { - "type": "string", - "enum": [ - "es-pe" - ], - "title": "es-pe" - }, - { - "type": "string", - "enum": [ - "es-pr" - ], - "title": "es-pr" - }, - { - "type": "string", - "enum": [ - "es-py" - ], - "title": "es-py" - }, - { - "type": "string", - "enum": [ - "es-sv" - ], - "title": "es-sv" - }, - { - "type": "string", - "enum": [ - "es-uy" - ], - "title": "es-uy" - }, - { - "type": "string", - "enum": [ - "es-ve" - ], - "title": "es-ve" - }, - { - "type": "string", - "enum": [ - "et" - ], - "title": "et" - }, - { - "type": "string", - "enum": [ - "eu" - ], - "title": "eu" - }, - { - "type": "string", - "enum": [ - "fa" - ], - "title": "fa" - }, - { - "type": "string", - "enum": [ - "fi" - ], - "title": "fi" - }, - { - "type": "string", - "enum": [ - "fo" - ], - "title": "fo" - }, - { - "type": "string", - "enum": [ - "fr" - ], - "title": "fr" - }, - { - "type": "string", - "enum": [ - "fr-be" - ], - "title": "fr-be" - }, - { - "type": "string", - "enum": [ - "fr-ca" - ], - "title": "fr-ca" - }, - { - "type": "string", - "enum": [ - "fr-ch" - ], - "title": "fr-ch" - }, - { - "type": "string", - "enum": [ - "fr-lu" - ], - "title": "fr-lu" - }, - { - "type": "string", - "enum": [ - "ga" - ], - "title": "ga" - }, - { - "type": "string", - "enum": [ - "gd" - ], - "title": "gd" - }, - { - "type": "string", - "enum": [ - "he" - ], - "title": "he" - }, - { - "type": "string", - "enum": [ - "hi" - ], - "title": "hi" - }, - { - "type": "string", - "enum": [ - "hr" - ], - "title": "hr" - }, - { - "type": "string", - "enum": [ - "hu" - ], - "title": "hu" - }, - { - "type": "string", - "enum": [ - "id" - ], - "title": "id" - }, - { - "type": "string", - "enum": [ - "is" - ], - "title": "is" - }, - { - "type": "string", - "enum": [ - "it" - ], - "title": "it" - }, - { - "type": "string", - "enum": [ - "it-ch" - ], - "title": "it-ch" - }, - { - "type": "string", - "enum": [ - "ja" - ], - "title": "ja" - }, - { - "type": "string", - "enum": [ - "ji" - ], - "title": "ji" - }, - { - "type": "string", - "enum": [ - "ko" - ], - "title": "ko" - }, - { - "type": "string", - "enum": [ - "ku" - ], - "title": "ku" - }, - { - "type": "string", - "enum": [ - "lt" - ], - "title": "lt" - }, - { - "type": "string", - "enum": [ - "lv" - ], - "title": "lv" - }, - { - "type": "string", - "enum": [ - "mk" - ], - "title": "mk" - }, - { - "type": "string", - "enum": [ - "ml" - ], - "title": "ml" - }, - { - "type": "string", - "enum": [ - "ms" - ], - "title": "ms" - }, - { - "type": "string", - "enum": [ - "mt" - ], - "title": "mt" - }, - { - "type": "string", - "enum": [ - "nb" - ], - "title": "nb" - }, - { - "type": "string", - "enum": [ - "ne" - ], - "title": "ne" - }, - { - "type": "string", - "enum": [ - "nl" - ], - "title": "nl" - }, - { - "type": "string", - "enum": [ - "nl-be" - ], - "title": "nl-be" - }, - { - "type": "string", - "enum": [ - "nn" - ], - "title": "nn" - }, - { - "type": "string", - "enum": [ - "no" - ], - "title": "no" - }, - { - "type": "string", - "enum": [ - "pa" - ], - "title": "pa" - }, - { - "type": "string", - "enum": [ - "pl" - ], - "title": "pl" - }, - { - "type": "string", - "enum": [ - "pt" - ], - "title": "pt" - }, - { - "type": "string", - "enum": [ - "pt-br" - ], - "title": "pt-br" - }, - { - "type": "string", - "enum": [ - "rm" - ], - "title": "rm" - }, - { - "type": "string", - "enum": [ - "ro" - ], - "title": "ro" - }, - { - "type": "string", - "enum": [ - "ro-md" - ], - "title": "ro-md" - }, - { - "type": "string", - "enum": [ - "ru" - ], - "title": "ru" - }, - { - "type": "string", - "enum": [ - "ru-md" - ], - "title": "ru-md" - }, - { - "type": "string", - "enum": [ - "sb" - ], - "title": "sb" - }, - { - "type": "string", - "enum": [ - "sk" - ], - "title": "sk" - }, - { - "type": "string", - "enum": [ - "sl" - ], - "title": "sl" - }, - { - "type": "string", - "enum": [ - "sq" - ], - "title": "sq" - }, - { - "type": "string", - "enum": [ - "sr" - ], - "title": "sr" - }, - { - "type": "string", - "enum": [ - "sv" - ], - "title": "sv" - }, - { - "type": "string", - "enum": [ - "sv-fi" - ], - "title": "sv-fi" - }, - { - "type": "string", - "enum": [ - "th" - ], - "title": "th" - }, - { - "type": "string", - "enum": [ - "tn" - ], - "title": "tn" - }, - { - "type": "string", - "enum": [ - "tr" - ], - "title": "tr" - }, - { - "type": "string", - "enum": [ - "ts" - ], - "title": "ts" - }, - { - "type": "string", - "enum": [ - "ua" - ], - "title": "ua" - }, - { - "type": "string", - "enum": [ - "ur" - ], - "title": "ur" - }, - { - "type": "string", - "enum": [ - "ve" - ], - "title": "ve" - }, - { - "type": "string", - "enum": [ - "vi" - ], - "title": "vi" - }, - { - "type": "string", - "enum": [ - "xh" - ], - "title": "xh" - }, - { - "type": "string", - "enum": [ - "zh-cn" - ], - "title": "zh-cn" - }, - { - "type": "string", - "enum": [ - "zh-hk" - ], - "title": "zh-hk" - }, - { - "type": "string", - "enum": [ - "zh-sg" - ], - "title": "zh-sg" - }, - { - "type": "string", - "enum": [ - "zh-tw" - ], - "title": "zh-tw" - }, - { - "type": "string", - "enum": [ - "zu" - ], - "title": "zu" - } - ] - }, - "in": "query" - } - ] - } - }, - "\/project\/variables": { - "get": { - "summary": "List project variables", - "operationId": "projectListVariables", - "tags": [ - "project" - ], - "description": "Get a list of all project environment variables.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/list-variables.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": [], - "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: key, resourceType, resourceId, secret", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create 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": { - "group": "variables", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "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.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/project\/variables\/{variableId}": { - "get": { - "summary": "Get project variable", - "operationId": "projectGetVariable", - "tags": [ - "project" - ], - "description": "Get a variable by its unique ID. ", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update project variable", - "operationId": "projectUpdateVariable", - "tags": [ - "project" - ], - "description": "Update variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/update-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete project variable", - "operationId": "projectDeleteVariable", - "tags": [ - "project" - ], - "description": "Delete a variable by its unique ID. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "project\/delete-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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/proxy\/invalidations": { - "post": { - "summary": "Create invalidation", - "operationId": "proxyCreateInvalidation", - "tags": [ - "proxy" - ], - "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", - "responses": { - "201": { - "description": "Invalidation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyInvalidation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "proxy\/create-invalidation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "proxy.invalidations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "type": { - "description": "Type of reference passed. Allowed values are: tag, path, all", - "type": "string", - "example": "tag", - "title": "InvalidationType", - "oneOf": [ - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - }, - { - "type": "string", - "enum": [ - "path" - ], - "title": "path" - }, - { - "type": "string", - "enum": [ - "all" - ], - "title": "all" - } - ] - }, - "reference": { - "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", - "type": "string", - "default": "", - "example": "<REFERENCE>" - } - }, - "required": [ - "domain", - "type" - ] - }, - "examples": { - "tag": { - "summary": "Purge a cache tag", - "value": { - "domain": "example.com", - "type": "tag", - "reference": "<TAG>" - } - }, - "path": { - "summary": "Purge a URL path", - "value": { - "domain": "example.com", - "type": "path", - "reference": "\/blog\/hello-world" - } - } - } - } - } - } - } - }, - "\/proxy\/rules": { - "get": { - "summary": "List rules", - "operationId": "proxyListRules", - "tags": [ - "proxy" - ], - "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Rule List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRuleList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/list-rules.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/proxy\/rules\/api": { - "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - } - }, - "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": { - "group": "rules", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "functionId": { - "description": "ID of function to be executed.", - "type": "string", - "example": "<FUNCTION_ID>" - }, - "branch": { - "description": "Name of VCS branch to deploy changes automatically", - "type": "string", - "default": "", - "example": "<BRANCH>" - } - }, - "required": [ - "domain", - "functionId" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create redirect rule", - "operationId": "proxyCreateRedirectRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "url": { - "description": "Target URL of redirection", - "type": "string", - "example": "https:\/\/example.com", - "format": "url" - }, - "statusCode": { - "description": "Status code of redirection", - "type": "string", - "example": "301", - "title": "StatusCode", - "oneOf": [ - { - "type": "string", - "enum": [ - "301" - ], - "title": "MovedPermanently" - }, - { - "type": "string", - "enum": [ - "302" - ], - "title": "Found" - }, - { - "type": "string", - "enum": [ - "307" - ], - "title": "TemporaryRedirect" - }, - { - "type": "string", - "enum": [ - "308" - ], - "title": "PermanentRedirect" - } - ] - }, - "resourceId": { - "description": "ID of parent resource.", - "type": "string", - "example": "<RESOURCE_ID>" - }, - "resourceType": { - "description": "Type of parent resource.", - "type": "string", - "example": "site", - "title": "ProxyResourceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "site" - ], - "title": "Site" - }, - { - "type": "string", - "enum": [ - "function" - ], - "title": "Function" - } - ] - } - }, - "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\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": { - "group": "rules", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "description": "Domain name.", - "type": "string", - "example": "example.com" - }, - "siteId": { - "description": "ID of site to be executed.", - "type": "string", - "example": "<SITE_ID>" - }, - "branch": { - "description": "Name of VCS branch to deploy changes automatically", - "type": "string", - "default": "", - "example": "<BRANCH>" - } - }, - "required": [ - "domain", - "siteId" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/{ruleId}": { - "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", - "tags": [ - "proxy" - ], - "description": "Get a proxy rule by its unique ID.", - "responses": { - "200": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", - "tags": [ - "proxy" - ], - "description": "Delete a proxy rule by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/proxy\/rules\/{ruleId}\/status": { - "patch": { - "summary": "Update rule status", - "operationId": "proxyUpdateRuleStatus", - "tags": [ - "proxy" - ], - "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": { - "200": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "proxy\/update-rule-status.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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/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": { - "group": "reports", - "demo": "advisor\/list-reports.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.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: 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", - "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": { - "group": "reports", - "demo": "advisor\/get-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "reports", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "example": "<REPORT_ID>" - }, - "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": { - "group": "insights", - "demo": "advisor\/list-insights.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "insights", - "demo": "advisor\/get-insight.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "example": "<REPORT_ID>" - }, - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSIGHT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites": { - "get": { - "summary": "List sites", - "operationId": "sitesList", - "tags": [ - "sites" - ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Sites List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/siteList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", - "tags": [ - "sites" - ], - "description": "Create a new site.", - "responses": { - "201": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "siteId": { - "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.", - "type": "string", - "example": "<SITE_ID>" - }, - "name": { - "description": "Site name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "framework": { - "description": "Sites framework.", - "type": "string", - "example": "analog", - "title": "Framework", - "oneOf": [ - { - "type": "string", - "enum": [ - "analog" - ], - "title": "analog" - }, - { - "type": "string", - "enum": [ - "angular" - ], - "title": "angular" - }, - { - "type": "string", - "enum": [ - "nextjs" - ], - "title": "nextjs" - }, - { - "type": "string", - "enum": [ - "react" - ], - "title": "react" - }, - { - "type": "string", - "enum": [ - "nuxt" - ], - "title": "nuxt" - }, - { - "type": "string", - "enum": [ - "vue" - ], - "title": "vue" - }, - { - "type": "string", - "enum": [ - "sveltekit" - ], - "title": "sveltekit" - }, - { - "type": "string", - "enum": [ - "astro" - ], - "title": "astro" - }, - { - "type": "string", - "enum": [ - "tanstack-start" - ], - "title": "tanstack-start" - }, - { - "type": "string", - "enum": [ - "remix" - ], - "title": "remix" - }, - { - "type": "string", - "enum": [ - "lynx" - ], - "title": "lynx" - }, - { - "type": "string", - "enum": [ - "flutter" - ], - "title": "flutter" - }, - { - "type": "string", - "enum": [ - "jaspr" - ], - "title": "jaspr" - }, - { - "type": "string", - "enum": [ - "react-native" - ], - "title": "react-native" - }, - { - "type": "string", - "enum": [ - "vite" - ], - "title": "vite" - }, - { - "type": "string", - "enum": [ - "other" - ], - "title": "other" - } - ] - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "timeout": { - "description": "Maximum request time in seconds.", - "type": "integer", - "default": 30, - "example": 1, - "format": "int32" - }, - "installCommand": { - "description": "Install Command.", - "type": "string", - "default": "", - "example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "description": "Build Command.", - "type": "string", - "default": "", - "example": "<BUILD_COMMAND>" - }, - "startCommand": { - "description": "Custom start command. Leave empty to use default.", - "type": "string", - "default": "", - "example": "<START_COMMAND>" - }, - "outputDirectory": { - "description": "Output Directory for site.", - "type": "string", - "default": "", - "example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "description": "Runtime to use during build step.", - "type": "string", - "example": "node-14.5", - "title": "BuildRuntime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "adapter": { - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "type": "string", - "example": "static", - "title": "Adapter", - "oneOf": [ - { - "type": "string", - "enum": [ - "static" - ], - "title": "static" - }, - { - "type": "string", - "enum": [ - "ssr" - ], - "title": "ssr" - } - ] - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "description": "Fallback file for single page application sites.", - "type": "string", - "default": "", - "example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "description": "Production branch for the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to site code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "buildSpecification": { - "description": "Build specification for the site deployments.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "description": "Runtime specification for the SSR executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", - "type": "array", - "default": [], - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - } - } - }, - "required": [ - "siteId", - "name", - "framework", - "buildRuntime" - ] - } - } - } - } - } - }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", - "tags": [ - "sites" - ], - "description": "Get a list of all frameworks that are currently available on the server instance.", - "responses": { - "200": { - "description": "Frameworks List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/frameworkList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "frameworks", - "demo": "sites\/list-frameworks.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", - "tags": [ - "sites" - ], - "description": "List allowed site specifications for this instance.", - "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "frameworks", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "type", - "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", - "required": false, - "schema": { - "type": "string", - "example": "runtimes", - "default": "runtimes" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/{siteId}": { - "get": { - "summary": "Get site", - "operationId": "sitesGet", - "tags": [ - "sites" - ], - "description": "Get a site by its unique ID.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", - "tags": [ - "sites" - ], - "description": "Update site by its unique ID.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "demo": "sites\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Site name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "framework": { - "description": "Sites framework.", - "type": "string", - "example": "analog", - "title": "Framework", - "oneOf": [ - { - "type": "string", - "enum": [ - "analog" - ], - "title": "analog" - }, - { - "type": "string", - "enum": [ - "angular" - ], - "title": "angular" - }, - { - "type": "string", - "enum": [ - "nextjs" - ], - "title": "nextjs" - }, - { - "type": "string", - "enum": [ - "react" - ], - "title": "react" - }, - { - "type": "string", - "enum": [ - "nuxt" - ], - "title": "nuxt" - }, - { - "type": "string", - "enum": [ - "vue" - ], - "title": "vue" - }, - { - "type": "string", - "enum": [ - "sveltekit" - ], - "title": "sveltekit" - }, - { - "type": "string", - "enum": [ - "astro" - ], - "title": "astro" - }, - { - "type": "string", - "enum": [ - "tanstack-start" - ], - "title": "tanstack-start" - }, - { - "type": "string", - "enum": [ - "remix" - ], - "title": "remix" - }, - { - "type": "string", - "enum": [ - "lynx" - ], - "title": "lynx" - }, - { - "type": "string", - "enum": [ - "flutter" - ], - "title": "flutter" - }, - { - "type": "string", - "enum": [ - "jaspr" - ], - "title": "jaspr" - }, - { - "type": "string", - "enum": [ - "react-native" - ], - "title": "react-native" - }, - { - "type": "string", - "enum": [ - "vite" - ], - "title": "vite" - }, - { - "type": "string", - "enum": [ - "other" - ], - "title": "other" - } - ] - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "logging": { - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "type": "boolean", - "default": true, - "example": false - }, - "timeout": { - "description": "Maximum request time in seconds.", - "type": "integer", - "default": 30, - "example": 1, - "format": "int32" - }, - "installCommand": { - "description": "Install Command.", - "type": "string", - "default": "", - "example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "description": "Build Command.", - "type": "string", - "default": "", - "example": "<BUILD_COMMAND>" - }, - "startCommand": { - "description": "Custom start command. Leave empty to use default.", - "type": "string", - "default": "", - "example": "<START_COMMAND>" - }, - "outputDirectory": { - "description": "Output Directory for site.", - "type": "string", - "default": "", - "example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "description": "Runtime to use during build step.", - "type": "string", - "example": "node-14.5", - "title": "BuildRuntime", - "oneOf": [ - { - "type": "string", - "enum": [ - "node-14.5" - ], - "title": "node-14.5" - }, - { - "type": "string", - "enum": [ - "node-16.0" - ], - "title": "node-16.0" - }, - { - "type": "string", - "enum": [ - "node-18.0" - ], - "title": "node-18.0" - }, - { - "type": "string", - "enum": [ - "node-19.0" - ], - "title": "node-19.0" - }, - { - "type": "string", - "enum": [ - "node-20.0" - ], - "title": "node-20.0" - }, - { - "type": "string", - "enum": [ - "node-21.0" - ], - "title": "node-21.0" - }, - { - "type": "string", - "enum": [ - "node-22" - ], - "title": "node-22" - }, - { - "type": "string", - "enum": [ - "node-23" - ], - "title": "node-23" - }, - { - "type": "string", - "enum": [ - "node-24" - ], - "title": "node-24" - }, - { - "type": "string", - "enum": [ - "node-25" - ], - "title": "node-25" - }, - { - "type": "string", - "enum": [ - "node-26" - ], - "title": "node-26" - }, - { - "type": "string", - "enum": [ - "php-8.0" - ], - "title": "php-8.0" - }, - { - "type": "string", - "enum": [ - "php-8.1" - ], - "title": "php-8.1" - }, - { - "type": "string", - "enum": [ - "php-8.2" - ], - "title": "php-8.2" - }, - { - "type": "string", - "enum": [ - "php-8.3" - ], - "title": "php-8.3" - }, - { - "type": "string", - "enum": [ - "php-8.4" - ], - "title": "php-8.4" - }, - { - "type": "string", - "enum": [ - "ruby-3.0" - ], - "title": "ruby-3.0" - }, - { - "type": "string", - "enum": [ - "ruby-3.1" - ], - "title": "ruby-3.1" - }, - { - "type": "string", - "enum": [ - "ruby-3.2" - ], - "title": "ruby-3.2" - }, - { - "type": "string", - "enum": [ - "ruby-3.3" - ], - "title": "ruby-3.3" - }, - { - "type": "string", - "enum": [ - "ruby-3.4" - ], - "title": "ruby-3.4" - }, - { - "type": "string", - "enum": [ - "ruby-4.0" - ], - "title": "ruby-4.0" - }, - { - "type": "string", - "enum": [ - "python-3.8" - ], - "title": "python-3.8" - }, - { - "type": "string", - "enum": [ - "python-3.9" - ], - "title": "python-3.9" - }, - { - "type": "string", - "enum": [ - "python-3.10" - ], - "title": "python-3.10" - }, - { - "type": "string", - "enum": [ - "python-3.11" - ], - "title": "python-3.11" - }, - { - "type": "string", - "enum": [ - "python-3.12" - ], - "title": "python-3.12" - }, - { - "type": "string", - "enum": [ - "python-3.13" - ], - "title": "python-3.13" - }, - { - "type": "string", - "enum": [ - "python-3.14" - ], - "title": "python-3.14" - }, - { - "type": "string", - "enum": [ - "python-ml-3.11" - ], - "title": "python-ml-3.11" - }, - { - "type": "string", - "enum": [ - "python-ml-3.12" - ], - "title": "python-ml-3.12" - }, - { - "type": "string", - "enum": [ - "python-ml-3.13" - ], - "title": "python-ml-3.13" - }, - { - "type": "string", - "enum": [ - "deno-1.40" - ], - "title": "deno-1.40" - }, - { - "type": "string", - "enum": [ - "deno-1.46" - ], - "title": "deno-1.46" - }, - { - "type": "string", - "enum": [ - "deno-2.0" - ], - "title": "deno-2.0" - }, - { - "type": "string", - "enum": [ - "deno-2.5" - ], - "title": "deno-2.5" - }, - { - "type": "string", - "enum": [ - "deno-2.6" - ], - "title": "deno-2.6" - }, - { - "type": "string", - "enum": [ - "dart-2.15" - ], - "title": "dart-2.15" - }, - { - "type": "string", - "enum": [ - "dart-2.16" - ], - "title": "dart-2.16" - }, - { - "type": "string", - "enum": [ - "dart-2.17" - ], - "title": "dart-2.17" - }, - { - "type": "string", - "enum": [ - "dart-2.18" - ], - "title": "dart-2.18" - }, - { - "type": "string", - "enum": [ - "dart-2.19" - ], - "title": "dart-2.19" - }, - { - "type": "string", - "enum": [ - "dart-3.0" - ], - "title": "dart-3.0" - }, - { - "type": "string", - "enum": [ - "dart-3.1" - ], - "title": "dart-3.1" - }, - { - "type": "string", - "enum": [ - "dart-3.3" - ], - "title": "dart-3.3" - }, - { - "type": "string", - "enum": [ - "dart-3.5" - ], - "title": "dart-3.5" - }, - { - "type": "string", - "enum": [ - "dart-3.8" - ], - "title": "dart-3.8" - }, - { - "type": "string", - "enum": [ - "dart-3.9" - ], - "title": "dart-3.9" - }, - { - "type": "string", - "enum": [ - "dart-3.10" - ], - "title": "dart-3.10" - }, - { - "type": "string", - "enum": [ - "dart-3.11" - ], - "title": "dart-3.11" - }, - { - "type": "string", - "enum": [ - "dart-3.12" - ], - "title": "dart-3.12" - }, - { - "type": "string", - "enum": [ - "dart-3.13" - ], - "title": "dart-3.13" - }, - { - "type": "string", - "enum": [ - "dotnet-6.0" - ], - "title": "dotnet-6.0" - }, - { - "type": "string", - "enum": [ - "dotnet-7.0" - ], - "title": "dotnet-7.0" - }, - { - "type": "string", - "enum": [ - "dotnet-8.0" - ], - "title": "dotnet-8.0" - }, - { - "type": "string", - "enum": [ - "dotnet-10" - ], - "title": "dotnet-10" - }, - { - "type": "string", - "enum": [ - "java-8.0" - ], - "title": "java-8.0" - }, - { - "type": "string", - "enum": [ - "java-11.0" - ], - "title": "java-11.0" - }, - { - "type": "string", - "enum": [ - "java-17.0" - ], - "title": "java-17.0" - }, - { - "type": "string", - "enum": [ - "java-18.0" - ], - "title": "java-18.0" - }, - { - "type": "string", - "enum": [ - "java-21.0" - ], - "title": "java-21.0" - }, - { - "type": "string", - "enum": [ - "java-22" - ], - "title": "java-22" - }, - { - "type": "string", - "enum": [ - "java-25" - ], - "title": "java-25" - }, - { - "type": "string", - "enum": [ - "swift-5.5" - ], - "title": "swift-5.5" - }, - { - "type": "string", - "enum": [ - "swift-5.8" - ], - "title": "swift-5.8" - }, - { - "type": "string", - "enum": [ - "swift-5.9" - ], - "title": "swift-5.9" - }, - { - "type": "string", - "enum": [ - "swift-5.10" - ], - "title": "swift-5.10" - }, - { - "type": "string", - "enum": [ - "swift-6.2" - ], - "title": "swift-6.2" - }, - { - "type": "string", - "enum": [ - "kotlin-1.6" - ], - "title": "kotlin-1.6" - }, - { - "type": "string", - "enum": [ - "kotlin-1.8" - ], - "title": "kotlin-1.8" - }, - { - "type": "string", - "enum": [ - "kotlin-1.9" - ], - "title": "kotlin-1.9" - }, - { - "type": "string", - "enum": [ - "kotlin-2.0" - ], - "title": "kotlin-2.0" - }, - { - "type": "string", - "enum": [ - "kotlin-2.3" - ], - "title": "kotlin-2.3" - }, - { - "type": "string", - "enum": [ - "cpp-17" - ], - "title": "cpp-17" - }, - { - "type": "string", - "enum": [ - "cpp-20" - ], - "title": "cpp-20" - }, - { - "type": "string", - "enum": [ - "bun-1.0" - ], - "title": "bun-1.0" - }, - { - "type": "string", - "enum": [ - "bun-1.1" - ], - "title": "bun-1.1" - }, - { - "type": "string", - "enum": [ - "bun-1.2" - ], - "title": "bun-1.2" - }, - { - "type": "string", - "enum": [ - "bun-1.3" - ], - "title": "bun-1.3" - }, - { - "type": "string", - "enum": [ - "bun-1.4" - ], - "title": "bun-1.4" - }, - { - "type": "string", - "enum": [ - "go-1.23" - ], - "title": "go-1.23" - }, - { - "type": "string", - "enum": [ - "go-1.24" - ], - "title": "go-1.24" - }, - { - "type": "string", - "enum": [ - "go-1.25" - ], - "title": "go-1.25" - }, - { - "type": "string", - "enum": [ - "go-1.26" - ], - "title": "go-1.26" - }, - { - "type": "string", - "enum": [ - "rust-1.83" - ], - "title": "rust-1.83" - }, - { - "type": "string", - "enum": [ - "static-1" - ], - "title": "static-1" - }, - { - "type": "string", - "enum": [ - "flutter-3.24" - ], - "title": "flutter-3.24" - }, - { - "type": "string", - "enum": [ - "flutter-3.27" - ], - "title": "flutter-3.27" - }, - { - "type": "string", - "enum": [ - "flutter-3.29" - ], - "title": "flutter-3.29" - }, - { - "type": "string", - "enum": [ - "flutter-3.32" - ], - "title": "flutter-3.32" - }, - { - "type": "string", - "enum": [ - "flutter-3.35" - ], - "title": "flutter-3.35" - }, - { - "type": "string", - "enum": [ - "flutter-3.38" - ], - "title": "flutter-3.38" - }, - { - "type": "string", - "enum": [ - "flutter-3.41" - ], - "title": "flutter-3.41" - }, - { - "type": "string", - "enum": [ - "flutter-3.44" - ], - "title": "flutter-3.44" - }, - { - "type": "string", - "enum": [ - "flutter-3.47" - ], - "title": "flutter-3.47" - } - ] - }, - "adapter": { - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "type": "string", - "example": "static", - "title": "Adapter", - "oneOf": [ - { - "type": "string", - "enum": [ - "static" - ], - "title": "static" - }, - { - "type": "string", - "enum": [ - "ssr" - ], - "title": "ssr" - } - ] - }, - "fallbackFile": { - "description": "Fallback file for single page application sites.", - "type": "string", - "default": "", - "example": "<FALLBACK_FILE>" - }, - "installationId": { - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "type": "string", - "default": "", - "example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "description": "Repository ID of the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_REPOSITORY_ID>", - "nullable": true - }, - "providerBranch": { - "description": "Production branch for the repo linked to the site.", - "type": "string", - "default": "", - "example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "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.", - "type": "boolean", - "default": false, - "example": false - }, - "providerRootDirectory": { - "description": "Path to site code in the linked repo.", - "type": "string", - "default": "", - "example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "providerBranches": { - "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "providerPaths": { - "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "buildSpecification": { - "description": "Build specification for the site deployments.", - "type": "string", - "example": "s-1vcpu-512mb", - "nullable": true - }, - "runtimeSpecification": { - "description": "Runtime specification for the SSR executions.", - "type": "string", - "default": {}, - "example": "s-1vcpu-512mb" - }, - "deploymentRetention": { - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "scopes": { - "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", - "type": "array", - "items": { - "title": "ProjectKeyScopes", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "project.read" - ], - "title": "project.read" - }, - { - "type": "string", - "enum": [ - "project.write" - ], - "title": "project.write" - }, - { - "type": "string", - "enum": [ - "usage.read" - ], - "title": "usage.read" - }, - { - "type": "string", - "enum": [ - "keys.read" - ], - "title": "keys.read" - }, - { - "type": "string", - "enum": [ - "keys.write" - ], - "title": "keys.write" - }, - { - "type": "string", - "enum": [ - "platforms.read" - ], - "title": "platforms.read" - }, - { - "type": "string", - "enum": [ - "platforms.write" - ], - "title": "platforms.write" - }, - { - "type": "string", - "enum": [ - "mocks.read" - ], - "title": "mocks.read" - }, - { - "type": "string", - "enum": [ - "mocks.write" - ], - "title": "mocks.write" - }, - { - "type": "string", - "enum": [ - "policies.read" - ], - "title": "policies.read" - }, - { - "type": "string", - "enum": [ - "policies.write" - ], - "title": "policies.write" - }, - { - "type": "string", - "enum": [ - "project.policies.read" - ], - "title": "project.policies.read" - }, - { - "type": "string", - "enum": [ - "project.policies.write" - ], - "title": "project.policies.write" - }, - { - "type": "string", - "enum": [ - "project.oauth2.read" - ], - "title": "project.oauth2.read" - }, - { - "type": "string", - "enum": [ - "project.oauth2.write" - ], - "title": "project.oauth2.write" - }, - { - "type": "string", - "enum": [ - "templates.read" - ], - "title": "templates.read" - }, - { - "type": "string", - "enum": [ - "templates.write" - ], - "title": "templates.write" - }, - { - "type": "string", - "enum": [ - "stages.read" - ], - "title": "stages.read" - }, - { - "type": "string", - "enum": [ - "stages.write" - ], - "title": "stages.write" - }, - { - "type": "string", - "enum": [ - "users.read" - ], - "title": "users.read" - }, - { - "type": "string", - "enum": [ - "users.write" - ], - "title": "users.write" - }, - { - "type": "string", - "enum": [ - "sessions.read" - ], - "title": "sessions.read" - }, - { - "type": "string", - "enum": [ - "sessions.write" - ], - "title": "sessions.write" - }, - { - "type": "string", - "enum": [ - "teams.read" - ], - "title": "teams.read" - }, - { - "type": "string", - "enum": [ - "teams.write" - ], - "title": "teams.write" - }, - { - "type": "string", - "enum": [ - "databases.read" - ], - "title": "databases.read" - }, - { - "type": "string", - "enum": [ - "databases.write" - ], - "title": "databases.write" - }, - { - "type": "string", - "enum": [ - "tables.read" - ], - "title": "tables.read" - }, - { - "type": "string", - "enum": [ - "tables.write" - ], - "title": "tables.write" - }, - { - "type": "string", - "enum": [ - "columns.read" - ], - "title": "columns.read" - }, - { - "type": "string", - "enum": [ - "columns.write" - ], - "title": "columns.write" - }, - { - "type": "string", - "enum": [ - "indexes.read" - ], - "title": "indexes.read" - }, - { - "type": "string", - "enum": [ - "indexes.write" - ], - "title": "indexes.write" - }, - { - "type": "string", - "enum": [ - "rows.read" - ], - "title": "rows.read" - }, - { - "type": "string", - "enum": [ - "rows.write" - ], - "title": "rows.write" - }, - { - "type": "string", - "enum": [ - "embeddings.write" - ], - "title": "embeddings.write" - }, - { - "type": "string", - "enum": [ - "collections.read" - ], - "title": "collections.read" - }, - { - "type": "string", - "enum": [ - "collections.write" - ], - "title": "collections.write" - }, - { - "type": "string", - "enum": [ - "attributes.read" - ], - "title": "attributes.read" - }, - { - "type": "string", - "enum": [ - "attributes.write" - ], - "title": "attributes.write" - }, - { - "type": "string", - "enum": [ - "documents.read" - ], - "title": "documents.read" - }, - { - "type": "string", - "enum": [ - "documents.write" - ], - "title": "documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.read" - ], - "title": "documentsdb.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.write" - ], - "title": "documentsdb.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.read" - ], - "title": "documentsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.collections.write" - ], - "title": "documentsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.read" - ], - "title": "documentsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.documents.write" - ], - "title": "documentsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.read" - ], - "title": "documentsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "documentsdb.indexes.write" - ], - "title": "documentsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.read" - ], - "title": "vectorsdb.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.write" - ], - "title": "vectorsdb.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.read" - ], - "title": "vectorsdb.collections.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.collections.write" - ], - "title": "vectorsdb.collections.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.read" - ], - "title": "vectorsdb.documents.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.documents.write" - ], - "title": "vectorsdb.documents.write" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.read" - ], - "title": "vectorsdb.indexes.read" - }, - { - "type": "string", - "enum": [ - "vectorsdb.indexes.write" - ], - "title": "vectorsdb.indexes.write" - }, - { - "type": "string", - "enum": [ - "buckets.read" - ], - "title": "buckets.read" - }, - { - "type": "string", - "enum": [ - "buckets.write" - ], - "title": "buckets.write" - }, - { - "type": "string", - "enum": [ - "files.read" - ], - "title": "files.read" - }, - { - "type": "string", - "enum": [ - "files.write" - ], - "title": "files.write" - }, - { - "type": "string", - "enum": [ - "tokens.read" - ], - "title": "tokens.read" - }, - { - "type": "string", - "enum": [ - "tokens.write" - ], - "title": "tokens.write" - }, - { - "type": "string", - "enum": [ - "functions.read" - ], - "title": "functions.read" - }, - { - "type": "string", - "enum": [ - "functions.write" - ], - "title": "functions.write" - }, - { - "type": "string", - "enum": [ - "executions.read" - ], - "title": "executions.read" - }, - { - "type": "string", - "enum": [ - "executions.write" - ], - "title": "executions.write" - }, - { - "type": "string", - "enum": [ - "execution.read" - ], - "title": "execution.read" - }, - { - "type": "string", - "enum": [ - "execution.write" - ], - "title": "execution.write" - }, - { - "type": "string", - "enum": [ - "sites.read" - ], - "title": "sites.read" - }, - { - "type": "string", - "enum": [ - "sites.write" - ], - "title": "sites.write" - }, - { - "type": "string", - "enum": [ - "log.read" - ], - "title": "log.read" - }, - { - "type": "string", - "enum": [ - "log.write" - ], - "title": "log.write" - }, - { - "type": "string", - "enum": [ - "providers.read" - ], - "title": "providers.read" - }, - { - "type": "string", - "enum": [ - "providers.write" - ], - "title": "providers.write" - }, - { - "type": "string", - "enum": [ - "topics.read" - ], - "title": "topics.read" - }, - { - "type": "string", - "enum": [ - "topics.write" - ], - "title": "topics.write" - }, - { - "type": "string", - "enum": [ - "subscribers.read" - ], - "title": "subscribers.read" - }, - { - "type": "string", - "enum": [ - "subscribers.write" - ], - "title": "subscribers.write" - }, - { - "type": "string", - "enum": [ - "targets.read" - ], - "title": "targets.read" - }, - { - "type": "string", - "enum": [ - "targets.write" - ], - "title": "targets.write" - }, - { - "type": "string", - "enum": [ - "messages.read" - ], - "title": "messages.read" - }, - { - "type": "string", - "enum": [ - "messages.write" - ], - "title": "messages.write" - }, - { - "type": "string", - "enum": [ - "rules.read" - ], - "title": "rules.read" - }, - { - "type": "string", - "enum": [ - "rules.write" - ], - "title": "rules.write" - }, - { - "type": "string", - "enum": [ - "webhooks.read" - ], - "title": "webhooks.read" - }, - { - "type": "string", - "enum": [ - "webhooks.write" - ], - "title": "webhooks.write" - }, - { - "type": "string", - "enum": [ - "locale.read" - ], - "title": "locale.read" - }, - { - "type": "string", - "enum": [ - "avatars.read" - ], - "title": "avatars.read" - }, - { - "type": "string", - "enum": [ - "avatars.write" - ], - "title": "avatars.write" - }, - { - "type": "string", - "enum": [ - "health.read" - ], - "title": "health.read" - }, - { - "type": "string", - "enum": [ - "assistant.read" - ], - "title": "assistant.read" - }, - { - "type": "string", - "enum": [ - "migrations.read" - ], - "title": "migrations.read" - }, - { - "type": "string", - "enum": [ - "migrations.write" - ], - "title": "migrations.write" - }, - { - "type": "string", - "enum": [ - "schedules.read" - ], - "title": "schedules.read" - }, - { - "type": "string", - "enum": [ - "schedules.write" - ], - "title": "schedules.write" - }, - { - "type": "string", - "enum": [ - "vcs.read" - ], - "title": "vcs.read" - }, - { - "type": "string", - "enum": [ - "vcs.write" - ], - "title": "vcs.write" - }, - { - "type": "string", - "enum": [ - "insights.read" - ], - "title": "insights.read" - }, - { - "type": "string", - "enum": [ - "insights.write" - ], - "title": "insights.write" - }, - { - "type": "string", - "enum": [ - "reports.read" - ], - "title": "reports.read" - }, - { - "type": "string", - "enum": [ - "reports.write" - ], - "title": "reports.write" - }, - { - "type": "string", - "enum": [ - "presences.read" - ], - "title": "presences.read" - }, - { - "type": "string", - "enum": [ - "presences.write" - ], - "title": "presences.write" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabases.execute" - ], - "title": "dedicatedDatabases.execute" - }, - { - "type": "string", - "enum": [ - "backups.policies.read" - ], - "title": "backups.policies.read" - }, - { - "type": "string", - "enum": [ - "backups.policies.write" - ], - "title": "backups.policies.write" - }, - { - "type": "string", - "enum": [ - "archives.read" - ], - "title": "archives.read" - }, - { - "type": "string", - "enum": [ - "archives.write" - ], - "title": "archives.write" - }, - { - "type": "string", - "enum": [ - "restorations.read" - ], - "title": "restorations.read" - }, - { - "type": "string", - "enum": [ - "restorations.write" - ], - "title": "restorations.write" - }, - { - "type": "string", - "enum": [ - "domains.read" - ], - "title": "domains.read" - }, - { - "type": "string", - "enum": [ - "domains.write" - ], - "title": "domains.write" - }, - { - "type": "string", - "enum": [ - "wafRules.read" - ], - "title": "wafRules.read" - }, - { - "type": "string", - "enum": [ - "wafRules.write" - ], - "title": "wafRules.write" - }, - { - "type": "string", - "enum": [ - "events.read" - ], - "title": "events.read" - }, - { - "type": "string", - "enum": [ - "proxy.invalidations.write" - ], - "title": "proxy.invalidations.write" - }, - { - "type": "string", - "enum": [ - "apps.read" - ], - "title": "apps.read" - }, - { - "type": "string", - "enum": [ - "apps.write" - ], - "title": "apps.write" - }, - { - "type": "string", - "enum": [ - "oauth2.read" - ], - "title": "oauth2.read" - }, - { - "type": "string", - "enum": [ - "oauth2.write" - ], - "title": "oauth2.write" - }, - { - "type": "string", - "enum": [ - "oauth2.introspect" - ], - "title": "oauth2.introspect" - }, - { - "type": "string", - "enum": [ - "analytics.read" - ], - "title": "analytics.read" - }, - { - "type": "string", - "enum": [ - "analytics.write" - ], - "title": "analytics.write" - } - ] - }, - "nullable": true - } - }, - "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": { - "group": "sites", - "demo": "sites\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", - "tags": [ - "sites" - ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", - "responses": { - "200": { - "description": "Site", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/site" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sites", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", - "tags": [ - "sites" - ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Deployments List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deploymentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/list-deployments.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", - "tags": [ - "sites" - ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": true, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "installCommand": { - "description": "Install Commands.", - "type": "string", - "example": "<INSTALL_COMMAND>", - "nullable": true - }, - "buildCommand": { - "description": "Build Commands.", - "type": "string", - "example": "<BUILD_COMMAND>", - "nullable": true - }, - "outputDirectory": { - "description": "Output Directory.", - "type": "string", - "example": "<OUTPUT_DIRECTORY>", - "nullable": true - }, - "code": { - "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", - "type": "string", - "format": "binary" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "code" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", - "tags": [ - "sites" - ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-duplicate-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "description": "Deployment ID.", - "type": "string", - "example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", - "tags": [ - "sites" - ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-template-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "description": "Repository name of the template.", - "type": "string", - "example": "<REPOSITORY>" - }, - "owner": { - "description": "The name of the owner of the template.", - "type": "string", - "example": "<OWNER>" - }, - "rootDirectory": { - "description": "Path to site code in the template repo.", - "type": "string", - "example": "<ROOT_DIRECTORY>" - }, - "type": { - "description": "Type for the reference provided. Can be commit, branch, or tag", - "type": "string", - "example": "branch", - "title": "TemplateReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "Reference value, can be a commit hash, branch name, or release tag", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "tags": [ - "sites" - ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", - "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/create-vcs-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "description": "Type of reference passed. Allowed values are: branch, commit", - "type": "string", - "example": "branch", - "title": "VCSReferenceType", - "oneOf": [ - { - "type": "string", - "enum": [ - "branch" - ], - "title": "branch" - }, - { - "type": "string", - "enum": [ - "commit" - ], - "title": "commit" - }, - { - "type": "string", - "enum": [ - "tag" - ], - "title": "tag" - } - ] - }, - "reference": { - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "type": "string", - "example": "<REFERENCE>" - }, - "activate": { - "description": "Automatically activate the deployment when it is finished building.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", - "tags": [ - "sites" - ], - "description": "Get a site deployment by its unique ID.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/get-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", - "tags": [ - "sites" - ], - "description": "Delete a site deployment by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/delete-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", - "tags": [ - "sites" - ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", - "responses": { - "200": { - "description": "File", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/get-deployment-download.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "public", - "sites.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "example": "source", - "title": "DeploymentDownloadType", - "oneOf": [ - { - "type": "string", - "enum": [ - "source" - ], - "title": "source" - }, - { - "type": "string", - "enum": [ - "output" - ], - "title": "output" - } - ], - "default": "source" - }, - "in": "query" - }, - { - "name": "token", - "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", - "tags": [ - "sites" - ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", - "responses": { - "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "deployments", - "demo": "sites\/update-deployment-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DEPLOYMENT_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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/sites\/{siteId}\/logs\/{logId}": { - "get": { - "summary": "Get log", - "operationId": "sitesGetLog", - "tags": [ - "sites" - ], - "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": { - "group": "logs", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LOG_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", - "tags": [ - "sites" - ], - "description": "Delete a site log by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "demo": "sites\/delete-log.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "schema": { - "type": "string", - "example": "<LOG_ID>" - }, - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "sitesListVariables", - "tags": [ - "sites" - ], - "description": "Get a list of all variables of a specific site.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "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, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", - "tags": [ - "sites" - ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", - "responses": { - "201": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "variableId": { - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<VARIABLE_ID>" - }, - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>" - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>" - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "variableId", - "key", - "value" - ] - } - } - } - } - } - }, - "\/sites\/{siteId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", - "tags": [ - "sites" - ], - "description": "Get a variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "variables", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "value": { - "description": "Variable value. Max length: 8192 chars.", - "type": "string", - "example": "<VALUE>", - "nullable": true - }, - "secret": { - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "type": "boolean", - "example": false, - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", - "tags": [ - "sites" - ], - "description": "Delete a variable by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "variables", - "demo": "sites\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<VARIABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets": { - "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", - "tags": [ - "storage" - ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Buckets List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucketList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/list-buckets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", - "tags": [ - "storage" - ], - "description": "Create a new storage bucket.", - "responses": { - "201": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/create-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "bucketId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<BUCKET_ID>" - }, - "name": { - "description": "Bucket name", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "fileSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "type": "integer", - "default": {}, - "example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "compression": { - "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", - "type": "string", - "default": "none", - "example": "none", - "title": "Compression", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "gzip" - ], - "title": "gzip" - }, - { - "type": "string", - "enum": [ - "zstd" - ], - "title": "zstd" - } - ] - }, - "encryption": { - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "antivirus": { - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "transformations": { - "description": "Are image transformations enabled?", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "bucketId", - "name" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}": { - "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", - "tags": [ - "storage" - ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/get-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", - "tags": [ - "storage" - ], - "description": "Update a storage bucket by its unique ID.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "buckets", - "demo": "storage\/update-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Bucket name", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "fileSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "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.", - "type": "boolean", - "default": true, - "example": false - }, - "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "type": "integer", - "default": {}, - "example": 1, - "format": "int32", - "nullable": true - }, - "allowedFileExtensions": { - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "compression": { - "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", - "type": "string", - "default": "none", - "example": "none", - "title": "Compression", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "gzip" - ], - "title": "gzip" - }, - { - "type": "string", - "enum": [ - "zstd" - ], - "title": "zstd" - } - ], - "nullable": true - }, - "encryption": { - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false, - "nullable": true - }, - "antivirus": { - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "type": "boolean", - "default": true, - "example": false - }, - "transformations": { - "description": "Are image transformations enabled?", - "type": "boolean", - "default": true, - "example": false - } - }, - "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": { - "group": "buckets", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", - "tags": [ - "storage" - ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Files List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/fileList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/list-files.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", - "tags": [ - "storage" - ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", - "responses": { - "201": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "multipart\/form-data": { - "schema": { - "type": "object", - "properties": { - "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.", - "type": "string", - "example": "<FILE_ID>" - }, - "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).", - "type": "string", - "format": "binary" - }, - "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).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "folder": { - "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", - "type": "string", - "default": "", - "example": "photos\/2026" - } - }, - "required": [ - "fileId", - "file" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", - "tags": [ - "storage" - ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", - "tags": [ - "storage" - ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/update-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "File name.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - } - } - } - } - } - } - }, - "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": { - "group": "files", - "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, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", - "tags": [ - "storage" - ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", - "responses": { - "200": { - "description": "Image", - "content": { - "image\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-preview.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "example": "auto", - "title": "ImageGravity", - "oneOf": [ - { - "type": "string", - "enum": [ - "auto" - ], - "title": "auto" - }, - { - "type": "string", - "enum": [ - "center" - ], - "title": "center" - }, - { - "type": "string", - "enum": [ - "top-left" - ], - "title": "top-left" - }, - { - "type": "string", - "enum": [ - "top" - ], - "title": "top" - }, - { - "type": "string", - "enum": [ - "top-right" - ], - "title": "top-right" - }, - { - "type": "string", - "enum": [ - "left" - ], - "title": "left" - }, - { - "type": "string", - "enum": [ - "right" - ], - "title": "right" - }, - { - "type": "string", - "enum": [ - "bottom-left" - ], - "title": "bottom-left" - }, - { - "type": "string", - "enum": [ - "bottom" - ], - "title": "bottom" - }, - { - "type": "string", - "enum": [ - "bottom-right" - ], - "title": "bottom-right" - } - ], - "default": "center" - }, - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "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", - "example": "FFFFFF", - "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", - "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", - "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", - "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", - "example": "FFFFFF", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "example": "jpg", - "title": "ImageFormat", - "oneOf": [ - { - "type": "string", - "enum": [ - "jpg" - ], - "title": "jpg" - }, - { - "type": "string", - "enum": [ - "jpeg" - ], - "title": "jpeg" - }, - { - "type": "string", - "enum": [ - "png" - ], - "title": "png" - }, - { - "type": "string", - "enum": [ - "webp" - ], - "title": "webp" - }, - { - "type": "string", - "enum": [ - "heic" - ], - "title": "heic" - }, - { - "type": "string", - "enum": [ - "avif" - ], - "title": "avif" - }, - { - "type": "string", - "enum": [ - "gif" - ], - "title": "gif" - } - ] - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "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", - "content": { - "*\/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "storage\/get-file-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [], - "ImpersonateUserId": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - }, - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [], - "ImpersonateUserId": [] - } - ], - "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", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "example": "<TOKEN>", - "default": "" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", - "tags": [ - "tablesDB" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.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 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, - "schema": { - "type": "string", - "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", - "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": { - "group": "tablesdb", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/tablesdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "tablesDBListSpecifications", - "tags": [ - "tablesDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/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": { - "group": "transactions", - "demo": "tablesdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create 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": { - "group": "transactions", - "demo": "tablesdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "tags": [ - "tablesDB" - ], - "description": "Get a transaction by its unique ID.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", - "tags": [ - "tablesDB" - ], - "description": "Update a transaction, to either commit or roll back its operations.", - "responses": { - "200": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "tablesdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", - "tags": [ - "tablesDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", - "tags": [ - "tablesDB" - ], - "description": "Create multiple operations in a single transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "name": "Walter O'Brien" - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createRow": { - "summary": "Stage a row creation", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "tableId": "<TABLE_ID>", - "rowId": "<ROW_ID>", - "data": { - "username": "walter.obrien" - } - } - ] - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", - "tags": [ - "tablesDB" - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", - "tags": [ - "tablesDB" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", - "tags": [ - "tablesDB" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "tablesDBCreateFailover", - "tags": [ - "tablesDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "tablesdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/migrations": { - "get": { - "summary": "List migrations", - "operationId": "tablesDBListMigrations", - "tags": [ - "tablesDB" - ], - "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", - "responses": { - "200": { - "description": "Database Migrations List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigrationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/list-migrations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - }, - "post": { - "summary": "Create migration", - "operationId": "tablesDBCreateMigration", - "tags": [ - "tablesDB" - ], - "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", - "responses": { - "201": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/create-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "specification": { - "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", - "type": "string", - "example": "s-1vcpu-1gb" - }, - "autoCutover": { - "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", - "type": "boolean", - "default": true, - "example": false - } - }, - "required": [ - "specification" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "tablesDBGetMigration", - "tags": [ - "tablesDB" - ], - "description": "Get a single dedicated migration for a TablesDB database by its ID.", - "responses": { - "200": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/get-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "tablesDBDeleteMigration", - "tags": [ - "tablesDB" - ], - "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/delete-migration.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { - "post": { - "summary": "Cutover migration", - "operationId": "tablesDBCreateCutover", - "tags": [ - "tablesDB" - ], - "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", - "responses": { - "200": { - "description": "Database Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseMigration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "migrations", - "demo": "tablesdb\/create-cutover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "tablesDBListOperations", - "tags": [ - "tablesDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "tablesdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "tablesDBGetReplicas", - "tags": [ - "tablesDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "tablesdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "tablesDBGetStatus", - "tags": [ - "tablesDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tablesdb", - "demo": "tablesdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "tables", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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, 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, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", - "tags": [ - "tablesDB" - ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "responses": { - "201": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/create-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "tableId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TABLE_ID>" - }, - "name": { - "description": "Table name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rowSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "columns": { - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "type": "array", - "default": [], - "items": { - "type": "object" - } - }, - "indexes": { - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "type": "array", - "default": [], - "items": { - "type": "object" - } - } - }, - "required": [ - "tableId", - "name" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", - "tags": [ - "tablesDB" - ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", - "responses": { - "200": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/get-table.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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", - "tags": [ - "tablesDB" - ], - "description": "Update a table by its unique ID.", - "responses": { - "200": { - "description": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/update-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Table name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rowSecurity": { - "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).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "purge": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", - "tags": [ - "tablesDB" - ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tables", - "demo": "tablesdb\/delete-table.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", - "tags": [ - "tablesDB" - ], - "description": "List columns in the table.", - "responses": { - "200": { - "description": "Columns List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/list-columns.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { - "patch": { - "summary": "Update bigint column", - "operationId": "tablesDBUpdateBigIntColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnBigInt", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBigint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 1000000, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a boolean column.\n", - "responses": { - "202": { - "description": "ColumnBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-boolean-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { - "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-boolean-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "boolean", - "example": false, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { - "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a date time column according to the ISO 8601 standard.", - "responses": { - "202": { - "description": "ColumnDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-datetime-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update datetime column", - "operationId": "tablesDBUpdateDatetimeColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnDatetime", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-datetime-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "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": "ColumnEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEmail" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-email-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnEmail", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEmail" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-email-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { - "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", - "tags": [ - "tablesDB" - ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", - "responses": { - "202": { - "description": "ColumnEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEnum" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "elements": { - "description": "Array of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "elements", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { - "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnEnum", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnEnum" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-enum-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "elements": { - "description": "Updated list of enum values.", - "type": "array", - "example": [ - "active", - "inactive" - ], - "items": { - "type": "string" - } - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "active", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { - "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "ColumnFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnFloat" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when required.", - "type": "number", - "example": 10.5, - "format": "float", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { - "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", - "tags": [ - "tablesDB" - ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", - "responses": { - "202": { - "description": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-integer-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-integer-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "min": { - "description": "Minimum value", - "type": "integer", - "example": 0, - "format": "int64", - "nullable": true - }, - "max": { - "description": "Maximum value", - "type": "integer", - "example": 100, - "format": "int64", - "nullable": true - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "integer", - "example": 10, - "format": "int64", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "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": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value. Cannot be set when column is required.", - "type": "string", - "example": "192.0.2.0", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric line column.", - "responses": { - "202": { - "description": "ColumnLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLine" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-line-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnLine", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLine" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-line-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a longtext column.\n", - "responses": { - "202": { - "description": "ColumnLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnLongtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-longtext-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a mediumtext column.\n", - "responses": { - "202": { - "description": "ColumnMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-mediumtext-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric point column.", - "responses": { - "202": { - "description": "ColumnPoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPoint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-point-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnPoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPoint" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-point-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - 1, - 2 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a geometric polygon column.", - "responses": { - "202": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-polygon-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", - "responses": { - "200": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-polygon-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "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.", - "type": "array", - "example": [ - [ - [ - 1, - 2 - ], - [ - 3, - 4 - ], - [ - 5, - 6 - ], - [ - 1, - 2 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", - "tags": [ - "tablesDB" - ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", - "responses": { - "202": { - "description": "ColumnRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-relationship-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "relatedTableId": { - "description": "Related Table ID.", - "type": "string", - "example": "<RELATED_TABLE_ID>" - }, - "type": { - "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", - "type": "string", - "example": "oneToOne", - "title": "RelationshipType", - "oneOf": [ - { - "type": "string", - "enum": [ - "oneToOne" - ], - "title": "oneToOne" - }, - { - "type": "string", - "enum": [ - "manyToOne" - ], - "title": "manyToOne" - }, - { - "type": "string", - "enum": [ - "manyToMany" - ], - "title": "manyToMany" - }, - { - "type": "string", - "enum": [ - "oneToMany" - ], - "title": "oneToMany" - } - ] - }, - "twoWay": { - "description": "Is Two Way?", - "type": "boolean", - "default": false, - "example": false - }, - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>", - "nullable": true - }, - "twoWayKey": { - "description": "Two Way Column Key.", - "type": "string", - "example": "<TWO_WAY_KEY>", - "nullable": true - }, - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "default": "restrict", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ] - } - }, - "required": [ - "relatedTableId", - "type" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { - "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": "ColumnRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-relationship-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "onDelete": { - "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", - "type": "string", - "example": "cascade", - "title": "RelationMutate", - "oneOf": [ - { - "type": "string", - "enum": [ - "cascade" - ], - "title": "cascade" - }, - { - "type": "string", - "enum": [ - "restrict" - ], - "title": "restrict" - }, - { - "type": "string", - "enum": [ - "setNull" - ], - "title": "setNull" - } - ], - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a string column.\n", - "responses": { - "202": { - "description": "ColumnString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Column size for text columns, in number of characters.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnString" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "columns", - "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, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the string column.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a text column.\n", - "responses": { - "202": { - "description": "ColumnText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnText" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnText", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnText" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a URL column.\n", - "responses": { - "202": { - "description": "ColumnURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnUrl" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", - "tags": [ - "tablesDB" - ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnUrl" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "https:\/\/example.com", - "format": "url", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", - "tags": [ - "tablesDB" - ], - "description": "Create a varchar column.\n", - "responses": { - "202": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/create-varchar-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Column Key.", - "type": "string", - "example": "<KEY>" - }, - "size": { - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "array": { - "description": "Is column an array?", - "type": "boolean", - "default": false, - "example": false - }, - "encrypt": { - "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.", - "type": "boolean", - "default": false, - "example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", - "tags": [ - "tablesDB" - ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", - "responses": { - "200": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/update-varchar-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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "description": "Is column required?", - "type": "boolean", - "example": false - }, - "default": { - "description": "Default value for column when not provided. Cannot be set when column is required.", - "type": "string", - "example": "Hello World", - "nullable": true - }, - "size": { - "description": "Maximum size of the varchar column.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "newKey": { - "description": "New Column Key.", - "type": "string", - "example": "<NEW_KEY>", - "nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { - "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", - "tags": [ - "tablesDB" - ], - "description": "Get column by ID.", - "responses": { - "200": { - "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", - "content": { - "application\/json": { - "schema": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "demo": "tablesdb\/get-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", - "tags": [ - "tablesDB" - ], - "description": "Deletes a column.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "columns", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", - "tags": [ - "tablesDB" - ], - "description": "List indexes on the table.", - "responses": { - "200": { - "description": "Column Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "tablesdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "indexes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "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`.", - "responses": { - "202": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "key", - "title": "TablesDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "fulltext" - ], - "title": "fulltext" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - }, - { - "type": "string", - "enum": [ - "spatial" - ], - "title": "spatial" - } - ] - }, - "columns": { - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", - "type": "array", - "example": [ - "username" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "columns" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", - "tags": [ - "tablesDB" - ], - "description": "Get index by ID.", - "responses": { - "200": { - "description": "Index", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndex" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "tablesdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "indexes.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", - "tags": [ - "tablesDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", - "tags": [ - "tablesDB" - ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/list-rows.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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", - "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", - "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": { - "group": "rows", - "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, - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create row", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - }, - { - "name": "createRows", - "namespace": "tablesDB", - "platforms": [ - "console", - "server" - ], - "summary": "Create rows", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-rows.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rowId": { - "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.", - "type": "string", - "example": "<ROW_ID>" - }, - "data": { - "description": "Row data as JSON object.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "rows": { - "description": "Array of rows data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "rowId", - "data" - ] - } - } - } - } - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", - "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", - "responses": { - "201": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rows": { - "description": "Array of row data as JSON objects. May contain partial rows.", - "type": "array", - "example": [ - { - "$id": "example1", - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - }, - "required": [ - "rows" - ] - } - } - } - } - }, - "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", - "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.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update explicitly selected rows", - "value": { - "data": { - "username": "walter.obrien" - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" - ] - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", - "tags": [ - "tablesDB" - ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", - "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", - "tags": [ - "tablesDB" - ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", - "responses": { - "200": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "demo": "tablesdb\/get-row.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", - "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.", - "responses": { - "201": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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, - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update row data", - "value": { - "data": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 30, - "isAdmin": false - } - } - } - } - } - } - } - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", - "tags": [ - "tablesDB" - ], - "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": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "type": "object", - "default": {}, - "example": { - "username": "walter.obrien", - "email": "walter.obrien@example.com", - "fullName": "Walter O'Brien", - "age": 33, - "isAdmin": false - } - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - }, - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - }, - "examples": { - "update": { - "summary": "Update row data", - "value": { - "data": { - "username": "walter.obrien" - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", - "tags": [ - "tablesDB" - ], - "description": "Delete a row by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rows", - "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": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", - "tags": [ - "tablesDB" - ], - "description": "Decrement 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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "min": { - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "type": "number", - "example": 0, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "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": { - "group": "rows", - "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" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string", - "example": "<COLUMN>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "description": "Value to increment the column by. The value must be a number.", - "type": "number", - "default": 1, - "example": 1, - "format": "float" - }, - "max": { - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "type": "number", - "example": 100, - "format": "float", - "nullable": true - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", - "tags": [ - "teams" - ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", - "responses": { - "200": { - "description": "Teams List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/teamList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. 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", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", - "tags": [ - "teams" - ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", - "responses": { - "201": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "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.", - "type": "string", - "example": "<TEAM_ID>" - }, - "name": { - "description": "Team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "roles": { - "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 81 characters long.", - "type": "array", - "default": [ - "owner" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", - "tags": [ - "teams" - ], - "description": "Get a team by its ID. All team members have read access for this resource.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", - "tags": [ - "teams" - ], - "description": "Update the team's name by its unique ID.", - "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-name.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "New team name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", - "tags": [ - "teams" - ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/installations": { - "get": { - "summary": "List Installations", - "operationId": "teamsListInstallations", - "tags": [ - "teams" - ], - "description": "List app installations on a team. Any team member can read installations.", - "responses": { - "200": { - "description": "App installations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/list-installations.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create Installation", - "operationId": "teamsCreateInstallation", - "tags": [ - "teams" - ], - "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", - "responses": { - "201": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/create-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "<APP_ID>" - }, - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", - "type": "string", - "default": "", - "example": "<AUTHORIZATION_DETAILS>" - } - }, - "required": [ - "appId" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/installations\/{installationId}": { - "get": { - "summary": "Get Installation", - "operationId": "teamsGetInstallation", - "tags": [ - "teams" - ], - "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/get-installation.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update Installation", - "operationId": "teamsUpdateInstallation", - "tags": [ - "teams" - ], - "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", - "responses": { - "200": { - "description": "AppInstallation", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/appInstallation" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/update-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "authorizationDetails": { - "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", - "type": "string", - "example": "<AUTHORIZATION_DETAILS>", - "nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "teamsDeleteInstallation", - "tags": [ - "teams" - ], - "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "teams\/delete-installation.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", - "tags": [ - "teams" - ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "Email of the new team member.", - "type": "string", - "default": "", - "example": "email@example.com", - "format": "email" - }, - "userId": { - "description": "ID of the user to be added to a team.", - "type": "string", - "default": "", - "example": "<USER_ID>" - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "default": "", - "example": "+12065550100", - "format": "phone" - }, - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "items": { - "type": "string" - } - }, - "url": { - "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.", - "type": "string", - "default": "", - "example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "description": "Name of the new team member. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", - "tags": [ - "teams" - ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/get-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update team membership", - "operationId": "teamsUpdateMembership", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "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.", - "type": "array", - "example": [ - "editor" - ], - "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": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/delete-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", - "tags": [ - "teams" - ], - "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": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "teams\/update-membership-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "schema": { - "type": "string", - "example": "<MEMBERSHIP_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID.", - "type": "string", - "example": "<USER_ID>" - }, - "secret": { - "description": "Secret key.", - "type": "string", - "example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] - } - } - } - } - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "tags": [ - "teams" - ], - "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": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update team preferences", - "operationId": "teamsUpdatePrefs", - "tags": [ - "teams" - ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "teams", - "demo": "teams\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "List tokens", - "operationId": "tokensList", - "tags": [ - "tokens" - ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Resource Tokens List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceTokenList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "demo": "tokens\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "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, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", - "tags": [ - "tokens" - ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", - "responses": { - "201": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "files", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<FILE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "description": "Token expiry date", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "tags": [ - "tokens" - ], - "description": "Get a token by its unique ID.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "tokens", - "demo": "tokens\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_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": { - "group": "tokens", - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "description": "File token expiry date", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "nullable": true - } - } - } - } - } - } - }, - "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": { - "group": "tokens", - "demo": "tokens\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TOKEN_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users": { - "get": { - "summary": "List users", - "operationId": "usersList", - "tags": [ - "users" - ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Users List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/userList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create user", - "operationId": "usersCreate", - "tags": [ - "users" - ], - "description": "Create a new user.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email", - "nullable": true - }, - "phone": { - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "type": "string", - "example": "+12065550100", - "format": "phone", - "nullable": true - }, - "password": { - "description": "Plain text user password. Must be at least 8 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password", - "nullable": true - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId" - ] - } - } - } - } - } - }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-argon-2-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Argon2.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-bcrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Bcrypt.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/identities": { - "get": { - "summary": "List identities", - "operationId": "usersListIdentities", - "tags": [ - "users" - ], - "description": "Get identities for all users.", - "responses": { - "200": { - "description": "Identities List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/identityList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "users\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.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: 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, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", - "tags": [ - "users" - ], - "description": "Delete an identity by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "identities", - "demo": "users\/delete-identity.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "identityId", - "description": "Identity ID.", - "required": true, - "schema": { - "type": "string", - "example": "<IDENTITY_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using MD5.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-ph-pass-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "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.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using PHPass.", - "type": "string", - "example": "password", - "format": "password" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-scrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Scrypt.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordSalt": { - "description": "Optional salt used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "description": "Optional CPU cost used to hash password.", - "type": "integer", - "example": 8, - "format": "int32" - }, - "passwordMemory": { - "description": "Optional memory cost used to hash password.", - "type": "integer", - "example": 65536, - "format": "int32" - }, - "passwordParallel": { - "description": "Optional parallelization cost used to hash password.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "passwordLength": { - "description": "Optional hash length used to hash password.", - "type": "integer", - "example": 64, - "format": "int32" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" - ] - } - } - } - } - } - }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", - "tags": [ - "users" - ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", - "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/create-scrypt-modified-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using Scrypt Modified.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordSalt": { - "description": "Salt used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "description": "Salt separator used to hash password.", - "type": "string", - "example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "description": "Signer key used to hash password.", - "type": "string", - "example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "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": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<USER_ID>" - }, - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - }, - "password": { - "description": "User password hashed using SHA.", - "type": "string", - "example": "password", - "format": "password" - }, - "passwordVersion": { - "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'", - "type": "string", - "example": "sha1", - "title": "PasswordHash", - "oneOf": [ - { - "type": "string", - "enum": [ - "sha1" - ], - "title": "sha1" - }, - { - "type": "string", - "enum": [ - "sha224" - ], - "title": "sha224" - }, - { - "type": "string", - "enum": [ - "sha256" - ], - "title": "sha256" - }, - { - "type": "string", - "enum": [ - "sha384" - ], - "title": "sha384" - }, - { - "type": "string", - "enum": [ - "sha512\/224" - ], - "title": "sha512\/224" - }, - { - "type": "string", - "enum": [ - "sha512\/256" - ], - "title": "sha512\/256" - }, - { - "type": "string", - "enum": [ - "sha512" - ], - "title": "sha512" - }, - { - "type": "string", - "enum": [ - "sha3-224" - ], - "title": "sha3-224" - }, - { - "type": "string", - "enum": [ - "sha3-256" - ], - "title": "sha3-256" - }, - { - "type": "string", - "enum": [ - "sha3-384" - ], - "title": "sha3-384" - }, - { - "type": "string", - "enum": [ - "sha3-512" - ], - "title": "sha3-512" - } - ] - }, - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } - } - } - } - }, - "\/users\/{userId}": { - "get": { - "summary": "Get user", - "operationId": "usersGet", - "tags": [ - "users" - ], - "description": "Get a user by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", - "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": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", - "tags": [ - "users" - ], - "description": "Update the user email by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "description": "User email.", - "type": "string", - "example": "email@example.com", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/impersonator": { - "patch": { - "summary": "Update user impersonator capability", - "operationId": "usersUpdateImpersonator", - "tags": [ - "users" - ], - "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. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-impersonator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "impersonator": { - "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.", - "type": "boolean", - "example": false - } - }, - "required": [ - "impersonator" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", - "tags": [ - "users" - ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", - "responses": { - "201": { - "description": "JWT", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/jwt" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-jwt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sessionId": { - "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", - "type": "string", - "default": "recent()", - "example": "recent()" - }, - "duration": { - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "type": "integer", - "default": 900, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", - "tags": [ - "users" - ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-labels.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "labels": { - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "type": "array", - "example": [ - "subscriber" - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/memberships": { - "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", - "tags": [ - "users" - ], - "description": "Get the user membership list by its unique ID.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "memberships", - "demo": "users\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", - "tags": [ - "users" - ], - "description": "Enable or disable MFA on a user account.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "users", - "demo": "users\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, - "methods": [ - { - "name": "updateMfa", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "description": "Enable or disable MFA.", - "type": "boolean", - "example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", - "tags": [ - "users" - ], - "description": "Delete an authenticator app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "users\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "schema": { - "type": "string", - "example": "totp", - "title": "AuthenticatorType", - "oneOf": [ - { - "type": "string", - "enum": [ - "totp" - ], - "title": "totp" - } - ] - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { - "get": { - "summary": "Get MFA challenge", - "operationId": "usersGetMFAChallenge", - "tags": [ - "users" - ], - "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", - "responses": { - "200": { - "description": "MFA Challenge Secret", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaChallengeSecret" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "mfa", - "demo": "users\/get-mfa-challenge.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "getMFAChallenge", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "challengeId" - ], - "required": [ - "userId", - "challengeId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaChallengeSecret" - } - ], - "description": "", - "demo": "users\/get-mfa-challenge.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "challengeId", - "description": "ID of the challenge.", - "required": true, - "schema": { - "type": "string", - "example": "<CHALLENGE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", - "tags": [ - "users" - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "responses": { - "200": { - "description": "MFAFactors", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "demo": "users\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_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" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", - "tags": [ - "users" - ], - "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": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", - "tags": [ - "users" - ], - "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": { - "201": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "group": "mfa", - "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": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", - "tags": [ - "users" - ], - "description": "Update the user name by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "User name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", - "tags": [ - "users" - ], - "description": "Update the user password by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "description": "New user password. Must be at least 8 chars.", - "type": "string", - "example": "password", - "format": "password" - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", - "tags": [ - "users" - ], - "description": "Update the user phone by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "number": { - "description": "User phone number.", - "type": "string", - "example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "number" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/prefs": { - "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", - "tags": [ - "users" - ], - "description": "Get the user preferences by its unique ID.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", - "tags": [ - "users" - ], - "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "demo": "users\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "description": "Prefs key-value JSON object.", - "type": "object", - "default": {}, - "example": {} - } - }, - "required": [ - "prefs" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/sessions": { - "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", - "tags": [ - "users" - ], - "description": "Get the user sessions list by its unique ID.", - "responses": { - "200": { - "description": "Sessions List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/sessionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.read", - "sessions.read" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create session", - "operationId": "usersCreateSession", - "tags": [ - "users" - ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", - "responses": { - "201": { - "description": "Session", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/session" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", - "tags": [ - "users" - ], - "description": "Delete all user's sessions by using the user's unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/delete-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", - "tags": [ - "users" - ], - "description": "Delete a user sessions by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/delete-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "sessionId", - "description": "Session ID.", - "required": true, - "schema": { - "type": "string", - "example": "<SESSION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "type": "boolean", - "example": false - } - }, - "required": [ - "status" - ] - } - } - } - } - } - }, - "\/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": { - "group": "targets", - "demo": "users\/list-targets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", - "tags": [ - "users" - ], - "description": "Create a messaging target.", - "responses": { - "201": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/create-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetId": { - "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<TARGET_ID>" - }, - "providerType": { - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "type": "string", - "example": "email", - "title": "MessagingProviderType", - "oneOf": [ - { - "type": "string", - "enum": [ - "email" - ], - "title": "email" - }, - { - "type": "string", - "enum": [ - "sms" - ], - "title": "sms" - }, - { - "type": "string", - "enum": [ - "push" - ], - "title": "push" - } - ] - }, - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "type": "string", - "default": "", - "example": "<NAME>" - } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/targets\/{targetId}": { - "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", - "tags": [ - "users" - ], - "description": "Get a user's push notification target by ID.", - "responses": { - "200": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/get-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "targets", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "identifier": { - "description": "The target identifier (token, email, phone etc.)", - "type": "string", - "default": "", - "example": "<IDENTIFIER>" - }, - "providerId": { - "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", - "type": "string", - "default": "", - "example": "<PROVIDER_ID>" - }, - "name": { - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "type": "string", - "default": "", - "example": "<NAME>" - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", - "tags": [ - "users" - ], - "description": "Delete a messaging target.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "targets", - "demo": "users\/delete-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TARGET_ID>" - }, - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", - "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", - "responses": { - "201": { - "description": "Token", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/token" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "sessions", - "demo": "users\/create-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "length": { - "description": "Token length in characters. The default length is 6 characters", - "type": "integer", - "default": 6, - "example": 4, - "format": "int32" - }, - "expire": { - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "type": "integer", - "default": 900, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", - "tags": [ - "users" - ], - "description": "Update the user email verification status by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emailVerification": { - "description": "User email verification status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "emailVerification" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", - "tags": [ - "users" - ], - "description": "Update the user phone verification status by its unique ID.", - "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "users", - "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, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "<USER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "description": "User phone verification status.", - "type": "boolean", - "example": false - } - }, - "required": [ - "phoneVerification" - ] - } - } - } - } - } - }, - "\/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": { - "group": "vectorsdb", - "demo": "vectorsdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.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 columns: name", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "vectorsDBCreate", - "tags": [ - "vectorsDB" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "databaseId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DATABASE_ID>" - }, - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", - "type": "string", - "default": "serverless", - "example": "serverless" - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/vectorsdb\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "vectorsDBListSpecifications", - "tags": [ - "vectorsDB" - ], - "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", - "responses": { - "200": { - "description": "SpecificationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/vectorsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", - "tags": [ - "vectorsDB" - ], - "description": "List transactions across all databases.", - "responses": { - "200": { - "description": "Transaction List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transactionList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", - "tags": [ - "vectorsDB" - ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "transactions", - "demo": "vectorsdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "description": "Seconds before the transaction expires.", - "type": "integer", - "default": 300, - "example": 60, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "transactions", - "demo": "vectorsdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "commit": { - "description": "Commit transaction?", - "type": "boolean", - "default": false, - "example": false - }, - "rollback": { - "description": "Rollback transaction?", - "type": "boolean", - "default": false, - "example": false - } - } - }, - "examples": { - "commit": { - "summary": "Commit the transaction", - "value": { - "commit": true - } - }, - "rollback": { - "summary": "Roll back the transaction", - "value": { - "rollback": true - } - } - } - } - } - } - }, - "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": { - "group": "transactions", - "demo": "vectorsdb\/delete-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "transactions", - "demo": "vectorsdb\/create-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server", - "client" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "operations": { - "description": "Array of staged operations.", - "type": "array", - "default": [], - "example": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - } - ], - "items": { - "type": "object" - } - } - } - }, - "examples": { - "createDocument": { - "summary": "Stage a document creation in a four-dimensional collection", - "value": { - "operations": [ - { - "action": "create", - "databaseId": "<DATABASE_ID>", - "collectionId": "<COLLECTION_ID>", - "documentId": "<DOCUMENT_ID>", - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - ] - } - } - } - } - } - } - } - }, - "\/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": { - "group": "vectorsdb", - "demo": "vectorsdb\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "vectorsdb", - "demo": "vectorsdb\/update.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Database name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "enabled": { - "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - }, - "specification": { - "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", - "type": "string", - "example": "serverless", - "nullable": true - }, - "replicas": { - "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true - }, - "syncMode": { - "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", - "type": "string", - "example": "async", - "nullable": true - } - }, - "required": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete database", - "operationId": "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": { - "group": "vectorsdb", - "demo": "vectorsdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "collections", - "demo": "vectorsdb\/list-collections.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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": { - "group": "collections", - "demo": "vectorsdb\/create-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "collectionId": { - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<COLLECTION_ID>" - }, - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "dimension": { - "description": "Embedding dimension.", - "type": "integer", - "example": 4, - "format": "int32" - }, - "permissions": { - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false - } - }, - "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": { - "group": "collections", - "demo": "vectorsdb\/get-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "collections", - "demo": "vectorsdb\/update-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Collection name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "dimension": { - "description": "Embedding dimensions.", - "type": "integer", - "example": 4, - "format": "int32" - }, - "permissions": { - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documentSecurity": { - "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "boolean", - "default": false, - "example": false - }, - "enabled": { - "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", - "type": "boolean", - "default": true, - "example": false, - "nullable": true - } - }, - "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": { - "group": "collections", - "demo": "vectorsdb\/delete-collection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.collections.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": "documents", - "demo": "vectorsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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 524288 characters long.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create document", - "operationId": "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": { - "group": "documents", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "createDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "Create document", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "vectorsDB", - "platforms": [ - "console", - "server" - ], - "summary": "Create documents", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/create-documents.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documentId": { - "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "data": { - "description": "Document data as JSON object.", - "type": "object", - "default": {}, - "example": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "key": "value" - } - } - }, - "permissions": { - "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "documents": { - "description": "Array of documents data as JSON objects.", - "type": "array", - "default": [], - "example": [ - { - "$id": "example1", - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - }, - "required": [ - "documentId", - "data" - ] - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocuments", - "namespace": "vectorsDB", - "platforms": [ - "console", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", - "demo": "vectorsdb\/upsert-documents.md", - "public": true - } - ], - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "documents": { - "description": "Array of document data as JSON objects. May contain partial documents.", - "type": "array", - "example": [ - { - "$id": "example1", - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "First document" - } - } - ], - "items": { - "type": "object" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "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": { - "group": "documents", - "demo": "vectorsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "updateSelected": { - "summary": "Update metadata on explicitly selected documents", - "value": { - "data": { - "metadata": { - "name": "Updated document" - } - }, - "queries": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_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": { - "group": "documents", - "demo": "vectorsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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" - }, - "example": [ - "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" - ], - "default": [] - }, - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { - "post": { - "summary": "Create query", - "operationId": "vectorsDBCreateQuery", - "tags": [ - "vectorsDB" - ], - "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "documents", - "demo": "vectorsdb\/create-query.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "queries": { - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID to read uncommitted changes within the transaction.", - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "total": { - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "type": "boolean", - "default": true, - "example": false - }, - "ttl": { - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", - "type": "integer", - "default": 0, - "example": 0, - "format": "int32" - } - } - } - } - } - } - } - }, - "\/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": { - "group": "documents", - "demo": "vectorsdb\/get-document.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.documents.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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": { - "group": "documents", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "platforms": [ - "console", - "client", - "server" - ], - "summary": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", - "demo": "vectorsdb\/upsert-document.md", - "public": true - } - ], - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "upsert": { - "summary": "Create or update a document in a four-dimensional collection", - "value": { - "data": { - "embeddings": [ - 0.12, - -0.55, - 0.88, - 1.02 - ], - "metadata": { - "name": "Example document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "type": "object", - "default": {}, - "example": {} - }, - "permissions": { - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "type": "array", - "example": [ - "read(\"any\")" - ], - "items": { - "type": "string" - } - }, - "transactionId": { - "description": "Transaction ID for staging the operation.", - "type": "string", - "example": "<TRANSACTION_ID>" - } - } - }, - "examples": { - "update": { - "summary": "Update document metadata", - "value": { - "data": { - "metadata": { - "name": "Updated document" - } - } - } - } - } - } - } - } - }, - "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": { - "group": "documents", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "vectorsdb.documents.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DOCUMENT_ID>" - }, - "in": "path" - }, - { - "name": "transactionId", - "description": "Transaction ID for staging the operation.", - "required": false, - "schema": { - "type": "string", - "example": "<TRANSACTION_ID>" - }, - "in": "query" - } - ] - } - }, - "\/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": { - "group": "indexes", - "demo": "vectorsdb\/list-indexes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "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", - "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": { - "group": "indexes", - "demo": "vectorsdb\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "description": "Index Key.", - "type": "string", - "example": "<KEY>" - }, - "type": { - "description": "Index type.", - "type": "string", - "example": "hnsw_euclidean", - "title": "VectorsDBIndexType", - "oneOf": [ - { - "type": "string", - "enum": [ - "hnsw_euclidean" - ], - "title": "hnsw_euclidean" - }, - { - "type": "string", - "enum": [ - "hnsw_dot" - ], - "title": "hnsw_dot" - }, - { - "type": "string", - "enum": [ - "hnsw_cosine" - ], - "title": "hnsw_cosine" - }, - { - "type": "string", - "enum": [ - "object" - ], - "title": "object" - }, - { - "type": "string", - "enum": [ - "key" - ], - "title": "key" - }, - { - "type": "string", - "enum": [ - "unique" - ], - "title": "unique" - } - ] - }, - "attributes": { - "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", - "type": "array", - "example": [ - "embeddings" - ], - "items": { - "type": "string" - } - }, - "orders": { - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "type": "array", - "default": [], - "items": { - "title": "OrderBy", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "asc" - ], - "title": "asc" - }, - { - "type": "string", - "enum": [ - "desc" - ], - "title": "desc" - } - ] - } - }, - "lengths": { - "description": "Length of index. Maximum of 100", - "type": "array", - "default": [], - "items": { - "type": "integer" - } - } - }, - "required": [ - "key", - "type", - "attributes" - ] - } - } - } - } - } - }, - "\/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": { - "group": "indexes", - "demo": "vectorsdb\/get-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "vectorsDBDeleteIndex", - "tags": [ - "vectorsDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "indexes", - "demo": "vectorsdb\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vectorsdb.indexes.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "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", - "example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string", - "example": "<KEY>" - }, - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/failovers": { - "post": { - "summary": "Create failover", - "operationId": "vectorsDBCreateFailover", - "tags": [ - "vectorsDB" - ], - "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", - "responses": { - "202": { - "description": "DedicatedDatabase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "failovers", - "demo": "vectorsdb\/create-failover.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetReplicaId": { - "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", - "type": "string", - "example": "<TARGET_REPLICA_ID>", - "nullable": true - } - } - } - } - } - } - } - }, - "\/vectorsdb\/{databaseId}\/operations": { - "get": { - "summary": "List operations", - "operationId": "vectorsDBListOperations", - "tags": [ - "vectorsDB" - ], - "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", - "responses": { - "200": { - "description": "OperationList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "operations", - "demo": "vectorsdb\/list-operations.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "status", - "description": "Filter by operation status.", - "required": false, - "schema": { - "type": "string", - "example": "queued" - }, - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of operations to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 1, - "default": 25 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Number of operations to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "example": 0, - "default": 0 - }, - "in": "query" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/replicas": { - "get": { - "summary": "Get replicas", - "operationId": "vectorsDBGetReplicas", - "tags": [ - "vectorsDB" - ], - "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", - "responses": { - "200": { - "description": "Replicas", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "replicas", - "demo": "vectorsdb\/get-replicas.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/status": { - "get": { - "summary": "Get status", - "operationId": "vectorsDBGetStatus", - "tags": [ - "vectorsDB" - ], - "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", - "responses": { - "200": { - "description": "Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "vectorsdb", - "demo": "vectorsdb\/get-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "example": "<DATABASE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/waf\/rules": { - "get": { - "summary": "List WAF rules.", - "operationId": "wafListRules", - "tags": [ - "waf" - ], - "description": "List WAF rules for the current project.\n", - "responses": { - "200": { - "description": "WAF rule list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/list-rules.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.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.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "example": "<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", - "example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/waf\/rules\/bypass": { - "post": { - "summary": "Create a bypass WAF rule.", - "operationId": "wafCreateBypassRule", - "tags": [ - "waf" - ], - "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleBypass", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleBypass" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-bypass-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Leave empty for the API resource type.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Bypass other rules for an IP", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Office network", - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/bypass\/{ruleId}": { - "patch": { - "summary": "Update a bypass WAF rule.", - "operationId": "wafUpdateBypassRule", - "tags": [ - "waf" - ], - "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleBypass", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleBypass" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-bypass-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/challenge": { - "post": { - "summary": "Create a challenge WAF rule.", - "operationId": "wafCreateChallengeRule", - "tags": [ - "waf" - ], - "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleChallenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleChallenge" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-challenge-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "challengeType": { - "description": "Challenge type enforced by the rule.", - "type": "string", - "default": "compute", - "example": "compute" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - }, - "difficulty": { - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", - "type": "integer", - "default": 3, - "example": 1, - "format": "int32" - }, - "ttl": { - "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", - "type": "integer", - "default": 1800, - "example": 900, - "format": "int32" - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Challenge requests to a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Challenge sign-ins", - "conditions": [ - "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/challenge\/{ruleId}": { - "patch": { - "summary": "Update a challenge WAF rule.", - "operationId": "wafUpdateChallengeRule", - "tags": [ - "waf" - ], - "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleChallenge", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleChallenge" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-challenge-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "challengeType": { - "description": "Challenge type enforced by the rule.", - "type": "string", - "example": "compute", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - }, - "difficulty": { - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "ttl": { - "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", - "type": "integer", - "example": 900, - "format": "int32", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/deny": { - "post": { - "summary": "Create a deny WAF rule.", - "operationId": "wafCreateDenyRule", - "tags": [ - "waf" - ], - "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleDeny", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleDeny" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-deny-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name" - ] - }, - "examples": { - "scoped": { - "summary": "Deny requests from an IP range", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Block abusive range", - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/deny\/{ruleId}": { - "patch": { - "summary": "Update a deny WAF rule.", - "operationId": "wafUpdateDenyRule", - "tags": [ - "waf" - ], - "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleDeny", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleDeny" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-deny-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/rate-limit": { - "post": { - "summary": "Create a rate-limit WAF rule.", - "operationId": "wafCreateRateLimitRule", - "tags": [ - "waf" - ], - "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleRateLimit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRateLimit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-rate-limit-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "limit": { - "description": "Maximum number of matching requests allowed in the configured interval.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "interval": { - "description": "Interval in seconds used for rate limiting.", - "type": "integer", - "example": 1, - "format": "int32" - }, - "key": { - "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", - "type": "string", - "default": "ip", - "example": "ip" - }, - "strategy": { - "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", - "type": "string", - "default": "fixedWindow", - "example": "fixedWindow" - }, - "maxBucketSize": { - "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name", - "limit", - "interval" - ] - }, - "examples": { - "scoped": { - "summary": "Rate limit requests to a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Limit sign-ins", - "limit": 10, - "interval": 60, - "conditions": [ - "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/rate-limit\/{ruleId}": { - "patch": { - "summary": "Update a rate-limit WAF rule.", - "operationId": "wafUpdateRateLimitRule", - "tags": [ - "waf" - ], - "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleRateLimit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRateLimit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-rate-limit-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "limit": { - "description": "Maximum number of matching requests allowed in the configured interval.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "interval": { - "description": "Interval in seconds used for rate limiting.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "key": { - "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", - "type": "string", - "example": "ip", - "nullable": true - }, - "maxBucketSize": { - "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", - "type": "integer", - "example": 1, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/redirect": { - "post": { - "summary": "Create a redirect WAF rule.", - "operationId": "wafCreateRedirectRule", - "tags": [ - "waf" - ], - "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "201": { - "description": "WafRuleRedirect", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRedirect" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/create-redirect-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ruleId": { - "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", - "type": "string", - "example": "<RULE_ID>" - }, - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api" - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>" - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "default": "", - "example": "<DESCRIPTION>" - }, - "location": { - "description": "Location used for redirect responses.", - "type": "string", - "example": "<LOCATION>" - }, - "statusCode": { - "description": "Integer status code used for redirect responses.", - "type": "integer", - "example": 300, - "format": "int32" - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "default": 0, - "example": -100000, - "format": "int32" - }, - "enabled": { - "description": "Set to false to create the rule in a disabled state.", - "type": "boolean", - "default": true, - "example": false - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] - } - }, - "required": [ - "ruleId", - "resourceType", - "name", - "location", - "statusCode" - ] - }, - "examples": { - "scoped": { - "summary": "Redirect requests for a path", - "value": { - "ruleId": "<RULE_ID>", - "resourceType": "api", - "name": "Moved page", - "location": "\/new-page", - "statusCode": 301, - "conditions": [ - "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" - ] - } - } - } - } - } - } - } - }, - "\/waf\/rules\/redirect\/{ruleId}": { - "patch": { - "summary": "Update a redirect WAF rule.", - "operationId": "wafUpdateRedirectRule", - "tags": [ - "waf" - ], - "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", - "responses": { - "200": { - "description": "WafRuleRedirect", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRuleRedirect" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/update-redirect-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resourceType": { - "description": "Resource type the rule applies to.", - "type": "string", - "example": "api", - "nullable": true - }, - "resourceId": { - "description": "Resource identifier. Required for functions and sites.", - "type": "string", - "example": "<RESOURCE_ID>", - "nullable": true - }, - "name": { - "description": "Rule name.", - "type": "string", - "example": "<NAME>", - "nullable": true - }, - "description": { - "description": "Optional description for the rule.", - "type": "string", - "example": "<DESCRIPTION>", - "nullable": true - }, - "location": { - "description": "Location used for redirect responses.", - "type": "string", - "example": "<LOCATION>", - "nullable": true - }, - "statusCode": { - "description": "Integer status code used for redirect responses.", - "type": "integer", - "example": 300, - "format": "int32", - "nullable": true - }, - "priority": { - "description": "Evaluation priority. Lower numbers run earlier.", - "type": "integer", - "example": -100000, - "format": "int32", - "nullable": true - }, - "enabled": { - "description": "Set to false to disable the rule.", - "type": "boolean", - "example": false, - "nullable": true - }, - "conditions": { - "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "nullable": true - } - } - } - } - } - } - } - }, - "\/waf\/rules\/{ruleId}": { - "get": { - "summary": "Get a WAF rule.", - "operationId": "wafGetRule", - "tags": [ - "waf" - ], - "description": "Get a WAF rule by its ID.\n", - "responses": { - "200": { - "description": "WafRule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/wafRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete a WAF rule.", - "operationId": "wafDeleteRule", - "tags": [ - "waf" - ], - "description": "Delete a WAF rule.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "group": "rules", - "demo": "waf\/delete-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "wafRules.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "example": "<RULE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/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": { - "group": null, - "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": [], - "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, 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", - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "webhookId": { - "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.", - "type": "string", - "example": "<WEBHOOK_ID>" - }, - "url": { - "description": "Webhook URL.", - "type": "string", - "example": "https:\/\/example.com\/webhook" - }, - "name": { - "description": "Webhook name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "example": [ - "users.*.create" - ], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Enable or disable a webhook.", - "type": "boolean", - "default": true, - "example": false - }, - "tls": { - "description": "Certificate verification, false for disabled or true for enabled.", - "type": "boolean", - "default": false, - "example": false - }, - "authUsername": { - "description": "Webhook HTTP user. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "<AUTH_USERNAME>" - }, - "authPassword": { - "description": "Webhook HTTP password. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "password", - "format": "password" - }, - "secret": { - "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.", - "type": "string", - "example": "<SECRET>", - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Webhook name. Max length: 128 chars.", - "type": "string", - "example": "<NAME>" - }, - "url": { - "description": "Webhook URL.", - "type": "string", - "example": "https:\/\/example.com\/webhook" - }, - "events": { - "description": "Events list. Maximum of 100 events are allowed.", - "type": "array", - "example": [ - "users.*.create" - ], - "items": { - "type": "string" - } - }, - "enabled": { - "description": "Enable or disable a webhook.", - "type": "boolean", - "default": true, - "example": false - }, - "tls": { - "description": "Certificate verification, false for disabled or true for enabled.", - "type": "boolean", - "default": false, - "example": false - }, - "authUsername": { - "description": "Webhook HTTP user. Max length: 256 chars.", - "type": "string", - "default": "", - "example": "<AUTH_USERNAME>" - }, - "authPassword": { - "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", - "type": "string", - "example": "password", - "format": "password", - "nullable": true - } - }, - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "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": { - "group": null, - "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": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "secret": { - "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.", - "type": "string", - "example": "<SECRET>", - "nullable": true - } - } - } - } - } - } - } - } - }, - "tags": [ - { - "name": "ping", - "description": "" - }, - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "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": "documentsDB", - "description": "" - }, - { - "name": "vectorsDB", - "description": "" - }, - { - "name": "presences", - "description": "The Presences service allows you to track and manage real-time user presence in your project." - }, - { - "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions." - }, - { - "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." - }, - { - "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications." - }, - { - "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." - }, - { - "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": "tokens", - "description": "The Tokens service allows you to create and manage resource tokens for secure file access." - }, - { - "name": "users", - "description": "The Users service allows you to manage your project users." - }, - { - "name": "storage", - "description": "The Storage service allows you to manage your project files." - }, - { - "name": "webhooks", - "description": "The Webhooks service allows you to manage your project webhooks." - }, - { - "name": "organization", - "description": "The Organization service allows you to manage organization-level projects." - }, - { - "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "advisor", - "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." - }, - { - "name": "mysql", - "description": "" - }, - { - "name": "postgresql", - "description": "" - }, - { - "name": "mongo", - "description": "" - }, - { - "name": "apps", - "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." - }, - { - "name": "oauth2", - "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." - }, - { - "name": "domains", - "description": "" - }, - { - "name": "backups", - "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." - }, - { - "name": "activities", - "description": "The Activities service allows you to list and inspect project activity events." - }, - { - "name": "analytics", - "description": "" - }, - { - "name": "waf", - "description": "" - }, - { - "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." - }, - { - "name": "embeddings", - "description": "" - }, - { - "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "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." - } - ], - "components": { - "schemas": { - "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.", - "format": "int32", - "example": 5 - }, - "rows": { - "type": "array", - "description": "List of rows.", - "items": { - "$ref": "#\/components\/schemas\/row" - }, - "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.", - "format": "int32", - "example": 5 - }, - "documents": { - "type": "array", - "description": "List of documents.", - "items": { - "$ref": "#\/components\/schemas\/document" - }, - "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.", - "format": "int32", - "example": 5 - }, - "presences": { - "type": "array", - "description": "List of presences.", - "items": { - "$ref": "#\/components\/schemas\/presence" - }, - "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.", - "format": "int32", - "example": 5 - }, - "tables": { - "type": "array", - "description": "List of tables.", - "items": { - "$ref": "#\/components\/schemas\/table" - }, - "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.", - "format": "int32", - "example": 5 - }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "$ref": "#\/components\/schemas\/collection" - }, - "example": [] - } - }, - "required": [ - "total", - "collections" - ], - "example": { - "total": 5, - "collections": "" - } - }, - "databaseList": { - "description": "Databases List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of databases that matched your query.", - "format": "int32", - "example": 5 - }, - "databases": { - "type": "array", - "description": "List of databases.", - "items": { - "$ref": "#\/components\/schemas\/database" - }, - "example": [] - } - }, - "required": [ - "total", - "databases" - ], - "example": { - "total": 5, - "databases": "" - } - }, - "indexList": { - "description": "Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "format": "int32", - "example": 5 - }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - } - }, - "required": [ - "total", - "indexes" - ], - "example": { - "total": 5, - "indexes": "" - } - }, - "columnIndexList": { - "description": "Column Indexes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of indexes that matched your query.", - "format": "int32", - "example": 5 - }, - "indexes": { - "type": "array", - "description": "List of indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" - }, - "example": [] - } - }, - "required": [ - "total", - "indexes" - ], - "example": { - "total": 5, - "indexes": "" - } - }, - "userList": { - "description": "Users List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of users that matched your query.", - "format": "int32", - "example": 5 - }, - "users": { - "type": "array", - "description": "List of users.", - "items": { - "$ref": "#\/components\/schemas\/user" - }, - "example": [] - } - }, - "required": [ - "total", - "users" - ], - "example": { - "total": 5, - "users": "" - } - }, - "sessionList": { - "description": "Sessions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sessions that matched your query.", - "format": "int32", - "example": 5 - }, - "sessions": { - "type": "array", - "description": "List of sessions.", - "items": { - "$ref": "#\/components\/schemas\/session" - }, - "example": [] - } - }, - "required": [ - "total", - "sessions" - ], - "example": { - "total": 5, - "sessions": "" - } - }, - "identityList": { - "description": "Identities List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of identities that matched your query.", - "format": "int32", - "example": 5 - }, - "identities": { - "type": "array", - "description": "List of identities.", - "items": { - "$ref": "#\/components\/schemas\/identity" - }, - "example": [] - } - }, - "required": [ - "total", - "identities" - ], - "example": { - "total": 5, - "identities": "" - } - }, - "fileList": { - "description": "Files List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of files that matched your query.", - "format": "int32", - "example": 5 - }, - "files": { - "type": "array", - "description": "List of files.", - "items": { - "$ref": "#\/components\/schemas\/file" - }, - "example": [] - } - }, - "required": [ - "total", - "files" - ], - "example": { - "total": 5, - "files": "" - } - }, - "bucketList": { - "description": "Buckets List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of buckets that matched your query.", - "format": "int32", - "example": 5 - }, - "buckets": { - "type": "array", - "description": "List of buckets.", - "items": { - "$ref": "#\/components\/schemas\/bucket" - }, - "example": [] - } - }, - "required": [ - "total", - "buckets" - ], - "example": { - "total": 5, - "buckets": "" - } - }, - "resourceTokenList": { - "description": "Resource Tokens List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "format": "int32", - "example": 5 - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/resourceToken" - }, - "example": [] - } - }, - "required": [ - "total", - "tokens" - ], - "example": { - "total": 5, - "tokens": "" - } - }, - "teamList": { - "description": "Teams List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of teams that matched your query.", - "format": "int32", - "example": 5 - }, - "teams": { - "type": "array", - "description": "List of teams.", - "items": { - "$ref": "#\/components\/schemas\/team" - }, - "example": [] - } - }, - "required": [ - "total", - "teams" - ], - "example": { - "total": 5, - "teams": "" - } - }, - "membershipList": { - "description": "Memberships List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of memberships that matched your query.", - "format": "int32", - "example": 5 - }, - "memberships": { - "type": "array", - "description": "List of memberships.", - "items": { - "$ref": "#\/components\/schemas\/membership" - }, - "example": [] - } - }, - "required": [ - "total", - "memberships" - ], - "example": { - "total": 5, - "memberships": "" - } - }, - "siteList": { - "description": "Sites List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of sites that matched your query.", - "format": "int32", - "example": 5 - }, - "sites": { - "type": "array", - "description": "List of sites.", - "items": { - "$ref": "#\/components\/schemas\/site" - }, - "example": [] - } - }, - "required": [ - "total", - "sites" - ], - "example": { - "total": 5, - "sites": "" - } - }, - "functionList": { - "description": "Functions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of functions that matched your query.", - "format": "int32", - "example": 5 - }, - "functions": { - "type": "array", - "description": "List of functions.", - "items": { - "$ref": "#\/components\/schemas\/function" - }, - "example": [] - } - }, - "required": [ - "total", - "functions" - ], - "example": { - "total": 5, - "functions": "" - } - }, - "frameworkList": { - "description": "Frameworks List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of frameworks that matched your query.", - "format": "int32", - "example": 5 - }, - "frameworks": { - "type": "array", - "description": "List of frameworks.", - "items": { - "$ref": "#\/components\/schemas\/framework" - }, - "example": [] - } - }, - "required": [ - "total", - "frameworks" - ], - "example": { - "total": 5, - "frameworks": "" - } - }, - "runtimeList": { - "description": "Runtimes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of runtimes that matched your query.", - "format": "int32", - "example": 5 - }, - "runtimes": { - "type": "array", - "description": "List of runtimes.", - "items": { - "$ref": "#\/components\/schemas\/runtime" - }, - "example": [] - } - }, - "required": [ - "total", - "runtimes" - ], - "example": { - "total": 5, - "runtimes": "" - } - }, - "deploymentList": { - "description": "Deployments List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of deployments that matched your query.", - "format": "int32", - "example": 5 - }, - "deployments": { - "type": "array", - "description": "List of deployments.", - "items": { - "$ref": "#\/components\/schemas\/deployment" - }, - "example": [] - } - }, - "required": [ - "total", - "deployments" - ], - "example": { - "total": 5, - "deployments": "" - } - }, - "executionList": { - "description": "Executions List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of executions that matched your query.", - "format": "int32", - "example": 5 - }, - "executions": { - "type": "array", - "description": "List of executions.", - "items": { - "$ref": "#\/components\/schemas\/execution" - }, - "example": [] - } - }, - "required": [ - "total", - "executions" - ], - "example": { - "total": 5, - "executions": "" - } - }, - "projectList": { - "description": "Projects List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of projects that matched your query.", - "format": "int32", - "example": 5 - }, - "projects": { - "type": "array", - "description": "List of projects.", - "items": { - "$ref": "#\/components\/schemas\/project" - }, - "example": [] - } - }, - "required": [ - "total", - "projects" - ], - "example": { - "total": 5, - "projects": "" - } - }, - "webhookList": { - "description": "Webhooks List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of webhooks that matched your query.", - "format": "int32", - "example": 5 - }, - "webhooks": { - "type": "array", - "description": "List of webhooks.", - "items": { - "$ref": "#\/components\/schemas\/webhook" - }, - "example": [] - } - }, - "required": [ - "total", - "webhooks" - ], - "example": { - "total": 5, - "webhooks": "" - } - }, - "keyList": { - "description": "API Keys List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of keys that matched your query.", - "format": "int32", - "example": 5 - }, - "keys": { - "type": "array", - "description": "List of keys.", - "items": { - "$ref": "#\/components\/schemas\/key" - }, - "example": [] - } - }, - "required": [ - "total", - "keys" - ], - "example": { - "total": 5, - "keys": "" - } - }, - "countryList": { - "description": "Countries List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of countries that matched your query.", - "format": "int32", - "example": 5 - }, - "countries": { - "type": "array", - "description": "List of countries.", - "items": { - "$ref": "#\/components\/schemas\/country" - }, - "example": [] - } - }, - "required": [ - "total", - "countries" - ], - "example": { - "total": 5, - "countries": "" - } - }, - "continentList": { - "description": "Continents List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of continents that matched your query.", - "format": "int32", - "example": 5 - }, - "continents": { - "type": "array", - "description": "List of continents.", - "items": { - "$ref": "#\/components\/schemas\/continent" - }, - "example": [] - } - }, - "required": [ - "total", - "continents" - ], - "example": { - "total": 5, - "continents": "" - } - }, - "languageList": { - "description": "Languages List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of languages that matched your query.", - "format": "int32", - "example": 5 - }, - "languages": { - "type": "array", - "description": "List of languages.", - "items": { - "$ref": "#\/components\/schemas\/language" - }, - "example": [] - } - }, - "required": [ - "total", - "languages" - ], - "example": { - "total": 5, - "languages": "" - } - }, - "currencyList": { - "description": "Currencies List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of currencies that matched your query.", - "format": "int32", - "example": 5 - }, - "currencies": { - "type": "array", - "description": "List of currencies.", - "items": { - "$ref": "#\/components\/schemas\/currency" - }, - "example": [] - } - }, - "required": [ - "total", - "currencies" - ], - "example": { - "total": 5, - "currencies": "" - } - }, - "phoneList": { - "description": "Phones List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of phones that matched your query.", - "format": "int32", - "example": 5 - }, - "phones": { - "type": "array", - "description": "List of phones.", - "items": { - "$ref": "#\/components\/schemas\/phone" - }, - "example": [] - } - }, - "required": [ - "total", - "phones" - ], - "example": { - "total": 5, - "phones": "" - } - }, - "variableList": { - "description": "Variables List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of variables that matched your query.", - "format": "int32", - "example": 5 - }, - "variables": { - "type": "array", - "description": "List of variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - } - }, - "required": [ - "total", - "variables" - ], - "example": { - "total": 5, - "variables": "" - } - }, - "mockNumberList": { - "description": "Mock Numbers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of mockNumbers that matched your query.", - "format": "int32", - "example": 5 - }, - "mockNumbers": { - "type": "array", - "description": "List of mockNumbers.", - "items": { - "$ref": "#\/components\/schemas\/mockNumber" - }, - "example": [] - } - }, - "required": [ - "total", - "mockNumbers" - ], - "example": { - "total": 5, - "mockNumbers": "" - } - }, - "policyList": { - "description": "Policies List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of policies in the given project.", - "format": "int32", - "example": 10 - }, - "policies": { - "type": "array", - "description": "List of policies.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordStrength" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPwned" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - }, - { - "$ref": "#\/components\/schemas\/policyMfaFactors" - }, - { - "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyFreeEmail" - }, - { - "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", - "password-history": "#\/components\/schemas\/policyPasswordHistory", - "password-strength": "#\/components\/schemas\/policyPasswordStrength", - "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", - "password-pwned": "#\/components\/schemas\/policyPasswordPwned", - "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", - "mfa-factors": "#\/components\/schemas\/policyMfaFactors", - "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", - "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", - "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", - "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "policies" - ], - "example": { - "total": 10, - "policies": "" - } - }, - "emailTemplateList": { - "description": "Email Templates List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of templates that matched your query.", - "format": "int32", - "example": 5 - }, - "templates": { - "type": "array", - "description": "List of templates.", - "items": { - "$ref": "#\/components\/schemas\/emailTemplate" - }, - "example": [] - } - }, - "required": [ - "total", - "templates" - ], - "example": { - "total": 5, - "templates": "" - } - }, - "proxyRuleList": { - "description": "Rule List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rules that matched your query.", - "format": "int32", - "example": 5 - }, - "rules": { - "type": "array", - "description": "List of rules.", - "items": { - "$ref": "#\/components\/schemas\/proxyRule" - }, - "example": [] - } - }, - "required": [ - "total", - "rules" - ], - "example": { - "total": 5, - "rules": "" - } - }, - "localeCodeList": { - "description": "Locale codes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of localeCodes that matched your query.", - "format": "int32", - "example": 5 - }, - "localeCodes": { - "type": "array", - "description": "List of localeCodes.", - "items": { - "$ref": "#\/components\/schemas\/localeCode" - }, - "example": [] - } - }, - "required": [ - "total", - "localeCodes" - ], - "example": { - "total": 5, - "localeCodes": "" - } - }, - "providerList": { - "description": "Provider list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of providers that matched your query.", - "format": "int32", - "example": 5 - }, - "providers": { - "type": "array", - "description": "List of providers.", - "items": { - "$ref": "#\/components\/schemas\/provider" - }, - "example": [] - } - }, - "required": [ - "total", - "providers" - ], - "example": { - "total": 5, - "providers": "" - } - }, - "messageList": { - "description": "Message list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of messages that matched your query.", - "format": "int32", - "example": 5 - }, - "messages": { - "type": "array", - "description": "List of messages.", - "items": { - "$ref": "#\/components\/schemas\/message" - }, - "example": [] - } - }, - "required": [ - "total", - "messages" - ], - "example": { - "total": 5, - "messages": "" - } - }, - "topicList": { - "description": "Topic list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of topics that matched your query.", - "format": "int32", - "example": 5 - }, - "topics": { - "type": "array", - "description": "List of topics.", - "items": { - "$ref": "#\/components\/schemas\/topic" - }, - "example": [] - } - }, - "required": [ - "total", - "topics" - ], - "example": { - "total": 5, - "topics": "" - } - }, - "subscriberList": { - "description": "Subscriber list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of subscribers that matched your query.", - "format": "int32", - "example": 5 - }, - "subscribers": { - "type": "array", - "description": "List of subscribers.", - "items": { - "$ref": "#\/components\/schemas\/subscriber" - }, - "example": [] - } - }, - "required": [ - "total", - "subscribers" - ], - "example": { - "total": 5, - "subscribers": "" - } - }, - "targetList": { - "description": "Target list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of targets that matched your query.", - "format": "int32", - "example": 5 - }, - "targets": { - "type": "array", - "description": "List of targets.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - } - }, - "required": [ - "total", - "targets" - ], - "example": { - "total": 5, - "targets": "" - } - }, - "transactionList": { - "description": "Transaction List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of transactions that matched your query.", - "format": "int32", - "example": 5 - }, - "transactions": { - "type": "array", - "description": "List of transactions.", - "items": { - "$ref": "#\/components\/schemas\/transaction" - }, - "example": [] - } - }, - "required": [ - "total", - "transactions" - ], - "example": { - "total": 5, - "transactions": "" - } - }, - "specificationList": { - "description": "Specifications List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of specifications that matched your query.", - "format": "int32", - "example": 5 - }, - "specifications": { - "type": "array", - "description": "List of specifications.", - "items": { - "$ref": "#\/components\/schemas\/specification" - }, - "example": [] - } - }, - "required": [ - "total", - "specifications" - ], - "example": { - "total": 5, - "specifications": "" - } - }, - "vectorsdbCollectionList": { - "description": "VectorsDB Collections List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of collections that matched your query.", - "format": "int32", - "example": 5 - }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" - }, - "example": [] - } - }, - "required": [ - "total", - "collections" - ], - "example": { - "total": 5, - "collections": "" - } - }, - "embeddingList": { - "description": "Embedding list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of embeddings that matched your query.", - "format": "int32", - "example": 5 - }, - "embeddings": { - "type": "array", - "description": "List of embeddings.", - "items": { - "$ref": "#\/components\/schemas\/embedding" - }, - "example": [] - } - }, - "required": [ - "total", - "embeddings" - ], - "example": { - "total": 5, - "embeddings": "" - } - }, - "insightList": { - "description": "Insights List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of insights that matched your query.", - "format": "int32", - "example": 5 - }, - "insights": { - "type": "array", - "description": "List of insights.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "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.", - "format": "int32", - "example": 5 - }, - "reports": { - "type": "array", - "description": "List of reports.", - "items": { - "$ref": "#\/components\/schemas\/report" - }, - "example": [] - } - }, - "required": [ - "total", - "reports" - ], - "example": { - "total": 5, - "reports": "" - } - }, - "database": { - "description": "Database", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Database name.", - "example": "My Database" - }, - "$createdAt": { - "type": "string", - "description": "Database creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Database update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "enabled": { - "type": "boolean", - "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "type": { - "description": "Database type.", - "example": "legacy", - "title": "DatabaseType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "legacy" - ], - "title": "legacy" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "documentsdb" - ], - "title": "documentsdb" - }, - { - "type": "string", - "enum": [ - "vectorsdb" - ], - "title": "vectorsdb" - }, - { - "type": "string", - "enum": [ - "mysql" - ], - "title": "mysql" - }, - { - "type": "string", - "enum": [ - "postgresql" - ], - "title": "postgresql" - }, - { - "type": "string", - "enum": [ - "mongodb" - ], - "title": "mongodb" - } - ] - }, - "status": { - "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", - "readOnly": true, - "example": "ready", - "title": "DatabaseStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "provisioning" - ], - "title": "provisioning" - }, - { - "type": "string", - "enum": [ - "ready" - ], - "title": "ready" - }, - { - "type": "string", - "enum": [ - "inactive" - ], - "title": "inactive" - }, - { - "type": "string", - "enum": [ - "paused" - ], - "title": "paused" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "deleted" - ], - "title": "deleted" - }, - { - "type": "string", - "enum": [ - "restoring" - ], - "title": "restoring" - }, - { - "type": "string", - "enum": [ - "scaling" - ], - "title": "scaling" - }, - { - "type": "string", - "enum": [ - "upgrading" - ], - "title": "upgrading" - }, - { - "type": "string", - "enum": [ - "migrating" - ], - "title": "migrating" - }, - { - "type": "string", - "enum": [ - "pausing" - ], - "title": "pausing" - }, - { - "type": "string", - "enum": [ - "resuming" - ], - "title": "resuming" - }, - { - "type": "string", - "enum": [ - "failing-over" - ], - "title": "failing-over" - } - ], - "nullable": true - }, - "engine": { - "type": "string", - "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", - "readOnly": true, - "example": "postgresql", - "nullable": true - }, - "specification": { - "type": "string", - "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", - "readOnly": true, - "example": "s-2vcpu-2gb", - "nullable": true - }, - "replicas": { - "type": "integer", - "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", - "format": "int32", - "readOnly": true, - "example": 0, - "nullable": true - }, - "error": { - "type": "string", - "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", - "readOnly": true, - "example": "", - "nullable": true - }, - "containerStatus": { - "type": "string", - "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", - "readOnly": true, - "example": "active", - "nullable": true - }, - "lifecycleState": { - "type": "string", - "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", - "readOnly": true, - "example": "active", - "nullable": true - }, - "policies": { - "type": "array", - "description": "Database backup policies.", - "items": { - "$ref": "#\/components\/schemas\/backupPolicy" - }, - "example": [], - "nullable": true - }, - "archives": { - "type": "array", - "description": "Database backup archives.", - "items": { - "$ref": "#\/components\/schemas\/backupArchive" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "enabled", - "type" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "My Database", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "enabled": false, - "type": "legacy", - "status": "ready", - "engine": "postgresql", - "specification": "s-2vcpu-2gb", - "replicas": 0, - "error": "", - "containerStatus": "active", - "lifecycleState": "active", - "policies": {}, - "archives": {} - } - }, - "embedding": { - "description": "Embedding", - "type": "object", - "properties": { - "model": { - "type": "string", - "description": "Embedding model used to generate embeddings.", - "example": "nomic-embed-text" - }, - "dimension": { - "type": "integer", - "description": "Number of dimensions for each embedding vector.", - "format": "int32", - "example": 768 - }, - "embedding": { - "type": "array", - "description": "Embedding vector values. If an error occurs, this will be an empty array.", - "items": { - "type": "number", - "format": "double" - }, - "example": [ - 0.01, - 0.02, - 0.03 - ] - }, - "error": { - "type": "string", - "description": "Error message if embedding generation fails. Empty string if no error.", - "example": "Error message" - } - }, - "required": [ - "model", - "dimension", - "embedding", - "error" - ], - "example": { - "model": "nomic-embed-text", - "dimension": 768, - "embedding": [ - 0.01, - 0.02, - 0.03 - ], - "error": "Error message" - } - }, - "collection": { - "description": "Collection", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Collection ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Collection name.", - "example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "attributes": { - "type": "array", - "description": "Collection attributes.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Collection indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "format": "int32", - "example": 1500 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Collection", - "enabled": false, - "documentSecurity": true, - "attributes": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500 - } - }, - "attributeList": { - "description": "Attributes List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of attributes in the given collection.", - "format": "int32", - "example": 5 - }, - "attributes": { - "type": "array", - "description": "List of attributes.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributePolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/attributeString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - } - }, - "required": [ - "total", - "attributes" - ], - "example": { - "total": 5, - "attributes": "" - } - }, - "attributeString": { - "description": "AttributeString", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Attribute size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "attributeInteger": { - "description": "AttributeInteger", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "integer" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "int32", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "integer", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "attributeBigint": { - "description": "AttributeBigInt", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "bigint" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "int64", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "bigint", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "attributeFloat": { - "description": "AttributeFloat", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "percentageCompleted" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "double" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "format": "double", - "example": 1.5, - "nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "format": "double", - "example": 10.5, - "nullable": true - }, - "default": { - "type": "number", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "format": "double", - "example": 2.5, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "percentageCompleted", - "type": "double", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1.5, - "max": 10.5, - "default": 2.5 - } - }, - "attributeBoolean": { - "description": "AttributeBoolean", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "isEnabled" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "boolean" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "isEnabled", - "type": "boolean", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": false - } - }, - "attributeEmail": { - "description": "AttributeEmail", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "userEmail" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "email" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default@example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "userEmail", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "email", - "default": "default@example.com" - } - }, - "attributeEnum": { - "description": "AttributeEnum", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "status" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "elements": { - "type": "array", - "description": "Array of elements in enumerated type.", - "items": { - "type": "string" - }, - "example": [ - "element" - ] - }, - "format": { - "type": "string", - "description": "String format.", - "example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "element", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "elements", - "format" - ], - "example": { - "key": "status", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "elements": "element", - "format": "enum", - "default": "element" - } - }, - "attributeIp": { - "description": "AttributeIP", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "ipAddress" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "ip" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "192.0.2.0", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "ipAddress", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "ip", - "default": "192.0.2.0" - } - }, - "attributeUrl": { - "description": "AttributeURL", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "githubUrl" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "url" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "http:\/\/example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "githubUrl", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "url", - "default": "http:\/\/example.com" - } - }, - "attributeDatetime": { - "description": "AttributeDatetime", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "birthDay" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "datetime" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "example": "datetime" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Only null is optional", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "birthDay", - "type": "datetime", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "default": "2020-10-15T06:38:00.000+00:00" - } - }, - "attributeRelationship": { - "description": "AttributeRelationship", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "relatedCollection": { - "type": "string", - "description": "The ID of the related collection.", - "example": "collection" - }, - "relationType": { - "type": "string", - "description": "The type of the relationship.", - "example": "oneToOne|oneToMany|manyToOne|manyToMany" - }, - "twoWay": { - "type": "boolean", - "description": "Is the relationship two-way?", - "example": false - }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "example": "string" - }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "example": "restrict|cascade|setNull" - }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "example": "parent|child" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "relatedCollection", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "relatedCollection": "collection", - "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", - "twoWay": false, - "twoWayKey": "string", - "onDelete": "restrict|cascade|setNull", - "side": "parent|child" - } - }, - "attributePoint": { - "description": "AttributePoint", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - 0, - 0 - ] - } - }, - "attributeLine": { - "description": "AttributeLine", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] - } - }, - "attributePolygon": { - "description": "AttributePolygon", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] - } - }, - "attributeVarchar": { - "description": "AttributeVarchar", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Attribute size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "attributeText": { - "description": "AttributeText", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "attributeMediumtext": { - "description": "AttributeMediumtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "attributeLongtext": { - "description": "AttributeLongtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "vectorsdbCollection": { - "description": "VectorsDB Collection", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Collection ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Collection creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Collection update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Collection name.", - "example": "My Collection" - }, - "enabled": { - "type": "boolean", - "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "documentSecurity": { - "type": "boolean", - "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "attributes": { - "type": "array", - "description": "Collection attributes.", - "items": { - "anyOf": [ - { - "$ref": "#\/components\/schemas\/attributeObject" - }, - { - "$ref": "#\/components\/schemas\/attributeVector" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "object": "#\/components\/schemas\/attributeObject", - "vector": "#\/components\/schemas\/attributeVector" - } - } - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Collection indexes.", - "items": { - "$ref": "#\/components\/schemas\/index" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum document size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used document size in bytes based on defined attributes.", - "format": "int32", - "example": 1500 - }, - "dimension": { - "type": "integer", - "description": "Embedding dimension.", - "format": "int32", - "example": 1536 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "documentSecurity", - "attributes", - "indexes", - "bytesMax", - "bytesUsed", - "dimension" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Collection", - "enabled": false, - "documentSecurity": true, - "attributes": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500, - "dimension": 1536 - } - }, - "attributeObject": { - "description": "AttributeObject", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "attributeVector": { - "description": "AttributeVector", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Attribute type.", - "example": "string" - }, - "status": { - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "AttributeStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Vector dimensions.", - "format": "int32", - "example": 1536 - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 1536 - } - }, - "table": { - "description": "Table", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Table ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Table creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Table update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "databaseId": { - "type": "string", - "description": "Database ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Table name.", - "example": "My Table" - }, - "enabled": { - "type": "boolean", - "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", - "example": false - }, - "rowSecurity": { - "type": "boolean", - "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "columns": { - "type": "array", - "description": "Table columns.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - }, - "indexes": { - "type": "array", - "description": "Table indexes.", - "items": { - "$ref": "#\/components\/schemas\/columnIndex" - }, - "example": [] - }, - "bytesMax": { - "type": "integer", - "description": "Maximum row size in bytes. Returns 0 when no limit applies.", - "format": "int32", - "example": 65535 - }, - "bytesUsed": { - "type": "integer", - "description": "Currently used row size in bytes based on defined columns.", - "format": "int32", - "example": 1500 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "databaseId", - "name", - "enabled", - "rowSecurity", - "columns", - "indexes", - "bytesMax", - "bytesUsed" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "databaseId": "5e5ea5c16897e", - "name": "My Table", - "enabled": false, - "rowSecurity": true, - "columns": {}, - "indexes": {}, - "bytesMax": 65535, - "bytesUsed": 1500 - } - }, - "columnList": { - "description": "Columns List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of columns in the given table.", - "format": "int32", - "example": 5 - }, - "columns": { - "type": "array", - "description": "List of columns.", - "items": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "boolean" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnBigint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "bigint" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "integer" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "double" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "email" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "enum" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "url" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "type": "object", - "required": [ - "type", - "format" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - }, - "format": { - "enum": [ - "ip" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "datetime" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "relationship" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPoint" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "point" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLine" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "linestring" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnPolygon" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "polygon" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnVarchar" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "varchar" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnMediumtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "mediumtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnLongtext" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "longtext" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#\/components\/schemas\/columnString" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "enum": [ - "string" - ] - } - } - } - ] - } - ] - }, - "example": [] - } - }, - "required": [ - "total", - "columns" - ], - "example": { - "total": 5, - "columns": "" - } - }, - "columnString": { - "description": "ColumnString", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Column size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "columnInteger": { - "description": "ColumnInteger", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "integer" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "int32", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "integer", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "columnBigint": { - "description": "ColumnBigInt", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "count" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "bigint" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "integer", - "description": "Minimum value to enforce for new documents.", - "format": "int64", - "example": 1, - "nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value to enforce for new documents.", - "format": "int64", - "example": 10, - "nullable": true - }, - "default": { - "type": "integer", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "int64", - "example": 10, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "count", - "type": "bigint", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1, - "max": 10, - "default": 10 - } - }, - "columnFloat": { - "description": "ColumnFloat", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "percentageCompleted" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "double" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "min": { - "type": "number", - "description": "Minimum value to enforce for new documents.", - "format": "double", - "example": 1.5, - "nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value to enforce for new documents.", - "format": "double", - "example": 10.5, - "nullable": true - }, - "default": { - "type": "number", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "format": "double", - "example": 2.5, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "percentageCompleted", - "type": "double", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "min": 1.5, - "max": 10.5, - "default": 2.5 - } - }, - "columnBoolean": { - "description": "ColumnBoolean", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "isEnabled" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "boolean" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "isEnabled", - "type": "boolean", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": false - } - }, - "columnEmail": { - "description": "ColumnEmail", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "userEmail" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "email" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default@example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "userEmail", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "email", - "default": "default@example.com" - } - }, - "columnEnum": { - "description": "ColumnEnum", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "status" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "elements": { - "type": "array", - "description": "Array of elements in enumerated type.", - "items": { - "type": "string" - }, - "example": [ - "element" - ] - }, - "format": { - "type": "string", - "description": "String format.", - "example": "enum" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "element", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "elements", - "format" - ], - "example": { - "key": "status", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "elements": "element", - "format": "enum", - "default": "element" - } - }, - "columnIp": { - "description": "ColumnIP", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "ipAddress" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "ip" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "192.0.2.0", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "ipAddress", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "ip", - "default": "192.0.2.0" - } - }, - "columnUrl": { - "description": "ColumnURL", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "githubUrl" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "String format.", - "example": "url" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "https:\/\/example.com", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "githubUrl", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "url", - "default": "https:\/\/example.com" - } - }, - "columnDatetime": { - "description": "ColumnDatetime", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "birthDay" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "datetime" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "format": { - "type": "string", - "description": "ISO 8601 format.", - "example": "datetime" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Only null is optional", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "format" - ], - "example": { - "key": "birthDay", - "type": "datetime", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "default": "2020-10-15T06:38:00.000+00:00" - } - }, - "columnRelationship": { - "description": "ColumnRelationship", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "relatedTable": { - "type": "string", - "description": "The ID of the related table.", - "example": "table" - }, - "relationType": { - "type": "string", - "description": "The type of the relationship.", - "example": "oneToOne|oneToMany|manyToOne|manyToMany" - }, - "twoWay": { - "type": "boolean", - "description": "Is the relationship two-way?", - "example": false - }, - "twoWayKey": { - "type": "string", - "description": "The key of the two-way relationship.", - "example": "string" - }, - "onDelete": { - "type": "string", - "description": "How deleting the parent document will propagate to child documents.", - "example": "restrict|cascade|setNull" - }, - "side": { - "type": "string", - "description": "Whether this is the parent or child side of the relationship", - "example": "parent|child" - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "relatedTable", - "relationType", - "twoWay", - "twoWayKey", - "onDelete", - "side" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "relatedTable": "table", - "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", - "twoWay": false, - "twoWayKey": "string", - "onDelete": "restrict|cascade|setNull", - "side": "parent|child" - } - }, - "columnPoint": { - "description": "ColumnPoint", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - 0, - 0 - ], - "items": { - "type": "number", - "format": "double" - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - 0, - 0 - ] - } - }, - "columnLine": { - "description": "ColumnLine", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ], - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - 0, - 0 - ], - [ - 1, - 1 - ] - ] - } - }, - "columnPolygon": { - "description": "ColumnPolygon", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "array", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number", - "format": "double" - } - } - }, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] - } - }, - "columnVarchar": { - "description": "ColumnVarchar", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "size": { - "type": "integer", - "description": "Column size.", - "format": "int32", - "example": 128 - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt", - "size" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, - "default": "default", - "encrypt": false - } - }, - "columnText": { - "description": "ColumnText", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "columnMediumtext": { - "description": "ColumnMediumtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "columnLongtext": { - "description": "ColumnLongtext", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "example": "fullName" - }, - "type": { - "type": "string", - "description": "Column type.", - "example": "string" - }, - "status": { - "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "title": "ColumnStatus", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an column.", - "example": "string" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "example": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "example": false, - "nullable": true - }, - "$createdAt": { - "type": "string", - "description": "Column creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Column update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this column is encrypted or not.", - "example": false, - "nullable": true - } - }, - "required": [ - "key", - "type", - "status", - "error", - "required", - "$createdAt", - "$updatedAt" - ], - "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false - } - }, - "index": { - "description": "Index", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Index ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Index creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Index update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Index key.", - "example": "index1" - }, - "type": { - "type": "string", - "description": "Index type.", - "example": "primary" - }, - "status": { - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "available" - ], - "title": "available" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "deleting" - ], - "title": "deleting" - }, - { - "type": "string", - "enum": [ - "stuck" - ], - "title": "stuck" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", - "example": "string" - }, - "attributes": { - "type": "array", - "description": "Index attributes.", - "items": { - "type": "string" - }, - "example": [] - }, - "lengths": { - "type": "array", - "description": "Index attributes length.", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [] - }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "type", - "status", - "error", - "attributes", - "lengths" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "index1", - "type": "primary", - "status": "available", - "error": "string", - "attributes": [], - "lengths": [], - "orders": [] - } - }, - "columnIndex": { - "description": "Index", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Index ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Index creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Index update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Index Key.", - "example": "index1" - }, - "type": { - "type": "string", - "description": "Index type.", - "example": "primary" - }, - "status": { - "type": "string", - "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "example": "available" - }, - "error": { - "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an index.", - "example": "string" - }, - "columns": { - "type": "array", - "description": "Index columns.", - "items": { - "type": "string" - }, - "example": [] - }, - "lengths": { - "type": "array", - "description": "Index columns length.", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [] - }, - "orders": { - "type": "array", - "description": "Index orders.", - "items": { - "type": "string" - }, - "example": [], - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "type", - "status", - "error", - "columns", - "lengths" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "index1", - "type": "primary", - "status": "available", - "error": "string", - "columns": [], - "lengths": [], - "orders": [] - } - }, - "row": { - "description": "Row", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Row ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Row sequence ID.", - "readOnly": true, - "example": "1" - }, - "$tableId": { - "type": "string", - "description": "Table ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Row creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Row update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$tableId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$tableId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ] - } - }, - "document": { - "description": "Document", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Document ID.", - "example": "5e5ea5c16897e" - }, - "$sequence": { - "type": "string", - "description": "Document sequence ID.", - "readOnly": true, - "example": "1" - }, - "$collectionId": { - "type": "string", - "description": "Collection ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$databaseId": { - "type": "string", - "description": "Database ID.", - "readOnly": true, - "example": "5e5ea5c15117e" - }, - "$createdAt": { - "type": "string", - "description": "Document creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Document update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - } - }, - "additionalProperties": true, - "required": [ - "$id", - "$sequence", - "$collectionId", - "$databaseId", - "$createdAt", - "$updatedAt", - "$permissions" - ], - "example": { - "$id": "5e5ea5c16897e", - "$sequence": "1", - "$collectionId": "5e5ea5c15117e", - "$databaseId": "5e5ea5c15117e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "username": "john.doe", - "email": "john.doe@example.com", - "fullName": "John Doe", - "age": 30, - "isAdmin": false - } - }, - "presence": { - "description": "Presence", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Presence ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Presence creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Presence update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "674af8f3e12a5f9ac0be" - }, - "status": { - "type": "string", - "description": "Presence status.", - "example": "online", - "nullable": true - }, - "source": { - "type": "string", - "description": "Presence source.", - "example": "HTTP" - }, - "expiresAt": { - "type": "string", - "description": "Presence expiry date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "metadata": { - "type": "object", - "additionalProperties": true, - "description": "Presence metadata.", - "example": { - "key": "value" - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "userId", - "source" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "userId": "674af8f3e12a5f9ac0be", - "status": "online", - "source": "HTTP", - "expiresAt": "2020-10-15T06:38:00.000+00:00", - "metadata": { - "key": "value" - } - } - }, - "user": { - "description": "User", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "password": { - "type": "string", - "description": "Hashed user password.", - "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "nullable": true - }, - "hash": { - "type": "string", - "description": "Password hashing algorithm.", - "example": "argon2", - "nullable": true - }, - "hashOptions": { - "type": "object", - "description": "Password hashing algorithm configuration.", - "example": {}, - "allOf": [ - { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/algoArgon2" - }, - { - "$ref": "#\/components\/schemas\/algoScrypt" - }, - { - "$ref": "#\/components\/schemas\/algoScryptModified" - }, - { - "$ref": "#\/components\/schemas\/algoBcrypt" - }, - { - "$ref": "#\/components\/schemas\/algoPhpass" - }, - { - "$ref": "#\/components\/schemas\/algoSha" - }, - { - "$ref": "#\/components\/schemas\/algoMd5" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "argon2": "#\/components\/schemas\/algoArgon2", - "scrypt": "#\/components\/schemas\/algoScrypt", - "scryptMod": "#\/components\/schemas\/algoScryptModified", - "bcrypt": "#\/components\/schemas\/algoBcrypt", - "phpass": "#\/components\/schemas\/algoPhpass", - "sha": "#\/components\/schemas\/algoSha", - "md5": "#\/components\/schemas\/algoMd5" - } - } - } - ], - "nullable": true - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", - "hash": "argon2", - "hashOptions": {}, - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "algoMd5": { - "description": "AlgoMD5", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "md5" - } - }, - "required": [ - "type" - ], - "example": { - "type": "md5" - } - }, - "algoSha": { - "description": "AlgoSHA", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "sha" - } - }, - "required": [ - "type" - ], - "example": { - "type": "sha" - } - }, - "algoPhpass": { - "description": "AlgoPHPass", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "phpass" - } - }, - "required": [ - "type" - ], - "example": { - "type": "phpass" - } - }, - "algoBcrypt": { - "description": "AlgoBcrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "bcrypt" - } - }, - "required": [ - "type" - ], - "example": { - "type": "bcrypt" - } - }, - "algoScrypt": { - "description": "AlgoScrypt", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scrypt" - }, - "costCpu": { - "type": "integer", - "description": "CPU complexity of computed hash.", - "format": "int32", - "example": 8 - }, - "costMemory": { - "type": "integer", - "description": "Memory complexity of computed hash.", - "format": "int32", - "example": 14 - }, - "costParallel": { - "type": "integer", - "description": "Parallelization of computed hash.", - "format": "int32", - "example": 1 - }, - "length": { - "type": "integer", - "description": "Length used to compute hash.", - "format": "int32", - "example": 64 - } - }, - "required": [ - "type", - "costCpu", - "costMemory", - "costParallel", - "length" - ], - "example": { - "type": "scrypt", - "costCpu": 8, - "costMemory": 14, - "costParallel": 1, - "length": 64 - } - }, - "algoScryptModified": { - "description": "AlgoScryptModified", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "scryptMod" - }, - "salt": { - "type": "string", - "description": "Salt used to compute hash.", - "example": "UxLMreBr6tYyjQ==" - }, - "saltSeparator": { - "type": "string", - "description": "Separator used to compute hash.", - "example": "Bw==" - }, - "signerKey": { - "type": "string", - "description": "Key used to compute hash.", - "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "required": [ - "type", - "salt", - "saltSeparator", - "signerKey" - ], - "example": { - "type": "scryptMod", - "salt": "UxLMreBr6tYyjQ==", - "saltSeparator": "Bw==", - "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" - } - }, - "algoArgon2": { - "description": "AlgoArgon2", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Algo type.", - "example": "argon2" - }, - "memoryCost": { - "type": "integer", - "description": "Memory used to compute hash.", - "format": "int32", - "example": 65536 - }, - "timeCost": { - "type": "integer", - "description": "Amount of time consumed to compute hash", - "format": "int32", - "example": 4 - }, - "threads": { - "type": "integer", - "description": "Number of threads used to compute hash.", - "format": "int32", - "example": 3 - } - }, - "required": [ - "type", - "memoryCost", - "timeCost", - "threads" - ], - "example": { - "type": "argon2", - "memoryCost": 65536, - "timeCost": 4, - "threads": 3 - } - }, - "account": { - "description": "Account", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "User creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "User update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "User name.", - "example": "John Doe" - }, - "registration": { - "type": "string", - "description": "User registration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "boolean", - "description": "User status. Pass `true` for enabled and `false` for disabled.", - "example": true - }, - "labels": { - "type": "array", - "description": "Labels for the user.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "passwordUpdate": { - "type": "string", - "description": "Password update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "email": { - "type": "string", - "description": "User email address.", - "example": "john@appwrite.io" - }, - "phone": { - "type": "string", - "description": "User phone number in E.164 format.", - "example": "+4930901820" - }, - "emailVerification": { - "type": "boolean", - "description": "Email verification status.", - "example": true - }, - "emailCanonical": { - "type": "string", - "description": "Canonical form of the user email address.", - "example": "john@appwrite.io", - "nullable": true - }, - "emailIsFree": { - "type": "boolean", - "description": "Whether the user email is from a free email provider.", - "example": true, - "nullable": true - }, - "emailIsDisposable": { - "type": "boolean", - "description": "Whether the user email is from a disposable email provider.", - "example": false, - "nullable": true - }, - "emailIsCorporate": { - "type": "boolean", - "description": "Whether the user email is from a corporate domain.", - "example": true, - "nullable": true - }, - "emailIsCanonical": { - "type": "boolean", - "description": "Whether the user email is in its canonical form.", - "example": true, - "nullable": true - }, - "passwordPwned": { - "type": "boolean", - "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", - "example": false, - "nullable": true - }, - "phoneVerification": { - "type": "boolean", - "description": "Phone verification status.", - "example": true - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status.", - "example": true - }, - "prefs": { - "type": "object", - "description": "User preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "targets": { - "type": "array", - "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", - "items": { - "$ref": "#\/components\/schemas\/target" - }, - "example": [] - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users.", - "example": false, - "nullable": true - }, - "impersonatorUserId": { - "type": "string", - "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", - "example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "registration", - "status", - "labels", - "passwordUpdate", - "email", - "phone", - "emailVerification", - "phoneVerification", - "mfa", - "prefs", - "targets", - "accessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "John Doe", - "registration": "2020-10-15T06:38:00.000+00:00", - "status": true, - "labels": [ - "vip" - ], - "passwordUpdate": "2020-10-15T06:38:00.000+00:00", - "email": "john@appwrite.io", - "phone": "+4930901820", - "emailVerification": true, - "emailCanonical": "john@appwrite.io", - "emailIsFree": true, - "emailIsDisposable": false, - "emailIsCorporate": true, - "emailIsCanonical": true, - "passwordPwned": false, - "phoneVerification": true, - "mfa": true, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "targets": [], - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "impersonator": false, - "impersonatorUserId": "5e5ea5c16897e" - } - }, - "preferences": { - "description": "Preferences", - "type": "object", - "additionalProperties": true, - "example": { - "language": "en", - "timezone": "UTC", - "darkTheme": true - } - }, - "session": { - "description": "Session", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Session ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Session creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Session update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "expire": { - "type": "string", - "description": "Session expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "provider": { - "type": "string", - "description": "Session Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "Session Provider User ID.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Session Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Session Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "ip": { - "type": "string", - "description": "IP in use when the session was created.", - "example": "127.0.0.1" - }, - "osCode": { - "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "example": "Mac" - }, - "osName": { - "type": "string", - "description": "Operating system name.", - "example": "Mac" - }, - "osVersion": { - "type": "string", - "description": "Operating system version.", - "example": "Mac" - }, - "clientType": { - "type": "string", - "description": "Client type.", - "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).", - "example": "CM" - }, - "clientName": { - "type": "string", - "description": "Client name.", - "example": "Chrome Mobile iOS" - }, - "clientVersion": { - "type": "string", - "description": "Client version.", - "example": "84.0" - }, - "clientEngine": { - "type": "string", - "description": "Client engine name.", - "example": "WebKit" - }, - "clientEngineVersion": { - "type": "string", - "description": "Client engine name.", - "example": "605.1.15" - }, - "deviceName": { - "type": "string", - "description": "Device name.", - "example": "smartphone" - }, - "deviceBrand": { - "type": "string", - "description": "Device brand name.", - "example": "Google" - }, - "deviceModel": { - "type": "string", - "description": "Device model name.", - "example": "Nexus 5" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "current": { - "type": "boolean", - "description": "Returns true if this the current user session.", - "example": true - }, - "factors": { - "type": "array", - "description": "Returns a list of active session factors.", - "items": { - "type": "string" - }, - "example": [ - "email" - ] - }, - "secret": { - "type": "string", - "description": "Secret used to authenticate the user. Only included if the request was made with an API key", - "example": "5e5bb8c16897e" - }, - "mfaUpdatedAt": { - "type": "string", - "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "expire", - "provider", - "providerUid", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "ip", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName", - "current", - "factors", - "secret", - "mfaUpdatedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "expire": "2020-10-15T06:38:00.000+00:00", - "provider": "email", - "providerUid": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "ip": "127.0.0.1", - "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", - "current": true, - "factors": [ - "email" - ], - "secret": "5e5bb8c16897e", - "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "identity": { - "description": "Identity", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Identity ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Identity creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Identity update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5bb8c16897e" - }, - "provider": { - "type": "string", - "description": "Identity Provider.", - "example": "email" - }, - "providerUid": { - "type": "string", - "description": "ID of the User in the Identity Provider.", - "example": "5e5bb8c16897e" - }, - "providerEmail": { - "type": "string", - "description": "Email of the User in the Identity Provider.", - "example": "user@example.com" - }, - "providerAccessToken": { - "type": "string", - "description": "Identity Provider Access Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerAccessTokenExpiry": { - "type": "string", - "description": "The date of when the access token expires in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerRefreshToken": { - "type": "string", - "description": "Identity Provider Refresh Token.", - "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" - }, - "providerIdToken": { - "type": "string", - "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", - "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "provider", - "providerUid", - "providerEmail", - "providerAccessToken", - "providerAccessTokenExpiry", - "providerRefreshToken", - "providerIdToken" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5bb8c16897e", - "provider": "email", - "providerUid": "5e5bb8c16897e", - "providerEmail": "user@example.com", - "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", - "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "token": { - "description": "Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "secret": { - "type": "string", - "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "phrase": { - "type": "string", - "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", - "example": "Golden Fox" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "secret", - "expire", - "phrase" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "secret": "", - "expire": "2020-10-15T06:38:00.000+00:00", - "phrase": "Golden Fox" - } - }, - "jwt": { - "description": "JWT", - "type": "object", - "properties": { - "jwt": { - "type": "string", - "description": "JWT encoded string.", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "required": [ - "jwt" - ], - "example": { - "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - } - }, - "locale": { - "description": "Locale", - "type": "object", - "properties": { - "ip": { - "type": "string", - "description": "User IP address.", - "example": "127.0.0.1" - }, - "countryCode": { - "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", - "example": "US" - }, - "country": { - "type": "string", - "description": "Country name. This field support localization.", - "example": "United States" - }, - "continentCode": { - "type": "string", - "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", - "example": "NA" - }, - "continent": { - "type": "string", - "description": "Continent name. This field support localization.", - "example": "North America" - }, - "eu": { - "type": "boolean", - "description": "True if country is part of the European Union.", - "example": false - }, - "currency": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", - "example": "USD" - }, - "city": { - "type": "string", - "description": "City", - "example": "Kathmandu", - "nullable": true - }, - "timeZone": { - "type": "string", - "description": "Name of timezone", - "example": "Asia\/Kathmandu", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Postal code", - "example": "44600", - "nullable": true - }, - "latitude": { - "type": "number", - "description": "Latitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "longitude": { - "type": "number", - "description": "Longitude", - "format": "double", - "example": 82.345, - "nullable": true - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN) of the IP", - "example": "15169", - "nullable": true - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN", - "example": "GOOGLE", - "nullable": true - }, - "isp": { - "type": "string", - "description": "Internet service provider of the IP", - "example": "Google", - "nullable": true - }, - "connectionType": { - "type": "string", - "description": "Connection type of the IP (e.g. cable, cellular, corporate)", - "example": "cable", - "nullable": true - }, - "connectionUsageType": { - "type": "string", - "description": "User type classification of the IP (e.g. residential, business, hosting)", - "example": "residential", - "nullable": true - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP", - "example": "Google LLC", - "nullable": true - } - }, - "required": [ - "ip", - "countryCode", - "country", - "continentCode", - "continent", - "eu", - "currency" - ], - "example": { - "ip": "127.0.0.1", - "countryCode": "US", - "country": "United States", - "continentCode": "NA", - "continent": "North America", - "eu": false, - "currency": "USD", - "city": "Kathmandu", - "timeZone": "Asia\/Kathmandu", - "postalCode": "44600", - "latitude": "82.345", - "longitude": "82.345", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "isp": "Google", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC" - } - }, - "localeCode": { - "description": "LocaleCode", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", - "example": "en-us" - }, - "name": { - "type": "string", - "description": "Locale name", - "example": "US" - } - }, - "required": [ - "code", - "name" - ], - "example": { - "code": "en-us", - "name": "US" - } - }, - "file": { - "description": "File", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "File ID.", - "example": "5e5ea5c16897e" - }, - "bucketId": { - "type": "string", - "description": "Bucket ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "File creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "File update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "name": { - "type": "string", - "description": "File name.", - "example": "Pink.png" - }, - "folder": { - "type": "string", - "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", - "example": "photos\/2026\/" - }, - "key": { - "type": "string", - "description": "Full virtual path of the file: the folder followed by the file name.", - "example": "photos\/2026\/Pink.png" - }, - "signature": { - "type": "string", - "description": "File MD5 signature.", - "example": "5d529fd02b544198ae075bd57c1762bb" - }, - "mimeType": { - "type": "string", - "description": "File mime type.", - "example": "image\/png" - }, - "sizeOriginal": { - "type": "integer", - "description": "File original size in bytes.", - "format": "int32", - "example": 17890 - }, - "sizeActual": { - "type": "integer", - "description": "File actual stored size in bytes after compression and\/or encryption.", - "format": "int32", - "example": 12345 - }, - "chunksTotal": { - "type": "integer", - "description": "Total number of chunks available", - "format": "int32", - "example": 17890 - }, - "chunksUploaded": { - "type": "integer", - "description": "Total number of chunks uploaded", - "format": "int32", - "example": 17890 - }, - "encryption": { - "type": "boolean", - "description": "Whether file contents are encrypted at rest.", - "example": true - }, - "compression": { - "type": "string", - "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", - "example": "gzip" - } - }, - "required": [ - "$id", - "bucketId", - "$createdAt", - "$updatedAt", - "$permissions", - "name", - "folder", - "key", - "signature", - "mimeType", - "sizeOriginal", - "sizeActual", - "chunksTotal", - "chunksUploaded", - "encryption", - "compression" - ], - "example": { - "$id": "5e5ea5c16897e", - "bucketId": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "name": "Pink.png", - "folder": "photos\/2026\/", - "key": "photos\/2026\/Pink.png", - "signature": "5d529fd02b544198ae075bd57c1762bb", - "mimeType": "image\/png", - "sizeOriginal": 17890, - "sizeActual": 12345, - "chunksTotal": 17890, - "chunksUploaded": 17890, - "encryption": true, - "compression": "gzip" - } - }, - "bucket": { - "description": "Bucket", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Bucket ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Bucket creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Bucket update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "items": { - "type": "string" - }, - "example": [ - "read(\"any\")" - ] - }, - "fileSecurity": { - "type": "boolean", - "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "example": true - }, - "name": { - "type": "string", - "description": "Bucket name.", - "example": "Documents" - }, - "enabled": { - "type": "boolean", - "description": "Bucket enabled.", - "example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size supported.", - "format": "int32", - "example": 100 - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions.", - "items": { - "type": "string" - }, - "example": [ - "jpg", - "png" - ] - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", - "example": "gzip" - }, - "encryption": { - "type": "boolean", - "description": "Bucket is encrypted.", - "example": false - }, - "antivirus": { - "type": "boolean", - "description": "Virus scanning is enabled.", - "example": false - }, - "transformations": { - "type": "boolean", - "description": "Image transformations are enabled.", - "example": false - }, - "totalSize": { - "type": "integer", - "description": "Total size of this bucket in bytes.", - "format": "int32", - "example": 128 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "fileSecurity", - "name", - "enabled", - "maximumFileSize", - "allowedFileExtensions", - "compression", - "encryption", - "antivirus", - "transformations", - "totalSize" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "fileSecurity": true, - "name": "Documents", - "enabled": false, - "maximumFileSize": 100, - "allowedFileExtensions": [ - "jpg", - "png" - ], - "compression": "gzip", - "encryption": false, - "antivirus": false, - "transformations": false, - "totalSize": 128 - } - }, - "resourceToken": { - "description": "ResourceToken", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "5e5ea5c168bb8:5e5ea5c168bb8" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "files" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "secret": { - "type": "string", - "description": "JWT encoded string.", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "resourceId", - "resourceType", - "expire", - "secret", - "accessedAt" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", - "resourceType": "files", - "expire": "2020-10-15T06:38:00.000+00:00", - "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", - "accessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "team": { - "description": "Team", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Team creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "total": { - "type": "integer", - "description": "Total number of team members.", - "format": "int32", - "example": 7 - }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "total", - "prefs" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "VIP", - "total": 7, - "prefs": { - "theme": "pink", - "timezone": "UTC" - } - } - }, - "membership": { - "description": "Membership", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Membership ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Membership creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Membership update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User name. Hide this attribute by toggling membership privacy in the Console.", - "example": "John Doe" - }, - "userEmail": { - "type": "string", - "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", - "example": "john@appwrite.io" - }, - "userPhone": { - "type": "string", - "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", - "example": "+1 555 555 5555" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "teamName": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "invited": { - "type": "string", - "description": "Date, the user has been invited to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "joined": { - "type": "string", - "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "confirm": { - "type": "boolean", - "description": "User confirmation status, true if the user has joined the team or false otherwise.", - "example": false - }, - "mfa": { - "type": "boolean", - "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", - "example": false - }, - "userAccessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "roles": { - "type": "array", - "description": "User list of roles", - "items": { - "type": "string" - }, - "example": [ - "owner" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "userName", - "userEmail", - "userPhone", - "teamId", - "teamName", - "invited", - "joined", - "confirm", - "mfa", - "userAccessedAt", - "roles" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "userName": "John Doe", - "userEmail": "john@appwrite.io", - "userPhone": "+1 555 555 5555", - "teamId": "5e5ea5c16897e", - "teamName": "VIP", - "invited": "2020-10-15T06:38:00.000+00:00", - "joined": "2020-10-15T06:38:00.000+00:00", - "confirm": false, - "mfa": false, - "userAccessedAt": "2020-10-15T06:38:00.000+00:00", - "roles": [ - "owner" - ] - } - }, - "site": { - "description": "Site", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Site ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Site creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Site update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Site name.", - "example": "My Site" - }, - "enabled": { - "type": "boolean", - "description": "Site enabled.", - "example": false - }, - "live": { - "type": "boolean", - "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", - "example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "example": false - }, - "framework": { - "type": "string", - "description": "Site framework.", - "example": "react" - }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "deploymentId": { - "type": "string", - "description": "Site's active deployment ID.", - "example": "5e5ea5c16897e" - }, - "deploymentCreatedAt": { - "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "deploymentScreenshotLight": { - "type": "string", - "description": "Screenshot of active deployment with light theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "deploymentScreenshotDark": { - "type": "string", - "description": "Screenshot of active deployment with dark theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentId": { - "type": "string", - "description": "Site's latest deployment ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentCreatedAt": { - "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentStatus": { - "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "example": "ready" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "vars": { - "type": "array", - "description": "Site variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - }, - "timeout": { - "type": "integer", - "description": "Site request timeout in seconds.", - "format": "int32", - "example": 300 - }, - "installCommand": { - "type": "string", - "description": "The install command used to install the site dependencies.", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "The build command used to build the site.", - "example": "npm run build" - }, - "startCommand": { - "type": "string", - "description": "Custom command to use when starting site runtime.", - "example": "node custom-server.mjs" - }, - "outputDirectory": { - "type": "string", - "description": "The directory where the site build output is located.", - "example": "build" - }, - "installationId": { - "type": "string", - "description": "Site VCS (Version Control System) installation id.", - "example": "6m40at4ejk5h2u9s1hboo" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "appwrite" - }, - "providerBranch": { - "type": "string", - "description": "VCS (Version Control System) branch name", - "example": "main" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site in VCS (Version Control System) repository", - "example": "sites\/helloWorld" - }, - "providerSilentMode": { - "type": "boolean", - "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", - "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" - }, - "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" - }, - "example": [ - "src\/**", - "!docs\/**" - ] - }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "type": "string", - "description": "Machine specification for SSR executions.", - "example": "s-1vcpu-512mb" - }, - "buildRuntime": { - "type": "string", - "description": "Site build runtime.", - "example": "node-22" - }, - "adapter": { - "type": "string", - "description": "Site framework adapter.", - "example": "static" - }, - "fallbackFile": { - "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", - "example": "index.html" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "enabled", - "live", - "logging", - "framework", - "deploymentRetention", - "deploymentId", - "deploymentCreatedAt", - "deploymentScreenshotLight", - "deploymentScreenshotDark", - "latestDeploymentId", - "latestDeploymentCreatedAt", - "latestDeploymentStatus", - "scopes", - "vars", - "timeout", - "installCommand", - "buildCommand", - "startCommand", - "outputDirectory", - "installationId", - "providerRepositoryId", - "providerBranch", - "providerRootDirectory", - "providerSilentMode", - "providerBranches", - "providerPaths", - "buildSpecification", - "runtimeSpecification", - "buildRuntime", - "adapter", - "fallbackFile" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Site", - "enabled": false, - "live": false, - "logging": false, - "framework": "react", - "deploymentRetention": 7, - "deploymentId": "5e5ea5c16897e", - "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "deploymentScreenshotLight": "5e5ea5c16897e", - "deploymentScreenshotDark": "5e5ea5c16897e", - "latestDeploymentId": "5e5ea5c16897e", - "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentStatus": "ready", - "scopes": "users.read", - "vars": [], - "timeout": 300, - "installCommand": "npm install", - "buildCommand": "npm run build", - "startCommand": "node custom-server.mjs", - "outputDirectory": "build", - "installationId": "6m40at4ejk5h2u9s1hboo", - "providerRepositoryId": "appwrite", - "providerBranch": "main", - "providerRootDirectory": "sites\/helloWorld", - "providerSilentMode": false, - "providerBranches": [ - "main", - "feat\/*" - ], - "providerPaths": [ - "src\/**", - "!docs\/**" - ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb", - "buildRuntime": "node-22", - "adapter": "static", - "fallbackFile": "index.html" - } - }, - "function": { - "description": "Function", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Function ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Function creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Function update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "execute": { - "type": "array", - "description": "Execution permissions.", - "items": { - "type": "string" - }, - "example": [ - "users" - ] - }, - "name": { - "type": "string", - "description": "Function name.", - "example": "My Function" - }, - "enabled": { - "type": "boolean", - "description": "Function enabled.", - "example": false - }, - "live": { - "type": "boolean", - "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", - "example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "example": false - }, - "runtime": { - "type": "string", - "description": "Function execution and build runtime.", - "example": "python-3.8" - }, - "deploymentRetention": { - "type": "integer", - "description": "How many days to keep the non-active deployments before they will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "deploymentId": { - "type": "string", - "description": "Function's active deployment ID.", - "example": "5e5ea5c16897e" - }, - "deploymentCreatedAt": { - "type": "string", - "description": "Active deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentId": { - "type": "string", - "description": "Function's latest deployment ID.", - "example": "5e5ea5c16897e" - }, - "latestDeploymentCreatedAt": { - "type": "string", - "description": "Latest deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latestDeploymentStatus": { - "type": "string", - "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", - "example": "ready" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "vars": { - "type": "array", - "description": "Function variables.", - "items": { - "$ref": "#\/components\/schemas\/variable" - }, - "example": [] - }, - "events": { - "type": "array", - "description": "Function trigger events.", - "items": { - "type": "string" - }, - "example": [ - "account.create" - ] - }, - "schedule": { - "type": "string", - "description": "Function execution schedule in CRON format.", - "example": "5 4 * * *" - }, - "timeout": { - "type": "integer", - "description": "Function execution timeout in seconds.", - "format": "int32", - "example": 300 - }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file used to execute the deployment.", - "example": "index.js" - }, - "commands": { - "type": "string", - "description": "The build command used to build the deployment.", - "example": "npm install" - }, - "version": { - "type": "string", - "description": "Version of Open Runtimes used for the function.", - "example": "v2" - }, - "installationId": { - "type": "string", - "description": "Function VCS (Version Control System) installation id.", - "example": "6m40at4ejk5h2u9s1hboo" - }, - "providerRepositoryId": { - "type": "string", - "description": "VCS (Version Control System) Repository ID", - "example": "appwrite" - }, - "providerBranch": { - "type": "string", - "description": "VCS (Version Control System) branch name", - "example": "main" - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function in VCS (Version Control System) repository", - "example": "functions\/helloWorld" - }, - "providerSilentMode": { - "type": "boolean", - "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", - "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" - }, - "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" - }, - "example": [ - "src\/**", - "!docs\/**" - ] - }, - "buildSpecification": { - "type": "string", - "description": "Machine specification for deployment builds.", - "example": "s-1vcpu-512mb" - }, - "runtimeSpecification": { - "type": "string", - "description": "Machine specification for executions.", - "example": "s-1vcpu-512mb" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "execute", - "name", - "enabled", - "live", - "logging", - "runtime", - "deploymentRetention", - "deploymentId", - "deploymentCreatedAt", - "latestDeploymentId", - "latestDeploymentCreatedAt", - "latestDeploymentStatus", - "scopes", - "vars", - "events", - "schedule", - "timeout", - "entrypoint", - "commands", - "version", - "installationId", - "providerRepositoryId", - "providerBranch", - "providerRootDirectory", - "providerSilentMode", - "providerBranches", - "providerPaths", - "buildSpecification", - "runtimeSpecification" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "execute": "users", - "name": "My Function", - "enabled": false, - "live": false, - "logging": false, - "runtime": "python-3.8", - "deploymentRetention": 7, - "deploymentId": "5e5ea5c16897e", - "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentId": "5e5ea5c16897e", - "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", - "latestDeploymentStatus": "ready", - "scopes": "users.read", - "vars": [], - "events": "account.create", - "schedule": "5 4 * * *", - "timeout": 300, - "entrypoint": "index.js", - "commands": "npm install", - "version": "v2", - "installationId": "6m40at4ejk5h2u9s1hboo", - "providerRepositoryId": "appwrite", - "providerBranch": "main", - "providerRootDirectory": "functions\/helloWorld", - "providerSilentMode": false, - "providerBranches": [ - "main", - "feat\/*" - ], - "providerPaths": [ - "src\/**", - "!docs\/**" - ], - "buildSpecification": "s-1vcpu-512mb", - "runtimeSpecification": "s-1vcpu-512mb" - } - }, - "runtime": { - "description": "Runtime", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Runtime ID.", - "example": "python-3.8" - }, - "key": { - "type": "string", - "description": "Parent runtime key.", - "example": "python" - }, - "name": { - "type": "string", - "description": "Runtime Name.", - "example": "Python" - }, - "version": { - "type": "string", - "description": "Runtime version.", - "example": "3.8" - }, - "base": { - "type": "string", - "description": "Base Docker image used to build the runtime.", - "example": "python:3.8-alpine" - }, - "image": { - "type": "string", - "description": "Image name of Docker Hub.", - "example": "appwrite\\\/runtime-for-python:3.8" - }, - "logo": { - "type": "string", - "description": "Name of the logo image.", - "example": "python.png" - }, - "supports": { - "type": "array", - "description": "List of supported architectures.", - "items": { - "type": "string" - }, - "example": [ - "amd64" - ] - } - }, - "required": [ - "$id", - "key", - "name", - "version", - "base", - "image", - "logo", - "supports" - ], - "example": { - "$id": "python-3.8", - "key": "python", - "name": "Python", - "version": "3.8", - "base": "python:3.8-alpine", - "image": "appwrite\\\/runtime-for-python:3.8", - "logo": "python.png", - "supports": "amd64" - } - }, - "framework": { - "description": "Framework", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Framework key.", - "example": "sveltekit" - }, - "name": { - "type": "string", - "description": "Framework Name.", - "example": "SvelteKit" - }, - "buildRuntime": { - "type": "string", - "description": "Default runtime version.", - "example": "node-22" - }, - "runtimes": { - "type": "array", - "description": "List of supported runtime versions.", - "items": { - "type": "string" - }, - "example": [ - "static-1", - "node-22" - ] - }, - "adapters": { - "type": "array", - "description": "List of supported adapters.", - "items": { - "$ref": "#\/components\/schemas\/frameworkAdapter" - }, - "example": [ - { - "key": "static", - "buildRuntime": "node-22", - "buildCommand": "npm run build", - "installCommand": "npm install", - "outputDirectory": ".\/dist" - } - ] - } - }, - "required": [ - "key", - "name", - "buildRuntime", - "runtimes", - "adapters" - ], - "example": { - "key": "sveltekit", - "name": "SvelteKit", - "buildRuntime": "node-22", - "runtimes": [ - "static-1", - "node-22" - ], - "adapters": [ - { - "key": "static", - "buildRuntime": "node-22", - "buildCommand": "npm run build", - "installCommand": "npm install", - "outputDirectory": ".\/dist" - } - ] - } - }, - "frameworkAdapter": { - "description": "Framework Adapter", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Adapter key.", - "example": "static" - }, - "installCommand": { - "type": "string", - "description": "Default command to download dependencies.", - "example": "npm install" - }, - "buildCommand": { - "type": "string", - "description": "Default command to build site into output directory.", - "example": "npm run build" - }, - "outputDirectory": { - "type": "string", - "description": "Default output directory of build.", - "example": ".\/dist" - }, - "fallbackFile": { - "type": "string", - "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", - "example": "index.html", - "nullable": true - } - }, - "required": [ - "key", - "installCommand", - "buildCommand", - "outputDirectory" - ], - "example": { - "key": "static", - "installCommand": "npm install", - "buildCommand": "npm run build", - "outputDirectory": ".\/dist", - "fallbackFile": "index.html" - } - }, - "deployment": { - "description": "Deployment", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Deployment ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Deployment creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Deployment update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "type": { - "type": "string", - "description": "Type of deployment.", - "example": "vcs" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "5e5ea6g16897e" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "functions" - }, - "entrypoint": { - "type": "string", - "description": "The entrypoint file to use to execute the deployment code.", - "example": "index.js" - }, - "sourceSize": { - "type": "integer", - "description": "The code size in bytes.", - "format": "int32", - "example": 128 - }, - "buildSize": { - "type": "integer", - "description": "The build output size in bytes.", - "format": "int32", - "example": 128 - }, - "totalSize": { - "type": "integer", - "description": "The total size in bytes (source and build output).", - "format": "int32", - "example": 128 - }, - "buildId": { - "type": "string", - "description": "The current build ID.", - "example": "5e5ea5c16897e" - }, - "activate": { - "type": "boolean", - "description": "Whether the deployment should be automatically activated.", - "example": true - }, - "screenshotLight": { - "type": "string", - "description": "Screenshot with light theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "screenshotDark": { - "type": "string", - "description": "Screenshot with dark theme preference file ID.", - "example": "5e5ea5c16897e" - }, - "status": { - "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", - "example": "ready", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "waiting" - ], - "title": "waiting" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "building" - ], - "title": "building" - }, - { - "type": "string", - "enum": [ - "ready" - ], - "title": "ready" - }, - { - "type": "string", - "enum": [ - "canceled" - ], - "title": "canceled" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - } - ] - }, - "buildLogs": { - "type": "string", - "description": "The build logs.", - "example": "Compiling source files..." - }, - "buildDuration": { - "type": "integer", - "description": "The current build time in seconds.", - "format": "int32", - "example": 128 - }, - "providerRepositoryName": { - "type": "string", - "description": "The name of the vcs provider repository", - "example": "database" - }, - "providerRepositoryOwner": { - "type": "string", - "description": "The name of the vcs provider repository owner", - "example": "utopia" - }, - "providerRepositoryUrl": { - "type": "string", - "description": "The url of the vcs provider repository", - "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" - }, - "providerCommitHash": { - "type": "string", - "description": "The commit hash of the vcs commit", - "example": "7c3f25d" - }, - "providerCommitAuthorUrl": { - "type": "string", - "description": "The url of vcs commit author", - "example": "https:\/\/github.com\/vermakhushboo" - }, - "providerCommitAuthor": { - "type": "string", - "description": "The name of vcs commit author", - "example": "Khushboo Verma" - }, - "providerCommitMessage": { - "type": "string", - "description": "The commit message", - "example": "Update index.js" - }, - "providerCommitUrl": { - "type": "string", - "description": "The url of the vcs commit", - "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" - }, - "providerBranch": { - "type": "string", - "description": "The branch of the vcs repository", - "example": "0.7.x" - }, - "providerBranchUrl": { - "type": "string", - "description": "The branch of the vcs repository", - "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "resourceId", - "resourceType", - "entrypoint", - "sourceSize", - "buildSize", - "totalSize", - "buildId", - "activate", - "screenshotLight", - "screenshotDark", - "status", - "buildLogs", - "buildDuration", - "providerRepositoryName", - "providerRepositoryOwner", - "providerRepositoryUrl", - "providerCommitHash", - "providerCommitAuthorUrl", - "providerCommitAuthor", - "providerCommitMessage", - "providerCommitUrl", - "providerBranch", - "providerBranchUrl" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "type": "vcs", - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", - "entrypoint": "index.js", - "sourceSize": 128, - "buildSize": 128, - "totalSize": 128, - "buildId": "5e5ea5c16897e", - "activate": true, - "screenshotLight": "5e5ea5c16897e", - "screenshotDark": "5e5ea5c16897e", - "status": "ready", - "buildLogs": "Compiling source files...", - "buildDuration": 128, - "providerRepositoryName": "database", - "providerRepositoryOwner": "utopia", - "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", - "providerCommitHash": "7c3f25d", - "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", - "providerCommitAuthor": "Khushboo Verma", - "providerCommitMessage": "Update index.js", - "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", - "providerBranch": "0.7.x", - "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" - } - }, - "execution": { - "description": "Execution", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Execution ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Execution creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Execution update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Execution roles.", - "items": { - "type": "string" - }, - "example": [ - "any" - ] - }, - "resourceId": { - "type": "string", - "description": "Function or site ID.", - "example": "5e5ea6g16897e" - }, - "resourceType": { - "description": "Execution resource type.", - "example": "functions", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - } - ] - }, - "deploymentId": { - "type": "string", - "description": "Deployment ID used to create the execution.", - "example": "5e5ea5c16897e" - }, - "trigger": { - "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", - "example": "http", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "http" - ], - "title": "http" - }, - { - "type": "string", - "enum": [ - "schedule" - ], - "title": "schedule" - }, - { - "type": "string", - "enum": [ - "event" - ], - "title": "event" - } - ] - }, - "status": { - "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", - "example": "processing", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "waiting" - ], - "title": "waiting" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "failed" - }, - { - "type": "string", - "enum": [ - "scheduled" - ], - "title": "scheduled" - } - ] - }, - "requestMethod": { - "type": "string", - "description": "HTTP request method type.", - "example": "GET" - }, - "requestPath": { - "type": "string", - "description": "HTTP request path and query.", - "example": "\/articles?id=5" - }, - "requestHeaders": { - "type": "array", - "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "responseStatusCode": { - "type": "integer", - "description": "HTTP response status code.", - "format": "int32", - "example": 200 - }, - "responseBody": { - "type": "string", - "description": "HTTP response body. This will return empty unless execution is created as synchronous.", - "example": "" - }, - "responseHeaders": { - "type": "array", - "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", - "items": { - "$ref": "#\/components\/schemas\/headers" - }, - "example": [ - { - "Content-Type": "application\/json" - } - ] - }, - "logs": { - "type": "string", - "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "errors": { - "type": "string", - "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", - "example": "" - }, - "duration": { - "type": "number", - "description": "Total time the resource(function\/site) took to respond, in seconds.", - "format": "double", - "example": 1.23 - }, - "scheduledAt": { - "type": "string", - "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "resourceId", - "resourceType", - "deploymentId", - "trigger", - "status", - "requestMethod", - "requestPath", - "requestHeaders", - "responseStatusCode", - "responseBody", - "responseHeaders", - "logs", - "errors", - "duration" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "any" - ], - "resourceId": "5e5ea6g16897e", - "resourceType": "functions", - "deploymentId": "5e5ea5c16897e", - "trigger": "http", - "status": "processing", - "requestMethod": "GET", - "requestPath": "\/articles?id=5", - "requestHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "responseStatusCode": 200, - "responseBody": "", - "responseHeaders": [ - { - "Content-Type": "application\/json" - } - ], - "logs": "", - "errors": "", - "duration": 1.23, - "scheduledAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "project": { - "description": "Project", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Project creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Project update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Project name.", - "example": "New Project" - }, - "teamId": { - "type": "string", - "description": "Project team ID.", - "example": "1592981250" - }, - "region": { - "type": "string", - "description": "Project region", - "example": "fra" - }, - "smtpEnabled": { - "type": "boolean", - "description": "Status for custom SMTP", - "example": false - }, - "smtpSenderName": { - "type": "string", - "description": "SMTP sender name", - "example": "John Appwrite" - }, - "smtpSenderEmail": { - "type": "string", - "description": "SMTP sender email", - "example": "john@appwrite.io" - }, - "smtpReplyToName": { - "type": "string", - "description": "SMTP reply to name", - "example": "Support Team" - }, - "smtpReplyToEmail": { - "type": "string", - "description": "SMTP reply to email", - "example": "support@appwrite.io" - }, - "smtpHost": { - "type": "string", - "description": "SMTP server host name", - "example": "mail.appwrite.io" - }, - "smtpPort": { - "type": "integer", - "description": "SMTP server port", - "format": "int32", - "example": 25 - }, - "smtpUsername": { - "type": "string", - "description": "SMTP server username", - "example": "emailuser" - }, - "smtpPassword": { - "type": "string", - "description": "SMTP server password. This property is write-only and always returned empty.", - "format": "password", - "example": "smtp-password" - }, - "smtpSecure": { - "type": "string", - "description": "SMTP server secure protocol", - "example": "tls" - }, - "pingCount": { - "type": "integer", - "description": "Number of times the ping was received for this project.", - "format": "int32", - "example": 1 - }, - "pingedAt": { - "type": "string", - "description": "Last ping datetime in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "labels": { - "type": "array", - "description": "Labels for the project.", - "items": { - "type": "string" - }, - "example": [ - "vip" - ] - }, - "status": { - "type": "string", - "description": "Project status", - "example": "active" - }, - "onboarding": { - "type": "object", - "additionalProperties": true, - "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", - "example": {} - }, - "authMethods": { - "type": "array", - "description": "List of auth methods.", - "items": { - "$ref": "#\/components\/schemas\/projectAuthMethod" - }, - "example": [] - }, - "services": { - "type": "array", - "description": "List of services.", - "items": { - "$ref": "#\/components\/schemas\/projectService" - }, - "example": [] - }, - "protocols": { - "type": "array", - "description": "List of protocols.", - "items": { - "$ref": "#\/components\/schemas\/projectProtocol" - }, - "example": [] - }, - "blocks": { - "type": "array", - "description": "Project blocks information", - "items": { - "$ref": "#\/components\/schemas\/block" - }, - "example": [] - }, - "consoleAccessedAt": { - "type": "string", - "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "wafEnabled": { - "type": "boolean", - "description": "Whether WAF enforcement is enabled for the project.", - "example": true, - "nullable": true - }, - "billingLimits": { - "type": "object", - "description": "Billing limits reached", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingLimits" - } - ], - "nullable": true - }, - "firstAccessedAt": { - "type": "string", - "description": "First time the project received a non-console API request. Empty until the project is used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "mcpAccessedAt": { - "type": "string", - "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "oAuth2ServerEnabled": { - "type": "boolean", - "description": "OAuth2 server status", - "example": false, - "nullable": true - }, - "oAuth2ServerAuthorizationUrl": { - "type": "string", - "description": "OAuth2 server authorization URL", - "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "nullable": true - }, - "oAuth2ServerScopes": { - "type": "array", - "description": "OAuth2 server allowed scopes", - "items": { - "type": "string" - }, - "example": [ - "read", - "write" - ], - "nullable": true - }, - "oAuth2ServerDefaultScopes": { - "type": "array", - "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", - "items": { - "type": "string" - }, - "example": [ - "read" - ], - "nullable": true - }, - "oAuth2ServerInstallationScopes": { - "type": "array", - "description": "Scopes an application may request when installed on a team", - "items": { - "type": "string" - }, - "example": [ - "project:all" - ], - "nullable": true - }, - "oAuth2ServerAuthorizationDetailsTypes": { - "type": "array", - "description": "OAuth2 server accepted RFC 9396 authorization_details types", - "items": { - "type": "string" - }, - "example": [ - "calendar" - ], - "nullable": true - }, - "oAuth2ServerAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for confidential clients", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerRefreshTokenDuration": { - "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for confidential clients", - "format": "int32", - "example": 86400, - "nullable": true - }, - "oAuth2ServerPublicAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerPublicRefreshTokenDuration": { - "type": "integer", - "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", - "format": "int32", - "example": 2592000, - "nullable": true - }, - "oAuth2ServerInstallationAccessTokenDuration": { - "type": "integer", - "description": "OAuth2 server access token duration in seconds for app installation access tokens", - "format": "int32", - "example": 3600, - "nullable": true - }, - "oAuth2ServerConfidentialPkce": { - "type": "boolean", - "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", - "example": false, - "nullable": true - }, - "oAuth2ServerVerificationUrl": { - "type": "string", - "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", - "example": "https:\/\/cloud.appwrite.io\/device", - "nullable": true - }, - "oAuth2ServerUserCodeLength": { - "type": "integer", - "description": "Number of characters in the device flow user code, excluding the formatting separator.", - "format": "int32", - "example": 8, - "nullable": true - }, - "oAuth2ServerUserCodeFormat": { - "type": "string", - "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", - "example": "alphanumeric", - "nullable": true - }, - "oAuth2ServerDeviceCodeDuration": { - "type": "integer", - "description": "Lifetime in seconds of device flow device codes and user codes.", - "format": "int32", - "example": 600, - "nullable": true - }, - "oAuth2ServerDiscoveryUrl": { - "type": "string", - "description": "OAuth2 server discovery URL", - "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "teamId", - "region", - "smtpEnabled", - "smtpSenderName", - "smtpSenderEmail", - "smtpReplyToName", - "smtpReplyToEmail", - "smtpHost", - "smtpPort", - "smtpUsername", - "smtpPassword", - "smtpSecure", - "pingCount", - "pingedAt", - "labels", - "status", - "onboarding", - "authMethods", - "services", - "protocols", - "blocks", - "consoleAccessedAt" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "New Project", - "teamId": "1592981250", - "region": "fra", - "smtpEnabled": false, - "smtpSenderName": "John Appwrite", - "smtpSenderEmail": "john@appwrite.io", - "smtpReplyToName": "Support Team", - "smtpReplyToEmail": "support@appwrite.io", - "smtpHost": "mail.appwrite.io", - "smtpPort": 25, - "smtpUsername": "emailuser", - "smtpPassword": "smtp-password", - "smtpSecure": "tls", - "pingCount": 1, - "pingedAt": "2020-10-15T06:38:00.000+00:00", - "labels": [ - "vip" - ], - "status": "active", - "onboarding": {}, - "authMethods": {}, - "services": {}, - "protocols": {}, - "blocks": "", - "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", - "wafEnabled": true, - "billingLimits": "", - "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", - "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", - "oAuth2ServerEnabled": false, - "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", - "oAuth2ServerScopes": [ - "read", - "write" - ], - "oAuth2ServerDefaultScopes": [ - "read" - ], - "oAuth2ServerInstallationScopes": [ - "project:all" - ], - "oAuth2ServerAuthorizationDetailsTypes": [ - "calendar" - ], - "oAuth2ServerAccessTokenDuration": 3600, - "oAuth2ServerRefreshTokenDuration": 86400, - "oAuth2ServerPublicAccessTokenDuration": 3600, - "oAuth2ServerPublicRefreshTokenDuration": 2592000, - "oAuth2ServerInstallationAccessTokenDuration": 3600, - "oAuth2ServerConfidentialPkce": false, - "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", - "oAuth2ServerUserCodeLength": 8, - "oAuth2ServerUserCodeFormat": "alphanumeric", - "oAuth2ServerDeviceCodeDuration": 600, - "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" - } - }, - "projectAuthMethod": { - "description": "ProjectAuthMethod", - "type": "object", - "properties": { - "$id": { - "description": "Auth method ID.", - "example": "email-password", - "title": "ProjectAuthMethodId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "email-password" - ], - "title": "email-password" - }, - { - "type": "string", - "enum": [ - "magic-url" - ], - "title": "magic-url" - }, - { - "type": "string", - "enum": [ - "email-otp" - ], - "title": "email-otp" - }, - { - "type": "string", - "enum": [ - "anonymous" - ], - "title": "anonymous" - }, - { - "type": "string", - "enum": [ - "invites" - ], - "title": "invites" - }, - { - "type": "string", - "enum": [ - "jwt" - ], - "title": "jwt" - }, - { - "type": "string", - "enum": [ - "phone" - ], - "title": "phone" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Auth method status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "email-password", - "enabled": false - } - }, - "projectService": { - "description": "ProjectService", - "type": "object", - "properties": { - "$id": { - "description": "Service ID.", - "example": "sites", - "title": "ProjectServiceId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "account" - ], - "title": "account" - }, - { - "type": "string", - "enum": [ - "avatars" - ], - "title": "avatars" - }, - { - "type": "string", - "enum": [ - "databases" - ], - "title": "databases" - }, - { - "type": "string", - "enum": [ - "tablesdb" - ], - "title": "tablesdb" - }, - { - "type": "string", - "enum": [ - "locale" - ], - "title": "locale" - }, - { - "type": "string", - "enum": [ - "health" - ], - "title": "health" - }, - { - "type": "string", - "enum": [ - "project" - ], - "title": "project" - }, - { - "type": "string", - "enum": [ - "storage" - ], - "title": "storage" - }, - { - "type": "string", - "enum": [ - "teams" - ], - "title": "teams" - }, - { - "type": "string", - "enum": [ - "users" - ], - "title": "users" - }, - { - "type": "string", - "enum": [ - "vcs" - ], - "title": "vcs" - }, - { - "type": "string", - "enum": [ - "sites" - ], - "title": "sites" - }, - { - "type": "string", - "enum": [ - "functions" - ], - "title": "functions" - }, - { - "type": "string", - "enum": [ - "proxy" - ], - "title": "proxy" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "migrations" - ], - "title": "migrations" - }, - { - "type": "string", - "enum": [ - "messaging" - ], - "title": "messaging" - }, - { - "type": "string", - "enum": [ - "advisor" - ], - "title": "advisor" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Service status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "sites", - "enabled": false - } - }, - "projectProtocol": { - "description": "ProjectProtocol", - "type": "object", - "properties": { - "$id": { - "description": "Protocol ID.", - "example": "graphql", - "title": "ProjectProtocolId", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "rest" - ], - "title": "rest" - }, - { - "type": "string", - "enum": [ - "graphql" - ], - "title": "graphql" - }, - { - "type": "string", - "enum": [ - "websocket" - ], - "title": "websocket" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Protocol status.", - "example": false - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "graphql", - "enabled": false - } - }, - "webhook": { - "description": "Webhook", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Webhook ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Webhook creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Webhook update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Webhook name.", - "example": "My Webhook" - }, - "url": { - "type": "string", - "description": "Webhook URL endpoint.", - "example": "https:\/\/example.com\/webhook" - }, - "events": { - "type": "array", - "description": "Webhook trigger events.", - "items": { - "type": "string" - }, - "example": [ - "databases.tables.update", - "databases.collections.update" - ] - }, - "tls": { - "type": "boolean", - "description": "Indicates if SSL \/ TLS certificate verification is enabled.", - "example": true - }, - "authUsername": { - "type": "string", - "description": "HTTP basic authentication username.", - "example": "username" - }, - "authPassword": { - "type": "string", - "description": "HTTP basic authentication password. Write-only: always returned empty.", - "format": "password", - "example": "webhook-password" - }, - "secret": { - "type": "string", - "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", - "example": "ad3d581ca230e2b7059c545e5a" - }, - "enabled": { - "type": "boolean", - "description": "Indicates if this webhook is enabled.", - "example": true - }, - "logs": { - "type": "string", - "description": "Webhook error logs from the most recent failure.", - "example": "Failed to connect to remote server." - }, - "attempts": { - "type": "integer", - "description": "Number of consecutive failed webhook attempts.", - "format": "int32", - "example": 10 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "url", - "events", - "tls", - "authUsername", - "authPassword", - "secret", - "enabled", - "logs", - "attempts" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Webhook", - "url": "https:\/\/example.com\/webhook", - "events": [ - "databases.tables.update", - "databases.collections.update" - ], - "tls": true, - "authUsername": "username", - "authPassword": "webhook-password", - "secret": "ad3d581ca230e2b7059c545e5a", - "enabled": true, - "logs": "Failed to connect to remote server.", - "attempts": 10 - } - }, - "key": { - "description": "Key", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Key creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Key update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Key name.", - "example": "My API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "secret": { - "type": "string", - "description": "Secret key.", - "example": "919c2d18fb5d4...a2ae413da83346ad2" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "example": [ - "appwrite:flutter" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "expire", - "scopes", - "secret", - "accessedAt", - "sdks" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "scopes": "users.read", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" - } - }, - "ephemeralKey": { - "description": "Ephemeral Key", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Key creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Key update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Key name.", - "example": "My API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "scopes": { - "type": "array", - "description": "Allowed permission scopes.", - "items": { - "type": "string" - }, - "example": [ - "users.read" - ] - }, - "secret": { - "type": "string", - "description": "Secret key.", - "example": "919c2d18fb5d4...a2ae413da83346ad2" - }, - "accessedAt": { - "type": "string", - "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "sdks": { - "type": "array", - "description": "List of SDK user agents that used this key.", - "items": { - "type": "string" - }, - "example": [ - "appwrite:flutter" - ] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "expire", - "scopes", - "secret", - "accessedAt", - "sdks" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "scopes": "users.read", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" - } - }, - "mockNumber": { - "description": "Mock Number", - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", - "example": "+1612842323" - }, - "otp": { - "type": "string", - "description": "Mock OTP for the number. ", - "example": "123456" - }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "number", - "otp", - "$createdAt", - "$updatedAt" - ], - "example": { - "number": "+1612842323", - "otp": "123456", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "oAuth2Github": { - "description": "OAuth2GitHub", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", - "example": "e4d87900000000540733" - }, - "clientSecret": { - "type": "string", - "description": "GitHub OAuth2 client secret.", - "example": "5e07c00000000000000000000000000000198bcc" - }, - "prompt": { - "type": "array", - "description": "GitHub OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "select_account" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "e4d87900000000540733", - "clientSecret": "5e07c00000000000000000000000000000198bcc", - "prompt": [ - "select_account" - ] - } - }, - "oAuth2Discord": { - "description": "OAuth2Discord", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Discord OAuth2 client ID.", - "example": "950722000000343754" - }, - "clientSecret": { - "type": "string", - "description": "Discord OAuth2 client secret.", - "example": "YmPXnM000000000000000000002zFg5D" - }, - "prompt": { - "type": "array", - "description": "Discord OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "950722000000343754", - "clientSecret": "YmPXnM000000000000000000002zFg5D", - "prompt": [ - "none" - ] - } - }, - "oAuth2Figma": { - "description": "OAuth2Figma", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Figma OAuth2 client ID.", - "example": "byay5H0000000000VtiI40" - }, - "clientSecret": { - "type": "string", - "description": "Figma OAuth2 client secret.", - "example": "yEpOYn0000000000000000004iIsU5" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "byay5H0000000000VtiI40", - "clientSecret": "yEpOYn0000000000000000004iIsU5" - } - }, - "oAuth2Dropbox": { - "description": "OAuth2Dropbox", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "appKey": { - "type": "string", - "description": "Dropbox OAuth2 app key.", - "example": "jl000000000009t" - }, - "appSecret": { - "type": "string", - "description": "Dropbox OAuth2 app secret.", - "example": "g200000000000vw" - } - }, - "required": [ - "$id", - "enabled", - "appKey", - "appSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "appKey": "jl000000000009t", - "appSecret": "g200000000000vw" - } - }, - "oAuth2Dailymotion": { - "description": "OAuth2Dailymotion", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "apiKey": { - "type": "string", - "description": "Dailymotion OAuth2 API key.", - "example": "07a9000000000000067f" - }, - "apiSecret": { - "type": "string", - "description": "Dailymotion OAuth2 API secret.", - "example": "a399a90000000000000000000000000000d90639" - } - }, - "required": [ - "$id", - "enabled", - "apiKey", - "apiSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "apiKey": "07a9000000000000067f", - "apiSecret": "a399a90000000000000000000000000000d90639" - } - }, - "oAuth2Bitbucket": { - "description": "OAuth2Bitbucket", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "key": { - "type": "string", - "description": "Bitbucket OAuth2 key.", - "example": "Knt70000000000ByRc" - }, - "secret": { - "type": "string", - "description": "Bitbucket OAuth2 secret.", - "example": "NMfLZJ00000000000000000000TLQdDx" - } - }, - "required": [ - "$id", - "enabled", - "key", - "secret" - ], - "example": { - "$id": "github", - "enabled": false, - "key": "Knt70000000000ByRc", - "secret": "NMfLZJ00000000000000000000TLQdDx" - } - }, - "oAuth2Bitly": { - "description": "OAuth2Bitly", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Bitly OAuth2 client ID.", - "example": "d95151000000000000000000000000000067af9b" - }, - "clientSecret": { - "type": "string", - "description": "Bitly OAuth2 client secret.", - "example": "a13e250000000000000000000000000000d73095" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "d95151000000000000000000000000000067af9b", - "clientSecret": "a13e250000000000000000000000000000d73095" - } - }, - "oAuth2Box": { - "description": "OAuth2Box", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Box OAuth2 client ID.", - "example": "deglcs00000000000000000000x2og6y" - }, - "clientSecret": { - "type": "string", - "description": "Box OAuth2 client secret.", - "example": "OKM1f100000000000000000000eshEif" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "deglcs00000000000000000000x2og6y", - "clientSecret": "OKM1f100000000000000000000eshEif" - } - }, - "oAuth2Autodesk": { - "description": "OAuth2Autodesk", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Autodesk OAuth2 client ID.", - "example": "5zw90v00000000000000000000kVYXN7" - }, - "clientSecret": { - "type": "string", - "description": "Autodesk OAuth2 client secret.", - "example": "7I000000000000MW" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "5zw90v00000000000000000000kVYXN7", - "clientSecret": "7I000000000000MW" - } - }, - "oAuth2Google": { - "description": "OAuth2Google", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Google OAuth2 client ID.", - "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" - }, - "clientSecret": { - "type": "string", - "description": "Google OAuth2 client secret.", - "example": "GOCSPX-2k8gsR0000000000000000VNahJj" - }, - "prompt": { - "type": "array", - "description": "Google OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "consent" - ] - }, - "nativeEnabled": { - "type": "boolean", - "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", - "example": false - }, - "nativeClientIds": { - "type": "array", - "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", - "items": { - "type": "string" - }, - "example": [ - "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "nativeEnabled", - "nativeClientIds" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", - "prompt": [ - "consent" - ], - "nativeEnabled": false, - "nativeClientIds": [ - "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" - ] - } - }, - "oAuth2Zoom": { - "description": "OAuth2Zoom", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Zoom OAuth2 client ID.", - "example": "QMAC00000000000000w0AQ" - }, - "clientSecret": { - "type": "string", - "description": "Zoom OAuth2 client secret.", - "example": "GAWsG4000000000000000000007U01ON" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "QMAC00000000000000w0AQ", - "clientSecret": "GAWsG4000000000000000000007U01ON" - } - }, - "oAuth2Zoho": { - "description": "OAuth2Zoho", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Zoho OAuth2 client ID.", - "example": "1000.83C178000000000000000000RPNX0B" - }, - "clientSecret": { - "type": "string", - "description": "Zoho OAuth2 client secret.", - "example": "fb5cac000000000000000000000000000000a68f6e" - }, - "prompt": { - "type": "array", - "description": "Zoho OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "consent" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "1000.83C178000000000000000000RPNX0B", - "clientSecret": "fb5cac000000000000000000000000000000a68f6e", - "prompt": [ - "consent" - ] - } - }, - "oAuth2Yandex": { - "description": "OAuth2Yandex", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Yandex OAuth2 client ID.", - "example": "6a8a6a0000000000000000000091483c" - }, - "clientSecret": { - "type": "string", - "description": "Yandex OAuth2 client secret.", - "example": "bbf98500000000000000000000c75a63" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6a8a6a0000000000000000000091483c", - "clientSecret": "bbf98500000000000000000000c75a63" - } - }, - "oAuth2X": { - "description": "OAuth2X", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "customerKey": { - "type": "string", - "description": "X OAuth2 customer key.", - "example": "slzZV0000000000000NFLaWT" - }, - "secretKey": { - "type": "string", - "description": "X OAuth2 secret key.", - "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" - } - }, - "required": [ - "$id", - "enabled", - "customerKey", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "customerKey": "slzZV0000000000000NFLaWT", - "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" - } - }, - "oAuth2WordPress": { - "description": "OAuth2WordPress", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "WordPress OAuth2 client ID.", - "example": "130005" - }, - "clientSecret": { - "type": "string", - "description": "WordPress OAuth2 client secret.", - "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "130005", - "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" - } - }, - "oAuth2Webflow": { - "description": "OAuth2Webflow", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Webflow OAuth2 client ID.", - "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" - }, - "clientSecret": { - "type": "string", - "description": "Webflow OAuth2 client secret.", - "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", - "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" - } - }, - "oAuth2Twitch": { - "description": "OAuth2Twitch", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Twitch OAuth2 client ID.", - "example": "vvi0in000000000000000000ikmt9p" - }, - "clientSecret": { - "type": "string", - "description": "Twitch OAuth2 client secret.", - "example": "pmapue000000000000000000zylw3v" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "vvi0in000000000000000000ikmt9p", - "clientSecret": "pmapue000000000000000000zylw3v" - } - }, - "oAuth2Stripe": { - "description": "OAuth2Stripe", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Stripe OAuth2 client ID.", - "example": "ca_UKibXX0000000000000000000006byvR" - }, - "apiSecretKey": { - "type": "string", - "description": "Stripe OAuth2 API secret key.", - "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "apiSecretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "ca_UKibXX0000000000000000000006byvR", - "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" - } - }, - "oAuth2Spotify": { - "description": "OAuth2Spotify", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Spotify OAuth2 client ID.", - "example": "6ec271000000000000000000009beace" - }, - "clientSecret": { - "type": "string", - "description": "Spotify OAuth2 client secret.", - "example": "db068a000000000000000000008b5b9f" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6ec271000000000000000000009beace", - "clientSecret": "db068a000000000000000000008b5b9f" - } - }, - "oAuth2Slack": { - "description": "OAuth2Slack", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Slack OAuth2 client ID.", - "example": "23000000089.15000000000023" - }, - "clientSecret": { - "type": "string", - "description": "Slack OAuth2 client secret.", - "example": "81656000000000000000000000f3d2fd" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "23000000089.15000000000023", - "clientSecret": "81656000000000000000000000f3d2fd" - } - }, - "oAuth2Podio": { - "description": "OAuth2Podio", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Podio OAuth2 client ID.", - "example": "appwrite-oauth-test-app" - }, - "clientSecret": { - "type": "string", - "description": "Podio OAuth2 client secret.", - "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "appwrite-oauth-test-app", - "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" - } - }, - "oAuth2Notion": { - "description": "OAuth2Notion", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "oauthClientId": { - "type": "string", - "description": "Notion OAuth2 client ID.", - "example": "341d8700-0000-0000-0000-000000446ee3" - }, - "oauthClientSecret": { - "type": "string", - "description": "Notion OAuth2 client secret.", - "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" - } - }, - "required": [ - "$id", - "enabled", - "oauthClientId", - "oauthClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", - "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" - } - }, - "oAuth2Salesforce": { - "description": "OAuth2Salesforce", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "customerKey": { - "type": "string", - "description": "Salesforce OAuth2 consumer key.", - "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" - }, - "customerSecret": { - "type": "string", - "description": "Salesforce OAuth2 consumer secret.", - "example": "3w000000000000e2" - }, - "prompt": { - "type": "array", - "description": "Salesforce OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "login" - ] - } - }, - "required": [ - "$id", - "enabled", - "customerKey", - "customerSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "customerSecret": "3w000000000000e2", - "prompt": [ - "login" - ] - } - }, - "oAuth2Yahoo": { - "description": "OAuth2Yahoo", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Yahoo OAuth2 client ID.", - "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" - }, - "clientSecret": { - "type": "string", - "description": "Yahoo OAuth2 client secret.", - "example": "cf978f0000000000000000000000000000c5e2e9" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "clientSecret": "cf978f0000000000000000000000000000c5e2e9" - } - }, - "oAuth2Cloudflare": { - "description": "OAuth2Cloudflare", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Cloudflare OAuth2 client ID.", - "example": "4b866000000000000000000000c9e4e2" - }, - "clientSecret": { - "type": "string", - "description": "Cloudflare OAuth2 client secret.", - "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "4b866000000000000000000000c9e4e2", - "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" - } - }, - "oAuth2HuggingFace": { - "description": "OAuth2HuggingFace", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Hugging Face OAuth2 client ID.", - "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" - }, - "clientSecret": { - "type": "string", - "description": "Hugging Face OAuth2 client secret.", - "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", - "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" - } - }, - "oAuth2Linkedin": { - "description": "OAuth2Linkedin", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "LinkedIn OAuth2 client ID.", - "example": "770000000000dv" - }, - "primaryClientSecret": { - "type": "string", - "description": "LinkedIn OAuth2 primary client secret.", - "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "primaryClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "770000000000dv", - "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" - } - }, - "oAuth2Disqus": { - "description": "OAuth2Disqus", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "publicKey": { - "type": "string", - "description": "Disqus OAuth2 public key.", - "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" - }, - "secretKey": { - "type": "string", - "description": "Disqus OAuth2 secret key.", - "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" - } - }, - "required": [ - "$id", - "enabled", - "publicKey", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" - } - }, - "oAuth2Amazon": { - "description": "OAuth2Amazon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Amazon OAuth2 client ID.", - "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" - }, - "clientSecret": { - "type": "string", - "description": "Amazon OAuth2 client secret.", - "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" - } - }, - "oAuth2Etsy": { - "description": "OAuth2Etsy", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "keyString": { - "type": "string", - "description": "Etsy OAuth2 keystring.", - "example": "nsgzxh0000000000008j85a2" - }, - "sharedSecret": { - "type": "string", - "description": "Etsy OAuth2 shared secret.", - "example": "tp000000ru" - } - }, - "required": [ - "$id", - "enabled", - "keyString", - "sharedSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "keyString": "nsgzxh0000000000008j85a2", - "sharedSecret": "tp000000ru" - } - }, - "oAuth2Facebook": { - "description": "OAuth2Facebook", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "appId": { - "type": "string", - "description": "Facebook OAuth2 app ID.", - "example": "260600000007694" - }, - "appSecret": { - "type": "string", - "description": "Facebook OAuth2 app secret.", - "example": "2d0b2800000000000000000000d38af4" - } - }, - "required": [ - "$id", - "enabled", - "appId", - "appSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "appId": "260600000007694", - "appSecret": "2d0b2800000000000000000000d38af4" - } - }, - "oAuth2Tradeshift": { - "description": "OAuth2Tradeshift", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "oauth2ClientId": { - "type": "string", - "description": "Tradeshift OAuth2 client ID.", - "example": "appwrite-test-org.appwrite-test-app" - }, - "oauth2ClientSecret": { - "type": "string", - "description": "Tradeshift OAuth2 client secret.", - "example": "7cb52700-0000-0000-0000-000000ca5b83" - } - }, - "required": [ - "$id", - "enabled", - "oauth2ClientId", - "oauth2ClientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "oauth2ClientId": "appwrite-test-org.appwrite-test-app", - "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" - } - }, - "oAuth2Paypal": { - "description": "OAuth2Paypal", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "PayPal OAuth2 client ID.", - "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" - }, - "secretKey": { - "type": "string", - "description": "PayPal OAuth2 secret key.", - "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "secretKey" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" - } - }, - "oAuth2Gitlab": { - "description": "OAuth2Gitlab", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "applicationId": { - "type": "string", - "description": "GitLab OAuth2 application ID.", - "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" - }, - "secret": { - "type": "string", - "description": "GitLab OAuth2 secret.", - "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" - }, - "endpoint": { - "type": "string", - "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", - "example": "https:\/\/gitlab.com" - } - }, - "required": [ - "$id", - "enabled", - "applicationId", - "secret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "endpoint": "https:\/\/gitlab.com" - } - }, - "oAuth2Appwrite": { - "description": "OAuth2Appwrite", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Appwrite OAuth2 client ID.", - "example": "6a42000000000000b5a0" - }, - "clientSecret": { - "type": "string", - "description": "Appwrite OAuth2 client secret.", - "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "6a42000000000000b5a0", - "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" - } - }, - "oAuth2Authentik": { - "description": "OAuth2Authentik", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Authentik OAuth2 client ID.", - "example": "dTKOPa0000000000000000000000000000e7G8hv" - }, - "clientSecret": { - "type": "string", - "description": "Authentik OAuth2 client secret.", - "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" - }, - "endpoint": { - "type": "string", - "description": "Authentik OAuth2 endpoint domain.", - "example": "example.authentik.com" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "dTKOPa0000000000000000000000000000e7G8hv", - "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "endpoint": "example.authentik.com" - } - }, - "oAuth2Auth0": { - "description": "OAuth2Auth0", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Auth0 OAuth2 client ID.", - "example": "OaOkIA000000000000000000005KLSYq" - }, - "clientSecret": { - "type": "string", - "description": "Auth0 OAuth2 client secret.", - "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" - }, - "prompt": { - "type": "array", - "description": "Auth0 OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - }, - "endpoint": { - "type": "string", - "description": "Auth0 OAuth2 endpoint domain.", - "example": "example.us.auth0.com" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "OaOkIA000000000000000000005KLSYq", - "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "prompt": [ - "none" - ], - "endpoint": "example.us.auth0.com" - } - }, - "oAuth2FusionAuth": { - "description": "OAuth2FusionAuth", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "FusionAuth OAuth2 client ID.", - "example": "b2222c00-0000-0000-0000-000000862097" - }, - "clientSecret": { - "type": "string", - "description": "FusionAuth OAuth2 client secret.", - "example": "Jx4s0C0000000000000000000000000000000wGqLsc" - }, - "endpoint": { - "type": "string", - "description": "FusionAuth OAuth2 endpoint domain.", - "example": "example.fusionauth.io" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "b2222c00-0000-0000-0000-000000862097", - "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", - "endpoint": "example.fusionauth.io" - } - }, - "oAuth2Keycloak": { - "description": "OAuth2Keycloak", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Keycloak OAuth2 client ID.", - "example": "appwrite-o0000000st-app" - }, - "clientSecret": { - "type": "string", - "description": "Keycloak OAuth2 client secret.", - "example": "jdjrJd00000000000000000000HUsaZO" - }, - "endpoint": { - "type": "string", - "description": "Keycloak OAuth2 endpoint domain.", - "example": "keycloak.example.com" - }, - "realmName": { - "type": "string", - "description": "Keycloak OAuth2 realm name.", - "example": "appwrite-realm" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "endpoint", - "realmName" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "appwrite-o0000000st-app", - "clientSecret": "jdjrJd00000000000000000000HUsaZO", - "endpoint": "keycloak.example.com", - "realmName": "appwrite-realm" - } - }, - "oAuth2Oidc": { - "description": "OAuth2Oidc", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "OpenID Connect OAuth2 client ID.", - "example": "qibI2x0000000000000000000000000006L2YFoG" - }, - "clientSecret": { - "type": "string", - "description": "OpenID Connect OAuth2 client secret.", - "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" - }, - "prompt": { - "type": "array", - "description": "OpenID Connect prompt values controlling the authentication and consent screens.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", - "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/authorize" - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/token" - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL.", - "example": "https:\/\/myoauth.com\/oauth2\/userinfo" - }, - "maxAge": { - "type": "integer", - "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", - "format": "int32", - "example": 3600, - "nullable": true - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "wellKnownURL", - "authorizationURL", - "tokenURL", - "userInfoURL" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "qibI2x0000000000000000000000000006L2YFoG", - "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "prompt": [ - "none" - ], - "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", - "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", - "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", - "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", - "maxAge": 3600 - } - }, - "oAuth2Okta": { - "description": "OAuth2Okta", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Okta OAuth2 client ID.", - "example": "0oa00000000000000698" - }, - "clientSecret": { - "type": "string", - "description": "Okta OAuth2 client secret.", - "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" - }, - "prompt": { - "type": "array", - "description": "Okta OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - } - ] - }, - "example": [ - "none" - ] - }, - "domain": { - "type": "string", - "description": "Okta OAuth2 domain.", - "example": "trial-6400025.okta.com" - }, - "authorizationServerId": { - "type": "string", - "description": "Okta OAuth2 authorization server ID.", - "example": "aus000000000000000h7z" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt", - "domain", - "authorizationServerId" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "0oa00000000000000698", - "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "prompt": [ - "none" - ], - "domain": "trial-6400025.okta.com", - "authorizationServerId": "aus000000000000000h7z" - } - }, - "oAuth2Kick": { - "description": "OAuth2Kick", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Kick OAuth2 client ID.", - "example": "01KQ7C00000000000001MFHS32" - }, - "clientSecret": { - "type": "string", - "description": "Kick OAuth2 client secret.", - "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "01KQ7C00000000000001MFHS32", - "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" - } - }, - "oAuth2Apple": { - "description": "OAuth2Apple", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "apple" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "serviceId": { - "type": "string", - "description": "Apple OAuth2 service ID.", - "example": "ip.appwrite.app.web" - }, - "keyId": { - "type": "string", - "description": "Apple OAuth2 key ID.", - "example": "P4000000N8" - }, - "teamId": { - "type": "string", - "description": "Apple OAuth2 team ID.", - "example": "D4000000R6" - }, - "p8File": { - "type": "string", - "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", - "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" - }, - "nativeEnabled": { - "type": "boolean", - "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", - "example": false - }, - "nativeClientIds": { - "type": "array", - "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", - "items": { - "type": "string" - }, - "example": [ - "com.example.app" - ] - } - }, - "required": [ - "$id", - "enabled", - "serviceId", - "keyId", - "teamId", - "p8File", - "nativeEnabled", - "nativeClientIds" - ], - "example": { - "$id": "apple", - "enabled": false, - "serviceId": "ip.appwrite.app.web", - "keyId": "P4000000N8", - "teamId": "D4000000R6", - "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "nativeEnabled": false, - "nativeClientIds": [ - "com.example.app" - ] - } - }, - "oAuth2Microsoft": { - "description": "OAuth2Microsoft", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "applicationId": { - "type": "string", - "description": "Microsoft OAuth2 application ID.", - "example": "00001111-aaaa-2222-bbbb-3333cccc4444" - }, - "applicationSecret": { - "type": "string", - "description": "Microsoft OAuth2 application secret.", - "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" - }, - "prompt": { - "type": "array", - "description": "Microsoft OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "consent" - ], - "title": "consent" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - }, - "tenant": { - "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", - "example": "common" - } - }, - "required": [ - "$id", - "enabled", - "applicationId", - "applicationSecret", - "prompt", - "tenant" - ], - "example": { - "$id": "github", - "enabled": false, - "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", - "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "prompt": [ - "none" - ], - "tenant": "common" - } - }, - "oAuth2Resend": { - "description": "OAuth2Resend", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Resend OAuth2 client ID.", - "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" - }, - "clientSecret": { - "type": "string", - "description": "Resend OAuth2 client secret.", - "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", - "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" - } - }, - "oAuth2TikTok": { - "description": "OAuth2TikTok", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "TikTok OAuth2 client key.", - "example": "awz000000000tyw0" - }, - "clientSecret": { - "type": "string", - "description": "TikTok OAuth2 client secret.", - "example": "6wXewM00000000000000000000yXnite" - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "awz000000000tyw0", - "clientSecret": "6wXewM00000000000000000000yXnite" - } - }, - "oAuth2Kakao": { - "description": "OAuth2Kakao", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "OAuth2 provider ID.", - "example": "github" - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 provider is active and can be used to create sessions.", - "example": false - }, - "clientId": { - "type": "string", - "description": "Kakao OAuth2 REST API key.", - "example": "839ff5000000000000000000013206de" - }, - "clientSecret": { - "type": "string", - "description": "Kakao OAuth2 client secret.", - "example": "jLNVOK00000000000000000000yJebea" - }, - "prompt": { - "type": "array", - "description": "Kakao OAuth2 prompt values.", - "items": { - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "none" - ], - "title": "none" - }, - { - "type": "string", - "enum": [ - "login" - ], - "title": "login" - }, - { - "type": "string", - "enum": [ - "create" - ], - "title": "create" - }, - { - "type": "string", - "enum": [ - "select_account" - ], - "title": "select_account" - } - ] - }, - "example": [ - "none" - ] - } - }, - "required": [ - "$id", - "enabled", - "clientId", - "clientSecret", - "prompt" - ], - "example": { - "$id": "github", - "enabled": false, - "clientId": "839ff5000000000000000000013206de", - "clientSecret": "jLNVOK00000000000000000000yJebea", - "prompt": [ - "none" - ] - } - }, - "oAuth2ProviderList": { - "description": "OAuth2 Providers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of OAuth2 providers in the given project.", - "format": "int32", - "example": 5 - }, - "providers": { - "type": "array", - "description": "List of OAuth2 providers.", - "items": { - "anyOf": [ - { - "$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\/oAuth2Webflow" - }, - { - "$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\/oAuth2Appwrite" - }, - { - "$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" - }, - { - "$ref": "#\/components\/schemas\/oAuth2HuggingFace" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Resend" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Cloudflare" - }, - { - "$ref": "#\/components\/schemas\/oAuth2TikTok" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kakao" - } - ], - "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", - "webflow": "#\/components\/schemas\/oAuth2Webflow", - "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", - "appwrite": "#\/components\/schemas\/oAuth2Appwrite", - "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", - "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", - "resend": "#\/components\/schemas\/oAuth2Resend", - "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", - "tiktok": "#\/components\/schemas\/oAuth2TikTok", - "kakao": "#\/components\/schemas\/oAuth2Kakao" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "providers" - ], - "example": { - "total": 5, - "providers": "" - } - }, - "policyPasswordDictionary": { - "description": "Policy Password Dictionary", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether password dictionary policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyPasswordHistory": { - "description": "Policy Password History", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Password history length. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 5 - } - }, - "policyPasswordStrength": { - "description": "Policy Password Strength", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "min": { - "type": "integer", - "description": "Minimum password length required for user passwords.", - "format": "int32", - "example": 12 - }, - "uppercase": { - "type": "boolean", - "description": "Whether passwords must include at least one uppercase letter.", - "example": true - }, - "lowercase": { - "type": "boolean", - "description": "Whether passwords must include at least one lowercase letter.", - "example": true - }, - "number": { - "type": "boolean", - "description": "Whether passwords must include at least one number.", - "example": true - }, - "symbols": { - "type": "boolean", - "description": "Whether passwords must include at least one symbol.", - "example": true - } - }, - "required": [ - "$id", - "min", - "uppercase", - "lowercase", - "number", - "symbols" - ], - "example": { - "$id": "password-dictionary", - "min": 12, - "uppercase": true, - "lowercase": true, - "number": true, - "symbols": true - } - }, - "policyPasswordPersonalData": { - "description": "Policy Password Personal Data", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether password personal data policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyPasswordPwned": { - "description": "Policy Password Pwned", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", - "example": true - }, - "sessions": { - "type": "boolean", - "description": "Whether a sign-in with a breached password is refused until the password is reset.", - "example": false - }, - "users": { - "type": "boolean", - "description": "Whether a breached password is rejected when a user signs up or sets a new password.", - "example": false - } - }, - "required": [ - "$id", - "enabled", - "sessions", - "users" - ], - "example": { - "$id": "password-dictionary", - "enabled": true, - "sessions": false, - "users": false - } - }, - "policySessionAlert": { - "description": "Policy Session Alert", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether session alert policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policySessionDuration": { - "description": "Policy Session Duration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "duration": { - "type": "integer", - "description": "Session duration in seconds.", - "format": "int32", - "example": 3600 - } - }, - "required": [ - "$id", - "duration" - ], - "example": { - "$id": "password-dictionary", - "duration": 3600 - } - }, - "policySessionInvalidation": { - "description": "Policy Session Invalidation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether session invalidation policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policySessionLimit": { - "description": "Policy Session Limit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 10 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 10 - } - }, - "policyUserLimit": { - "description": "Policy User Limit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "total": { - "type": "integer", - "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", - "format": "int32", - "example": 100 - } - }, - "required": [ - "$id", - "total" - ], - "example": { - "$id": "password-dictionary", - "total": 100 - } - }, - "policyMembershipPrivacy": { - "description": "Policy Membership Privacy", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "userId": { - "type": "boolean", - "description": "Whether user ID is visible in memberships.", - "example": true - }, - "userEmail": { - "type": "boolean", - "description": "Whether user email is visible in memberships.", - "example": true - }, - "userPhone": { - "type": "boolean", - "description": "Whether user phone is visible in memberships.", - "example": true - }, - "userName": { - "type": "boolean", - "description": "Whether user name is visible in memberships.", - "example": true - }, - "userMFA": { - "type": "boolean", - "description": "Whether user MFA status is visible in memberships.", - "example": true - }, - "userAccessedAt": { - "type": "boolean", - "description": "Whether user last access time is visible in memberships.", - "example": true - } - }, - "required": [ - "$id", - "userId", - "userEmail", - "userPhone", - "userName", - "userMFA", - "userAccessedAt" - ], - "example": { - "$id": "password-dictionary", - "userId": true, - "userEmail": true, - "userPhone": true, - "userName": true, - "userMFA": true, - "userAccessedAt": true - } - }, - "policyMfaFactors": { - "description": "Policy MFA Factors", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "totp": { - "type": "boolean", - "description": "Whether TOTP can be used to complete an MFA challenge.", - "example": true - }, - "email": { - "type": "boolean", - "description": "Whether email can be used to complete an MFA challenge.", - "example": true - }, - "phone": { - "type": "boolean", - "description": "Whether phone (SMS) can be used to complete an MFA challenge.", - "example": true - }, - "custom": { - "type": "boolean", - "description": "Whether the custom factor can be used to complete an MFA challenge.", - "example": true - } - }, - "required": [ - "$id", - "totp", - "email", - "phone", - "custom" - ], - "example": { - "$id": "password-dictionary", - "totp": true, - "email": true, - "phone": true, - "custom": true - } - }, - "policyDenyAliasedEmail": { - "description": "Policy Deny Aliased Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny aliased email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyDisposableEmail": { - "description": "Policy Deny Disposable Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny disposable email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyFreeEmail": { - "description": "Policy Deny Free Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny free email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyCorporateEmail": { - "description": "Policy Deny Corporate Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny non-corporate email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "platformWeb": { - "description": "Platform Web", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "hostname": { - "type": "string", - "description": "Web app hostname. Empty string for other platforms.", - "example": "app.example.com" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "hostname", - "key" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "hostname": "app.example.com" - } - }, - "platformApple": { - "description": "Platform Apple", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "bundleIdentifier" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "bundleIdentifier": "com.company.appname" - } - }, - "platformAndroid": { - "description": "Platform Android", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "applicationId": { - "type": "string", - "description": "Android application ID.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "applicationId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "applicationId": "com.company.appname" - } - }, - "platformWindows": { - "description": "Platform Windows", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "packageIdentifierName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "packageIdentifierName": "com.company.appname" - } - }, - "platformLinux": { - "description": "Platform Linux", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Platform ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Platform creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Platform update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Platform name.", - "example": "My Web App" - }, - "type": { - "description": "Platform type. Possible values are: windows, apple, android, linux, web.", - "example": "web", - "title": "PlatformType", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "windows" - ], - "title": "windows" - }, - { - "type": "string", - "enum": [ - "apple" - ], - "title": "apple" - }, - { - "type": "string", - "enum": [ - "android" - ], - "title": "android" - }, - { - "type": "string", - "enum": [ - "linux" - ], - "title": "linux" - }, - { - "type": "string", - "enum": [ - "web" - ], - "title": "web" - } - ] - }, - "packageName": { - "type": "string", - "description": "Linux package name.", - "example": "com.company.appname" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "type", - "packageName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Web App", - "type": "web", - "packageName": "com.company.appname" - } - }, - "platformList": { - "description": "Platforms List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of platforms in the given project.", - "format": "int32", - "example": 5 - }, - "platforms": { - "type": "array", - "description": "List of platforms.", - "items": { - "anyOf": [ - { - "$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" - } - } - }, - "example": [] - } - }, - "required": [ - "total", - "platforms" - ], - "example": { - "total": 5, - "platforms": "" - } - }, - "variable": { - "description": "Variable", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Variable ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Variable creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "key": { - "type": "string", - "description": "Variable key.", - "example": "API_KEY" - }, - "value": { - "type": "string", - "description": "Variable value.", - "example": "myPa$$word1" - }, - "secret": { - "type": "boolean", - "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", - "example": false - }, - "resourceType": { - "type": "string", - "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", - "example": "function" - }, - "resourceId": { - "type": "string", - "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", - "example": "myAwesomeFunction" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "key", - "value", - "secret", - "resourceType", - "resourceId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "key": "API_KEY", - "value": "myPa$$word1", - "secret": false, - "resourceType": "function", - "resourceId": "myAwesomeFunction" - } - }, - "country": { - "description": "Country", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Country name.", - "example": "United States" - }, - "code": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "United States", - "code": "US" - } - }, - "continent": { - "description": "Continent", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Continent name.", - "example": "Europe" - }, - "code": { - "type": "string", - "description": "Continent two letter code.", - "example": "EU" - } - }, - "required": [ - "name", - "code" - ], - "example": { - "name": "Europe", - "code": "EU" - } - }, - "language": { - "description": "Language", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Language name.", - "example": "Italian" - }, - "code": { - "type": "string", - "description": "Language two-character ISO 639-1 codes.", - "example": "it" - }, - "nativeName": { - "type": "string", - "description": "Language native name.", - "example": "Italiano" - } - }, - "required": [ - "name", - "code", - "nativeName" - ], - "example": { - "name": "Italian", - "code": "it", - "nativeName": "Italiano" - } - }, - "currency": { - "description": "Currency", - "type": "object", - "properties": { - "symbol": { - "type": "string", - "description": "Currency symbol.", - "example": "$" - }, - "name": { - "type": "string", - "description": "Currency name.", - "example": "US dollar" - }, - "symbolNative": { - "type": "string", - "description": "Currency native symbol.", - "example": "$" - }, - "decimalDigits": { - "type": "integer", - "description": "Number of decimal digits.", - "format": "int32", - "example": 2 - }, - "rounding": { - "type": "number", - "description": "Currency digit rounding.", - "format": "double", - "example": 0 - }, - "code": { - "type": "string", - "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", - "example": "USD" - }, - "namePlural": { - "type": "string", - "description": "Currency plural name", - "example": "US dollars" - } - }, - "required": [ - "symbol", - "name", - "symbolNative", - "decimalDigits", - "rounding", - "code", - "namePlural" - ], - "example": { - "symbol": "$", - "name": "US dollar", - "symbolNative": "$", - "decimalDigits": 2, - "rounding": 0, - "code": "USD", - "namePlural": "US dollars" - } - }, - "phone": { - "description": "Phone", - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Phone code.", - "example": "+1" - }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "example": "US" - }, - "countryName": { - "type": "string", - "description": "Country name.", - "example": "United States" - } - }, - "required": [ - "code", - "countryCode", - "countryName" - ], - "example": { - "code": "+1", - "countryCode": "US", - "countryName": "United States" - } - }, - "headers": { - "description": "Headers", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Header name.", - "example": "Content-Type" - }, - "value": { - "type": "string", - "description": "Header value.", - "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.", - "format": "int32", - "example": 512 - }, - "cpus": { - "type": "number", - "description": "Number of CPUs.", - "format": "double", - "example": 1 - }, - "enabled": { - "type": "boolean", - "description": "Is size enabled.", - "example": true - }, - "slug": { - "type": "string", - "description": "Size slug.", - "example": "s-1vcpu-512mb" - } - }, - "required": [ - "memory", - "cpus", - "enabled", - "slug" - ], - "example": { - "memory": 512, - "cpus": 1, - "enabled": true, - "slug": "s-1vcpu-512mb" - } - }, - "proxyRule": { - "description": "Rule", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Rule creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Rule update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "domain": { - "type": "string", - "description": "Domain name.", - "example": "appwrite.company.com" - }, - "type": { - "type": "string", - "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", - "example": "deployment" - }, - "trigger": { - "type": "string", - "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", - "example": "manual" - }, - "redirectUrl": { - "type": "string", - "description": "URL to redirect to. Used if type is \"redirect\"", - "example": "https:\/\/appwrite.io\/docs" - }, - "redirectStatusCode": { - "type": "integer", - "description": "Status code to apply during redirect. Used if type is \"redirect\"", - "format": "int32", - "example": 301 - }, - "deploymentId": { - "type": "string", - "description": "ID of deployment. Used if type is \"deployment\"", - "example": "n3u9feiwmf" - }, - "deploymentResourceType": { - "description": "Type of deployment resource: function, site, or dedicatedDatabase.", - "example": "function", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "function" - ], - "title": "function" - }, - { - "type": "string", - "enum": [ - "site" - ], - "title": "site" - }, - { - "type": "string", - "enum": [ - "dedicatedDatabase" - ], - "title": "dedicatedDatabase" - } - ], - "nullable": true - }, - "deploymentResourceId": { - "type": "string", - "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", - "example": "n3u9feiwmf" - }, - "deploymentVcsProviderBranch": { - "type": "string", - "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", - "example": "main" - }, - "status": { - "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", - "example": "verified", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "unverified" - ], - "title": "unverified" - }, - { - "type": "string", - "enum": [ - "verifying" - ], - "title": "verifying" - }, - { - "type": "string", - "enum": [ - "verified" - ], - "title": "verified" - } - ] - }, - "logs": { - "type": "string", - "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", - "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." - }, - "renewAt": { - "type": "string", - "description": "Certificate auto-renewal date in ISO 8601 format.", - "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" - } - }, - "emailTemplate": { - "description": "EmailTemplate", - "type": "object", - "properties": { - "templateId": { - "type": "string", - "description": "Template type", - "example": "verification" - }, - "locale": { - "type": "string", - "description": "Template locale", - "example": "en_us" - }, - "message": { - "type": "string", - "description": "Template message", - "example": "Click on the link to verify your account." - }, - "senderName": { - "type": "string", - "description": "Name of the sender", - "example": "My User" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "example": "mail@appwrite.io" - }, - "replyToEmail": { - "type": "string", - "description": "Reply to email address", - "example": "emails@appwrite.io" - }, - "replyToName": { - "type": "string", - "description": "Reply to name", - "example": "Support Team" - }, - "subject": { - "type": "string", - "description": "Email subject", - "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" - } - }, - "mfaChallenge": { - "description": "MFA Challenge", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "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" - } - }, - "mfaChallengeSecret": { - "description": "MFA Challenge Secret", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token ID.", - "example": "bb8ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "5e5ea5c168bb8" - }, - "expire": { - "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "code": { - "type": "string", - "description": "Challenge code to be delivered to the end user through a custom channel.", - "example": "446372" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "expire", - "code" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "expire": "2020-10-15T06:38:00.000+00:00", - "code": "446372" - } - }, - "mfaRecoveryCodes": { - "description": "MFA Recovery Codes", - "type": "object", - "properties": { - "recoveryCodes": { - "type": "array", - "description": "Recovery codes.", - "items": { - "type": "string" - }, - "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.", - "example": "[SHARED_SECRET]" - }, - "uri": { - "type": "string", - "description": "URI for authenticator apps.", - "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.", - "example": true - }, - "phone": { - "type": "boolean", - "description": "Can phone (SMS) be used for MFA challenge for this account.", - "example": true - }, - "email": { - "type": "boolean", - "description": "Can email be used for MFA challenge for this account.", - "example": true - }, - "recoveryCode": { - "type": "boolean", - "description": "Can recovery code be used for MFA challenge for this account.", - "example": true - }, - "custom": { - "type": "boolean", - "description": "Can custom factor be used for MFA challenge for this account.", - "example": true - } - }, - "required": [ - "totp", - "phone", - "email", - "recoveryCode", - "custom" - ], - "example": { - "totp": true, - "phone": true, - "email": true, - "recoveryCode": true, - "custom": true - } - }, - "provider": { - "description": "Provider", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Provider ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Provider creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Provider update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "The name for the provider instance.", - "example": "Mailgun" - }, - "provider": { - "type": "string", - "description": "The name of the provider service.", - "example": "mailgun" - }, - "enabled": { - "type": "boolean", - "description": "Is provider enabled?", - "example": true - }, - "type": { - "type": "string", - "description": "Type of provider.", - "example": "sms" - }, - "credentials": { - "type": "object", - "additionalProperties": true, - "description": "Provider credentials.", - "example": { - "key": "123456789" - } - }, - "options": { - "type": "object", - "additionalProperties": true, - "description": "Provider options.", - "example": { - "from": "sender-email@mydomain" - } - } - }, - "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" - }, - "options": { - "from": "sender-email@mydomain" - } - } - }, - "message": { - "description": "Message", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Message ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Message creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Message update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "providerType": { - "type": "string", - "description": "Message provider type.", - "example": "email" - }, - "topics": { - "type": "array", - "description": "Topic IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "users": { - "type": "array", - "description": "User IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "targets": { - "type": "array", - "description": "Target IDs set as recipients.", - "items": { - "type": "string" - }, - "example": [ - "5e5ea5c16897e" - ] - }, - "scheduledAt": { - "type": "string", - "description": "The scheduled time for message.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "deliveredAt": { - "type": "string", - "description": "The time when the message was delivered.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "deliveryErrors": { - "type": "array", - "description": "Delivery errors if any.", - "items": { - "type": "string" - }, - "example": [ - "Failed to send message to target 5e5ea5c16897e: Credentials not valid." - ], - "nullable": true - }, - "deliveredTotal": { - "type": "integer", - "description": "Number of recipients the message was delivered to.", - "format": "int32", - "example": 1 - }, - "data": { - "type": "object", - "additionalProperties": true, - "description": "Data of the message.", - "example": { - "subject": "Welcome to Appwrite", - "content": "Hi there, welcome to Appwrite family." - } - }, - "status": { - "description": "Status of delivery.", - "example": "processing", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "draft" - ], - "title": "draft" - }, - { - "type": "string", - "enum": [ - "processing" - ], - "title": "processing" - }, - { - "type": "string", - "enum": [ - "scheduled" - ], - "title": "scheduled" - }, - { - "type": "string", - "enum": [ - "sent" - ], - "title": "sent" - }, - { - "type": "string", - "enum": [ - "failed" - ], - "title": "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." - }, - "status": "processing" - } - }, - "topic": { - "description": "Topic", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Topic ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Topic creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Topic update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "The name of the topic.", - "example": "events" - }, - "emailTotal": { - "type": "integer", - "description": "Total count of email subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "smsTotal": { - "type": "integer", - "description": "Total count of SMS subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "pushTotal": { - "type": "integer", - "description": "Total count of push subscribers subscribed to the topic.", - "format": "int32", - "example": 100 - }, - "subscribe": { - "type": "array", - "description": "Subscribe permissions.", - "items": { - "type": "string" - }, - "example": [ - "users" - ] - }, - "qos": { - "type": "integer", - "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", - "format": "int32", - "example": 1, - "nullable": true - }, - "expiry": { - "type": "integer", - "description": "Message retention in seconds for offline delivery.", - "format": "int32", - "example": 604800, - "nullable": true - } - }, - "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", - "qos": 1, - "expiry": 604800 - } - }, - "transaction": { - "description": "Transaction", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Transaction ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Transaction creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Transaction update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { - "type": "string", - "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", - "example": "pending" - }, - "operations": { - "type": "integer", - "description": "Number of operations in the transaction.", - "format": "int32", - "example": 5 - }, - "expiresAt": { - "type": "string", - "description": "Expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "status", - "operations", - "expiresAt" - ], - "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" - } - }, - "subscriber": { - "description": "Subscriber", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Subscriber ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Subscriber creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Subscriber update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "targetId": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "target": { - "type": "object", - "description": "Target.", - "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" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/target" - } - ] - }, - "userId": { - "type": "string", - "description": "Topic ID.", - "example": "5e5ea5c16897e" - }, - "userName": { - "type": "string", - "description": "User Name.", - "example": "Aegon Targaryen" - }, - "topicId": { - "type": "string", - "description": "Topic ID.", - "example": "259125845563242502" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "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" - }, - "userId": "5e5ea5c16897e", - "userName": "Aegon Targaryen", - "topicId": "259125845563242502", - "providerType": "email" - } - }, - "target": { - "description": "Target", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Target ID.", - "example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Target creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Target update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Target Name.", - "example": "Apple iPhone 12" - }, - "userId": { - "type": "string", - "description": "User ID.", - "example": "259125845563242502" - }, - "providerId": { - "type": "string", - "description": "Provider ID.", - "example": "259125845563242502", - "nullable": true - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "example": "email" - }, - "identifier": { - "type": "string", - "description": "The target identifier.", - "example": "token" - }, - "expired": { - "type": "boolean", - "description": "Is the target expired.", - "example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "userId", - "providerType", - "identifier", - "expired" - ], - "example": { - "$id": "259125845563242502", - "$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 - } - }, - "insight": { - "description": "Insight", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Insight ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Insight creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Insight update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "reportId": { - "type": "string", - "description": "Parent report ID. Insights always belong to a report.", - "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).", - "example": "tablesDBIndex" - }, - "severity": { - "type": "string", - "description": "Insight severity. One of info, warning, critical.", - "example": "warning" - }, - "status": { - "type": "string", - "description": "Insight status. One of active, dismissed.", - "example": "active" - }, - "resourceType": { - "type": "string", - "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", - "example": "databases" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource the insight is about.", - "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.", - "example": "tables" - }, - "parentResourceId": { - "type": "string", - "description": "ID of the parent resource. Empty when the resource has no parent.", - "example": "orders" - }, - "title": { - "type": "string", - "description": "Insight title.", - "example": "Missing index on collection orders" - }, - "summary": { - "type": "string", - "description": "Short markdown summary describing the insight.", - "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" - }, - "example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the insight was analyzed in ISO 8601 format.", - "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.", - "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.", - "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.", - "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.", - "example": "tablesDB" - }, - "method": { - "type": "string", - "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", - "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).", - "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.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Report creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Report update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the third-party app that submitted the report.", - "example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", - "example": "lighthouse" - }, - "title": { - "type": "string", - "description": "Short, human-readable title for the report.", - "example": "Lighthouse audit for https:\/\/appwrite.io\/" - }, - "summary": { - "type": "string", - "description": "Markdown summary describing the report.", - "example": "Performance score 78. 4 opportunities found." - }, - "targetType": { - "type": "string", - "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", - "example": "urls" - }, - "target": { - "type": "string", - "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", - "example": "https:\/\/appwrite.io\/" - }, - "categories": { - "type": "array", - "description": "Categories covered by the report, e.g. performance, accessibility.", - "items": { - "type": "string" - }, - "example": [ - "performance", - "accessibility" - ] - }, - "insights": { - "type": "array", - "description": "Insights nested under this report.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the report was analyzed in ISO 8601 format.", - "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.", - "example": "5e5ea5c16897e" - }, - "actorType": { - "type": "string", - "description": "Actor type.", - "example": "user" - }, - "actorId": { - "type": "string", - "description": "Actor ID.", - "example": "610fc2f985ee0" - }, - "actorEmail": { - "type": "string", - "description": "Actor Email.", - "example": "john@appwrite.io" - }, - "actorName": { - "type": "string", - "description": "Actor Name.", - "example": "John Doe" - }, - "resourceParent": { - "type": "string", - "description": "Resource parent.", - "example": "database\/ID" - }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "example": "collection" - }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "610fc2f985ee0" - }, - "resource": { - "type": "string", - "description": "Resource.", - "example": "collections\/610fc2f985ee0" - }, - "event": { - "type": "string", - "description": "Event name.", - "example": "account.sessions.create" - }, - "userAgent": { - "type": "string", - "description": "User agent.", - "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.", - "example": "127.0.0.1" - }, - "mode": { - "type": "string", - "description": "API mode when event triggered.", - "example": "admin" - }, - "country": { - "type": "string", - "description": "Location.", - "example": "US" - }, - "continentCode": { - "type": "string", - "description": "Continent code.", - "example": "NA" - }, - "city": { - "type": "string", - "description": "City name.", - "example": "Mountain View" - }, - "subdivisions": { - "type": "string", - "description": "Region\/state chain.", - "example": "California" - }, - "isp": { - "type": "string", - "description": "Internet service provider.", - "example": "Google" - }, - "autonomousSystemNumber": { - "type": "string", - "description": "Autonomous System Number (ASN).", - "example": "15169" - }, - "autonomousSystemOrganization": { - "type": "string", - "description": "Organization that owns the ASN.", - "example": "GOOGLE" - }, - "connectionType": { - "type": "string", - "description": "Connection type (e.g. cable, cellular, corporate).", - "example": "cable" - }, - "connectionUsageType": { - "type": "string", - "description": "User type (e.g. residential, business, hosting).", - "example": "residential" - }, - "connectionOrganization": { - "type": "string", - "description": "Registered organization of the IP.", - "example": "Google LLC" - }, - "time": { - "type": "string", - "description": "Log creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "610fc2f985ee0" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "610fc2f985ee0" - }, - "hostname": { - "type": "string", - "description": "Hostname.", - "example": "appwrite.io" - }, - "sdk": { - "type": "string", - "description": "Name of the SDK that triggered the event.", - "example": "web" - }, - "sdkVersion": { - "type": "string", - "description": "Version of the SDK that triggered the event.", - "example": "14.0.0" - } - }, - "required": [ - "$id", - "actorType", - "actorId", - "actorEmail", - "actorName", - "resourceParent", - "resourceType", - "resourceId", - "resource", - "event", - "userAgent", - "ip", - "mode", - "country", - "continentCode", - "city", - "subdivisions", - "isp", - "autonomousSystemNumber", - "autonomousSystemOrganization", - "connectionType", - "connectionUsageType", - "connectionOrganization", - "time", - "projectId", - "teamId", - "hostname", - "sdk", - "sdkVersion" - ], - "example": { - "$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", - "continentCode": "NA", - "city": "Mountain View", - "subdivisions": "California", - "isp": "Google", - "autonomousSystemNumber": "15169", - "autonomousSystemOrganization": "GOOGLE", - "connectionType": "cable", - "connectionUsageType": "residential", - "connectionOrganization": "Google LLC", - "time": "2020-10-15T06:38:00.000+00:00", - "projectId": "610fc2f985ee0", - "teamId": "610fc2f985ee0", - "hostname": "appwrite.io", - "sdk": "web", - "sdkVersion": "14.0.0" - } - }, - "additionalResource": { - "description": "AdditionalResource", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Resource name", - "example": "" - }, - "unit": { - "type": "string", - "description": "Resource unit", - "example": "GB" - }, - "currency": { - "type": "string", - "description": "Price currency", - "example": "USD" - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 5 - }, - "value": { - "type": "integer", - "description": "Resource value", - "format": "int32", - "example": 25 - }, - "invoiceDesc": { - "type": "string", - "description": "Description on invoice", - "example": "" - } - }, - "required": [ - "name", - "unit", - "currency", - "price", - "value", - "invoiceDesc" - ], - "example": { - "name": "", - "unit": "GB", - "currency": "USD", - "price": 5, - "value": 25, - "invoiceDesc": "" - } - }, - "analyticsMetric": { - "description": "AnalyticsMetric", - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", - "example": "google.com", - "nullable": true - }, - "date": { - "type": "string", - "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", - "example": "2026-05-01T00:00:00.000+00:00", - "nullable": true - }, - "visitors": { - "type": "integer", - "description": "Unique visitors in the requested range.", - "format": "int32", - "example": 1234 - }, - "sessions": { - "type": "integer", - "description": "Unique sessions in the requested range.", - "format": "int32", - "example": 4567 - }, - "pageviews": { - "type": "integer", - "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "int32", - "example": 5678, - "nullable": true - }, - "events": { - "type": "integer", - "description": "Total events in the requested range.", - "format": "int32", - "example": 8910 - }, - "visits": { - "type": "integer", - "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "int32", - "example": 2345, - "nullable": true - }, - "bounceRate": { - "type": "number", - "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 42.5, - "nullable": true - }, - "visitDuration": { - "type": "number", - "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 75.4, - "nullable": true - }, - "viewsPerVisit": { - "type": "number", - "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 2.7, - "nullable": true - }, - "scrollDepth": { - "type": "number", - "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 65, - "nullable": true - }, - "engagementTime": { - "type": "number", - "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", - "format": "double", - "example": 18432, - "nullable": true - } - }, - "required": [ - "visitors", - "sessions", - "events" - ], - "example": { - "value": "google.com", - "date": "2026-05-01T00:00:00.000+00:00", - "visitors": 1234, - "sessions": 4567, - "pageviews": 5678, - "events": 8910, - "visits": 2345, - "bounceRate": 42.5, - "visitDuration": 75.4, - "viewsPerVisit": 2.7, - "scrollDepth": 65, - "engagementTime": 18432 - } - }, - "analyticsMetricList": { - "description": "AnalyticsMetricList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of metric rows returned.", - "format": "int32", - "example": 30 - }, - "metrics": { - "type": "array", - "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", - "items": { - "$ref": "#\/components\/schemas\/analyticsMetric" - }, - "example": [] - } - }, - "required": [ - "total", - "metrics" - ], - "example": { - "total": 30, - "metrics": [] - } - }, - "analyticsProperty": { - "description": "AnalyticsProperty", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Analytics property ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Property creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Property update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human-readable name of the tracked website or application.", - "example": "My Website" - }, - "domain": { - "type": "string", - "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", - "example": "example.com" - }, - "timezone": { - "type": "string", - "description": "IANA timezone used to define the daily boundary for stats.", - "example": "UTC" - }, - "enabled": { - "type": "boolean", - "description": "Whether tracking is currently active.", - "example": true - }, - "public": { - "type": "boolean", - "description": "Whether stats for this property are publicly viewable.", - "example": false - }, - "allowedOrigins": { - "type": "array", - "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com" - ] - }, - "snippetId": { - "type": "string", - "description": "Unique identifier for the tracking script snippet.", - "example": "snp_a1b2c3d4e5" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "domain", - "timezone", - "enabled", - "public", - "allowedOrigins", - "snippetId" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Website", - "domain": "example.com", - "timezone": "UTC", - "enabled": true, - "public": false, - "allowedOrigins": [ - "https:\/\/example.com" - ], - "snippetId": "snp_a1b2c3d4e5" - } - }, - "backupArchive": { - "description": "Archive", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Archive ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Archive creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Archive update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "policyId": { - "type": "string", - "description": "Archive policy ID.", - "example": "did8jx6ws45jana098ab7" - }, - "size": { - "type": "integer", - "description": "Archive size in bytes. Null until the size is known.", - "format": "int32", - "example": 100000, - "nullable": true - }, - "status": { - "type": "string", - "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", - "example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The backup start time. Null until the backup starts.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this archive.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this archive.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this archive should backup a single resource.", - "example": "DB1", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this archive should backup a single resource.", - "example": "database", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "policyId", - "status", - "migrationId", - "services", - "resources" - ], - "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" - } - }, - "dedicatedDatabaseBackup": { - "description": "Backup", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Backup ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Backup creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID this backup belongs to.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID when the backup was created by a schedule.", - "example": "5e5ea5c16897e" - }, - "trigger": { - "type": "string", - "description": "Backup trigger. Possible values: manual, schedule.", - "example": "schedule" - }, - "type": { - "type": "string", - "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", - "example": "full" - }, - "requestedType": { - "type": "string", - "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", - "example": "incremental" - }, - "fallbackReason": { - "type": "string", - "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", - "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." - }, - "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).", - "example": "completed" - }, - "sizeBytes": { - "type": "integer", - "description": "Backup size in bytes.", - "format": "int32", - "example": 1073741824 - }, - "startedAt": { - "type": "string", - "description": "Backup start time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "completedAt": { - "type": "string", - "description": "Backup completion time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "verifiedAt": { - "type": "string", - "description": "Backup verification time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "expiresAt": { - "type": "string", - "description": "Backup expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "logPosition": { - "type": "string", - "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", - "example": "000000010000000000000003|0\/3000148", - "nullable": true - }, - "error": { - "type": "string", - "description": "Error message if backup failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "projectId", - "policyId", - "trigger", - "type", - "requestedType", - "fallbackReason", - "status", - "sizeBytes", - "error" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "projectId": "5e5ea5c16897e", - "policyId": "5e5ea5c16897e", - "trigger": "schedule", - "type": "full", - "requestedType": "incremental", - "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", - "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", - "logPosition": "000000010000000000000003|0\/3000148", - "error": "" - } - }, - "dedicatedDatabaseBackupList": { - "description": "BackupList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of backups.", - "format": "int32", - "example": 5 - }, - "backups": { - "type": "array", - "description": "List of backups.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" - }, - "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).", - "example": "s3" - }, - "bucket": { - "type": "string", - "description": "Storage bucket or container name.", - "example": "my-backup-bucket" - }, - "region": { - "type": "string", - "description": "Storage region.", - "example": "us-east-1" - }, - "prefix": { - "type": "string", - "description": "Object key prefix for backups.", - "example": "backups\/" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint for S3-compatible storage.", - "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" - } - }, - "billingLimits": { - "description": "Limits", - "type": "object", - "properties": { - "bandwidth": { - "type": "integer", - "description": "Bandwidth limit", - "format": "int32", - "example": 5, - "nullable": true - }, - "storage": { - "type": "integer", - "description": "Storage limit", - "format": "int32", - "example": 150, - "nullable": true - }, - "users": { - "type": "integer", - "description": "Users limit", - "format": "int32", - "example": 200000, - "nullable": true - }, - "executions": { - "type": "integer", - "description": "Executions limit", - "format": "int32", - "example": 750000, - "nullable": true - }, - "GBHours": { - "type": "integer", - "description": "GBHours limit", - "format": "int32", - "example": 100, - "nullable": true - }, - "imageTransformations": { - "type": "integer", - "description": "Image transformations limit", - "format": "int32", - "example": 100, - "nullable": true - }, - "authPhone": { - "type": "integer", - "description": "Auth phone limit", - "format": "int32", - "example": 10, - "nullable": true - }, - "budgetLimit": { - "type": "integer", - "description": "Budget limit percentage", - "format": "int32", - "example": 100, - "nullable": true - } - }, - "example": { - "bandwidth": 5, - "storage": 150, - "users": 200000, - "executions": 750000, - "GBHours": 100, - "imageTransformations": 100, - "authPhone": 10, - "budgetLimit": 100 - } - }, - "billingPlan": { - "description": "billingPlan", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Plan ID.", - "example": "tier-0" - }, - "name": { - "type": "string", - "description": "Plan name", - "example": "Hobby" - }, - "desc": { - "type": "string", - "description": "Plan description", - "example": "Hobby plan" - }, - "order": { - "type": "integer", - "description": "Plan order", - "format": "int32", - "example": 0 - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 25 - }, - "trial": { - "type": "integer", - "description": "Trial days", - "format": "int32", - "example": 14 - }, - "bandwidth": { - "type": "integer", - "description": "Bandwidth", - "format": "int32", - "example": 25 - }, - "storage": { - "type": "integer", - "description": "Storage", - "format": "int32", - "example": 25 - }, - "imageTransformations": { - "type": "integer", - "description": "Image Transformations", - "format": "int32", - "example": 100 - }, - "screenshotsGenerated": { - "type": "integer", - "description": "Screenshots generated", - "format": "int32", - "example": 50 - }, - "members": { - "type": "integer", - "description": "Members", - "format": "int32", - "example": 25, - "nullable": true - }, - "webhooks": { - "type": "integer", - "description": "Webhooks", - "format": "int32", - "example": 25 - }, - "wafRules": { - "type": "integer", - "description": "Maximum WAF rules per project", - "format": "int32", - "example": 2 - }, - "projects": { - "type": "integer", - "description": "Projects", - "format": "int32", - "example": 2 - }, - "platforms": { - "type": "integer", - "description": "Platforms", - "format": "int32", - "example": 3 - }, - "users": { - "type": "integer", - "description": "Users", - "format": "int32", - "example": 25 - }, - "teams": { - "type": "integer", - "description": "Teams", - "format": "int32", - "example": 25 - }, - "databases": { - "type": "integer", - "description": "Databases", - "format": "int32", - "example": 25 - }, - "databasesReads": { - "type": "integer", - "description": "Database reads per month", - "format": "int32", - "example": 500000 - }, - "databasesWrites": { - "type": "integer", - "description": "Database writes per month", - "format": "int32", - "example": 250000 - }, - "databasesBatchSize": { - "type": "integer", - "description": "Database batch size limit", - "format": "int32", - "example": 100 - }, - "buckets": { - "type": "integer", - "description": "Buckets", - "format": "int32", - "example": 25 - }, - "fileSize": { - "type": "integer", - "description": "File size", - "format": "int32", - "example": 25 - }, - "functions": { - "type": "integer", - "description": "Functions", - "format": "int32", - "example": 25 - }, - "sites": { - "type": "integer", - "description": "Sites", - "format": "int32", - "example": 1 - }, - "executions": { - "type": "integer", - "description": "Function executions", - "format": "int32", - "example": 25 - }, - "executionsRetentionCount": { - "type": "integer", - "description": "Rolling max executions retained per function\/site", - "format": "int32", - "example": 10000 - }, - "GBHours": { - "type": "integer", - "description": "GB hours for functions", - "format": "int32", - "example": 100 - }, - "realtime": { - "type": "integer", - "description": "Realtime connections", - "format": "int32", - "example": 25 - }, - "realtimeMessages": { - "type": "integer", - "description": "Realtime messages", - "format": "int32", - "example": 100000 - }, - "messages": { - "type": "integer", - "description": "Messages per month", - "format": "int32", - "example": 1000 - }, - "topics": { - "type": "integer", - "description": "Topics for messaging", - "format": "int32", - "example": 1 - }, - "authPhone": { - "type": "integer", - "description": "SMS authentications per month", - "format": "int32", - "example": 10 - }, - "domains": { - "type": "integer", - "description": "Custom domains", - "format": "int32", - "example": 5 - }, - "activityLogs": { - "type": "integer", - "description": "Activity log days", - "format": "int32", - "example": 7, - "nullable": true - }, - "usageLogs": { - "type": "integer", - "description": "Usage history days", - "format": "int32", - "example": 30 - }, - "usageLogsIntervals": { - "type": "array", - "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", - "items": { - "type": "string" - }, - "example": [ - "15m", - "1h", - "1d" - ], - "nullable": true - }, - "usageAggregateOnlyMetrics": { - "type": "array", - "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", - "items": { - "type": "string" - }, - "example": [ - "network.requests", - "network.inbound", - "network.outbound" - ], - "nullable": true - }, - "projectInactivityDays": { - "type": "integer", - "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", - "format": "int32", - "example": 7 - }, - "alertLimit": { - "type": "integer", - "description": "Alert threshold percentage", - "format": "int32", - "example": 80 - }, - "usage": { - "type": "object", - "description": "Additional resources. Null when the plan does not support usage billing.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/usageBillingPlan" - } - ], - "nullable": true - }, - "addons": { - "type": "object", - "description": "Addons", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddon" - } - ] - }, - "budgetCapEnabled": { - "type": "boolean", - "description": "Budget cap enabled or disabled.", - "example": true - }, - "customSmtp": { - "type": "boolean", - "description": "Custom SMTP", - "example": true - }, - "emailBranding": { - "type": "boolean", - "description": "Appwrite branding in email", - "example": true - }, - "requiresPaymentMethod": { - "type": "boolean", - "description": "Does plan require payment method", - "example": true - }, - "requiresBillingAddress": { - "type": "boolean", - "description": "Does plan require billing address", - "example": true - }, - "eligibleCountries": { - "type": "array", - "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", - "items": { - "type": "string" - }, - "example": [ - "IN", - "NP" - ], - "nullable": true - }, - "isAvailable": { - "type": "boolean", - "description": "Is the billing plan available", - "example": true - }, - "selfService": { - "type": "boolean", - "description": "Can user change the plan themselves", - "example": true - }, - "premiumSupport": { - "type": "boolean", - "description": "Does plan enable premium support", - "example": true - }, - "budgeting": { - "type": "boolean", - "description": "Does plan support budget cap", - "example": true - }, - "supportsMockNumbers": { - "type": "boolean", - "description": "Does plan support mock numbers", - "example": true - }, - "supportsOrganizationRoles": { - "type": "boolean", - "description": "Does plan support organization roles", - "example": true - }, - "supportsCredits": { - "type": "boolean", - "description": "Does plan support credit", - "example": true - }, - "supportsDedicatedDatabases": { - "type": "boolean", - "description": "Does plan support dedicated databases.", - "example": true - }, - "supportsDisposableEmailValidation": { - "type": "boolean", - "description": "Does plan support blocking disposable email addresses.", - "example": true - }, - "supportsCanonicalEmailValidation": { - "type": "boolean", - "description": "Does plan support requiring canonical email addresses.", - "example": true - }, - "supportsFreeEmailValidation": { - "type": "boolean", - "description": "Does plan support blocking free email addresses.", - "example": true - }, - "supportsCorporateEmailValidation": { - "type": "boolean", - "description": "Does plan support restricting sign-ups to corporate email addresses only.", - "example": true - }, - "supportsProjectSpecificRoles": { - "type": "boolean", - "description": "Does plan support project-specific member roles.", - "example": true - }, - "backupsEnabled": { - "type": "boolean", - "description": "Does plan support backup policies.", - "example": true, - "nullable": true - }, - "usagePerProject": { - "type": "boolean", - "description": "Whether usage addons are calculated per project.", - "example": true - }, - "supportedAddons": { - "type": "object", - "description": "Supported addons for this plan", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" - } - ] - }, - "backupPolicies": { - "type": "integer", - "description": "How many policies does plan support", - "format": "int32", - "example": 1, - "nullable": true - }, - "deploymentSize": { - "type": "integer", - "description": "Maximum function and site deployment size in MB", - "format": "int32", - "example": 30 - }, - "buildSize": { - "type": "integer", - "description": "Maximum function and site deployment size in MB", - "format": "int32", - "example": 2000 - }, - "databasesAllowEncrypt": { - "type": "boolean", - "description": "Does the plan support encrypted string attributes or not.", - "example": false - }, - "limits": { - "type": "object", - "description": "Plan specific limits", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanLimits" - } - ], - "nullable": true - }, - "group": { - "description": "Group of this billing plan for variants", - "example": "pro", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "free" - ], - "title": "free" - }, - { - "type": "string", - "enum": [ - "start" - ], - "title": "start" - }, - { - "type": "string", - "enum": [ - "pro" - ], - "title": "pro" - }, - { - "type": "string", - "enum": [ - "scale" - ], - "title": "scale" - } - ] - }, - "program": { - "type": "object", - "description": "Details of the program this plan is a part of.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/program" - } - ], - "nullable": true - }, - "databaseComputeCredit": { - "type": "number", - "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", - "format": "double", - "example": 10 - }, - "dedicatedDatabases": { - "type": "object", - "description": "Dedicated database limits available to this plan.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" - } - ], - "nullable": true - } - }, - "required": [ - "$id", - "name", - "desc", - "order", - "price", - "trial", - "bandwidth", - "storage", - "imageTransformations", - "screenshotsGenerated", - "webhooks", - "wafRules", - "projects", - "platforms", - "users", - "teams", - "databases", - "databasesReads", - "databasesWrites", - "databasesBatchSize", - "buckets", - "fileSize", - "functions", - "sites", - "executions", - "executionsRetentionCount", - "GBHours", - "realtime", - "realtimeMessages", - "messages", - "topics", - "authPhone", - "domains", - "usageLogs", - "projectInactivityDays", - "alertLimit", - "addons", - "budgetCapEnabled", - "customSmtp", - "emailBranding", - "requiresPaymentMethod", - "requiresBillingAddress", - "isAvailable", - "selfService", - "premiumSupport", - "budgeting", - "supportsMockNumbers", - "supportsOrganizationRoles", - "supportsCredits", - "supportsDedicatedDatabases", - "supportsDisposableEmailValidation", - "supportsCanonicalEmailValidation", - "supportsFreeEmailValidation", - "supportsCorporateEmailValidation", - "supportsProjectSpecificRoles", - "usagePerProject", - "supportedAddons", - "deploymentSize", - "buildSize", - "databasesAllowEncrypt", - "group", - "databaseComputeCredit" - ], - "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, - "wafRules": 2, - "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, - "activityLogs": 7, - "usageLogs": 30, - "usageLogsIntervals": [ - "15m", - "1h", - "1d" - ], - "usageAggregateOnlyMetrics": [ - "network.requests", - "network.inbound", - "network.outbound" - ], - "projectInactivityDays": 7, - "alertLimit": 80, - "usage": null, - "addons": null, - "budgetCapEnabled": true, - "customSmtp": true, - "emailBranding": true, - "requiresPaymentMethod": true, - "requiresBillingAddress": true, - "eligibleCountries": [ - "IN", - "NP" - ], - "isAvailable": true, - "selfService": true, - "premiumSupport": true, - "budgeting": true, - "supportsMockNumbers": true, - "supportsOrganizationRoles": true, - "supportsCredits": true, - "supportsDedicatedDatabases": true, - "supportsDisposableEmailValidation": true, - "supportsCanonicalEmailValidation": true, - "supportsFreeEmailValidation": true, - "supportsCorporateEmailValidation": true, - "supportsProjectSpecificRoles": true, - "backupsEnabled": true, - "usagePerProject": true, - "supportedAddons": null, - "backupPolicies": 1, - "deploymentSize": 30, - "buildSize": 2000, - "databasesAllowEncrypt": false, - "limits": null, - "group": "pro", - "program": null, - "databaseComputeCredit": 10, - "dedicatedDatabases": null - } - }, - "billingPlanAddon": { - "description": "Addon", - "type": "object", - "properties": { - "seats": { - "type": "object", - "description": "Addon seats", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" - } - ], - "nullable": true - }, - "projects": { - "type": "object", - "description": "Addon projects", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" - } - ], - "nullable": true - } - }, - "example": { - "seats": null, - "projects": null - } - }, - "billingPlanAddonDetails": { - "description": "Details", - "type": "object", - "properties": { - "supported": { - "type": "boolean", - "description": "Is the addon supported in the plan?", - "example": true - }, - "planIncluded": { - "type": "integer", - "description": "Addon plan included value", - "format": "int32", - "example": 1 - }, - "limit": { - "type": "integer", - "description": "Addon limit", - "format": "int32", - "example": 5 - }, - "type": { - "type": "string", - "description": "Addon type", - "example": "numeric" - }, - "currency": { - "type": "string", - "description": "Price currency", - "example": "USD", - "nullable": true - }, - "price": { - "type": "number", - "description": "Price", - "format": "double", - "example": 5 - }, - "value": { - "type": "integer", - "description": "Resource value", - "format": "int32", - "example": 25 - }, - "invoiceDesc": { - "type": "string", - "description": "Description on invoice", - "example": "" - } - }, - "required": [ - "supported", - "planIncluded", - "limit", - "type", - "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", - "format": "int32", - "example": 100, - "nullable": true - }, - "dailyCredits": { - "type": "integer", - "description": "Daily credits limit (if applicable)", - "format": "int32", - "example": 5, - "nullable": true - } - }, - "example": { - "credits": 100, - "dailyCredits": 5 - } - }, - "billingPlanDedicatedDatabaseLimits": { - "description": "dedicatedDatabaseLimits", - "type": "object", - "properties": { - "minCpu": { - "type": "integer", - "description": "Minimum CPU allocation in millicores.", - "format": "int32", - "example": 125, - "nullable": true - }, - "maxCpu": { - "type": "integer", - "description": "Maximum CPU allocation in millicores.", - "format": "int32", - "example": 32000, - "nullable": true - }, - "minMemoryMb": { - "type": "integer", - "description": "Minimum memory allocation in megabytes.", - "format": "int32", - "example": 128, - "nullable": true - }, - "maxMemoryMb": { - "type": "integer", - "description": "Maximum memory allocation in megabytes.", - "format": "int32", - "example": 262144, - "nullable": true - }, - "minStorageGb": { - "type": "integer", - "description": "Minimum storage allocation in gigabytes.", - "format": "int32", - "example": 1, - "nullable": true - }, - "maxStorageGb": { - "type": "integer", - "description": "Maximum storage allocation in gigabytes.", - "format": "int32", - "example": 16384, - "nullable": true - }, - "maxReplicas": { - "type": "integer", - "description": "Maximum number of high-availability replicas per dedicated database.", - "format": "int32", - "example": 5, - "nullable": true - }, - "maxConnections": { - "type": "integer", - "description": "Maximum number of client connections.", - "format": "int32", - "example": 10000, - "nullable": true - }, - "maxIpAllowlistSize": { - "type": "integer", - "description": "Maximum number of entries allowed in the IP allowlist.", - "format": "int32", - "example": 100, - "nullable": true - }, - "maxExtensions": { - "type": "integer", - "description": "Maximum number of database extensions that can be enabled.", - "format": "int32", - "example": 50, - "nullable": true - }, - "maxBackupRetentionDays": { - "type": "integer", - "description": "Maximum number of days a backup can be retained.", - "format": "int32", - "example": 365, - "nullable": true - }, - "maxPitrRetentionDays": { - "type": "integer", - "description": "Maximum number of days of point-in-time recovery data that can be retained.", - "format": "int32", - "example": 35, - "nullable": true - }, - "maxSqlApiMaxRows": { - "type": "integer", - "description": "Maximum number of rows a single SQL API query can return.", - "format": "int32", - "example": 1000000, - "nullable": true - }, - "maxSqlApiMaxBytes": { - "type": "integer", - "description": "Maximum response size in bytes for a single SQL API query.", - "format": "int32", - "example": 104857600, - "nullable": true - }, - "maxSqlApiTimeoutSeconds": { - "type": "integer", - "description": "Maximum execution time in seconds for a single SQL API query.", - "format": "int32", - "example": 300, - "nullable": true - }, - "maxSqlApiAllowedStatements": { - "type": "integer", - "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", - "format": "int32", - "example": 10, - "nullable": true - }, - "allowedSqlStatements": { - "type": "array", - "description": "SQL statement types permitted through the SQL API.", - "items": { - "type": "string" - }, - "example": [ - "select", - "insert", - "update", - "delete", - "explain" - ], - "nullable": true - }, - "allowedStorageClasses": { - "type": "array", - "description": "Storage classes available for dedicated databases.", - "items": { - "type": "string" - }, - "example": [ - "ssd" - ], - "nullable": true - }, - "allowedSyncModes": { - "type": "array", - "description": "Replica synchronization modes available for dedicated databases.", - "items": { - "type": "string" - }, - "example": [ - "async", - "sync", - "quorum" - ], - "nullable": true - } - }, - "example": { - "minCpu": 125, - "maxCpu": 32000, - "minMemoryMb": 128, - "maxMemoryMb": 262144, - "minStorageGb": 1, - "maxStorageGb": 16384, - "maxReplicas": 5, - "maxConnections": 10000, - "maxIpAllowlistSize": 100, - "maxExtensions": 50, - "maxBackupRetentionDays": 365, - "maxPitrRetentionDays": 35, - "maxSqlApiMaxRows": 1000000, - "maxSqlApiMaxBytes": 104857600, - "maxSqlApiTimeoutSeconds": 300, - "maxSqlApiAllowedStatements": 10, - "allowedSqlStatements": [ - "select", - "insert", - "update", - "delete", - "explain" - ], - "allowedStorageClasses": [ - "ssd" - ], - "allowedSyncModes": [ - "async", - "sync", - "quorum" - ] - } - }, - "billingPlanSupportedAddons": { - "description": "BillingPlanSupportedAddons", - "type": "object", - "properties": { - "baa": { - "type": "boolean", - "description": "Whether the plan supports BAA (Business Associate Agreement) addon", - "example": true - }, - "premiumGeoDB": { - "type": "boolean", - "description": "Whether the plan supports Premium Geo DB addon (project-level)", - "example": true - }, - "premiumGeoDBOrg": { - "type": "boolean", - "description": "Whether the plan supports Premium Geo DB addon (organization-level)", - "example": true - } - }, - "required": [ - "baa", - "premiumGeoDB", - "premiumGeoDBOrg" - ], - "example": { - "baa": true, - "premiumGeoDB": true, - "premiumGeoDBOrg": true - } - }, - "block": { - "description": "Block", - "type": "object", - "properties": { - "$createdAt": { - "type": "string", - "description": "Block creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "resourceType": { - "type": "string", - "description": "Resource type that is blocked", - "example": "project" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier that is blocked", - "example": "5e5ea5c16897e" - }, - "mode": { - "type": "string", - "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", - "example": "readOnly" - }, - "expiredAt": { - "type": "string", - "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$createdAt", - "resourceType", - "resourceId", - "mode" - ], - "example": { - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "mode": "readOnly", - "expiredAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "dedicatedDatabaseBranch": { - "description": "Branch", - "type": "object", - "properties": { - "branchId": { - "type": "string", - "description": "Branch identifier.", - "example": "a1b2c3d4" - }, - "branchName": { - "type": "string", - "description": "Branch name.", - "example": "branch-a1b2c3d4" - }, - "namespace": { - "type": "string", - "description": "Kubernetes namespace where the branch is deployed.", - "example": "db-myproject-mydb-branch-a1b2c3d4" - }, - "expiresAt": { - "type": "integer", - "description": "Unix timestamp when the branch expires.", - "format": "int32", - "example": 1711411200 - }, - "host": { - "type": "string", - "description": "Branch hostname for direct connections.", - "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" - }, - "port": { - "type": "integer", - "description": "Branch port. Null until the backing reports one.", - "format": "int32", - "example": 5432 - }, - "database": { - "type": "string", - "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", - "example": "db-myproject-mydb-a1b2c3d4" - }, - "username": { - "type": "string", - "description": "Database username. Shared with the parent database.", - "example": "appwrite" - }, - "password": { - "type": "string", - "description": "Database password. Shared with the parent database.", - "example": "********" - }, - "ssl": { - "type": "boolean", - "description": "Whether SSL is required.", - "example": false - }, - "engine": { - "type": "string", - "description": "Database engine. Possible values: postgresql, mysql, mongodb.", - "example": "postgresql" - }, - "connectionString": { - "type": "string", - "description": "Full connection string for the branch.", - "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" - } - }, - "required": [ - "branchId", - "branchName", - "namespace", - "expiresAt", - "host", - "port", - "database", - "username", - "password", - "ssl", - "engine", - "connectionString" - ], - "example": { - "branchId": "a1b2c3d4", - "branchName": "branch-a1b2c3d4", - "namespace": "db-myproject-mydb-branch-a1b2c3d4", - "expiresAt": 1711411200, - "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", - "port": 5432, - "database": "db-myproject-mydb-a1b2c3d4", - "username": "appwrite", - "password": "********", - "ssl": false, - "engine": "postgresql", - "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" - } - }, - "dedicatedDatabaseBranchList": { - "description": "BranchList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of branches.", - "format": "int32", - "example": 2 - }, - "branches": { - "type": "array", - "description": "List of branches.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" - }, - "example": [] - } - }, - "required": [ - "total", - "branches" - ], - "example": { - "total": 2, - "branches": [] - } - }, - "databaseMigration": { - "description": "Database Migration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Database migration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Migration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Migration update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID that owns the migrating database.", - "example": "5e5ea5c16897e" - }, - "databaseId": { - "type": "string", - "description": "Logical database ID being migrated.", - "example": "5e5ea5c16897e" - }, - "specification": { - "type": "string", - "description": "Dedicated compute specification provisioned for the migration target.", - "example": "s-2vcpu-4gb" - }, - "phase": { - "type": "string", - "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", - "example": "pending" - }, - "attempt": { - "type": "integer", - "description": "Number of times a migration step has failed and been recorded.", - "format": "int32", - "example": 0 - }, - "lastError": { - "type": "string", - "description": "Reason the most recent migration step failed, empty while none has.", - "example": "" - }, - "lagDocuments": { - "type": "integer", - "description": "Number of documents still pending replication to the target.", - "format": "int32", - "example": 0 - }, - "changelogWatermark": { - "type": "integer", - "description": "Highest source changelog sequence applied to the target so far.", - "format": "int32", - "example": 0 - }, - "verifiedAt": { - "type": "string", - "description": "Time the migrated data was verified against the source in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "cutoverAt": { - "type": "string", - "description": "Time routing was flipped to the target in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "soakUntil": { - "type": "string", - "description": "Time the post-cutover soak window ends in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "autoCutover": { - "type": "boolean", - "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", - "example": true - }, - "cutoverRequested": { - "type": "boolean", - "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", - "example": false - }, - "paused": { - "type": "boolean", - "description": "Whether the migration is paused.", - "example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "projectId", - "databaseId", - "specification", - "phase", - "attempt", - "lastError", - "lagDocuments", - "changelogWatermark", - "verifiedAt", - "cutoverAt", - "soakUntil", - "autoCutover", - "cutoverRequested", - "paused" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "projectId": "5e5ea5c16897e", - "databaseId": "5e5ea5c16897e", - "specification": "s-2vcpu-4gb", - "phase": "pending", - "attempt": 0, - "lastError": "", - "lagDocuments": 0, - "changelogWatermark": 0, - "verifiedAt": "2020-10-15T06:38:00.000+00:00", - "cutoverAt": "2020-10-15T06:38:00.000+00:00", - "soakUntil": "2020-10-15T06:38:00.000+00:00", - "autoCutover": true, - "cutoverRequested": false, - "paused": false - } - }, - "dedicatedDatabase": { - "description": "DedicatedDatabase", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Dedicated database ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Database creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Database update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "projectId": { - "type": "string", - "description": "Project ID that owns this database.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Database display name.", - "example": "My Production Database" - }, - "api": { - "type": "string", - "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", - "example": "postgresql" - }, - "engine": { - "type": "string", - "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", - "example": "postgresql" - }, - "version": { - "type": "string", - "description": "Database engine version.", - "example": "16" - }, - "specification": { - "type": "string", - "description": "Specification identifier.", - "example": "s-2vcpu-2gb" - }, - "backend": { - "type": "string", - "description": "Database backend provider. Possible values: edge.", - "example": "edge" - }, - "hostname": { - "type": "string", - "description": "Database hostname for connections.", - "example": "db-myproject-mydb.fra.appwrite.center" - }, - "connectionPort": { - "type": "integer", - "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", - "format": "int32", - "example": 5432 - }, - "connectionUser": { - "type": "string", - "description": "Database username for connections.", - "example": "appwrite_user" - }, - "connectionPassword": { - "type": "string", - "description": "Database password for connections.", - "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" - }, - "credentialGeneration": { - "type": "integer", - "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", - "format": "int32", - "example": 1 - }, - "connectionString": { - "type": "string", - "description": "Full database connection string (URI format).", - "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" - }, - "ssl": { - "type": "boolean", - "description": "Whether SSL\/TLS is required for client connections.", - "example": true - }, - "status": { - "type": "string", - "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", - "example": "ready" - }, - "containerStatus": { - "type": "string", - "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", - "example": "active" - }, - "lastAccessedAt": { - "type": "string", - "description": "Last activity timestamp in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "idleUntil": { - "type": "string", - "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "lifecycleState": { - "type": "string", - "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", - "example": "active" - }, - "idleTimeoutMinutes": { - "type": "integer", - "description": "Minutes of inactivity before container scales to zero.", - "format": "int32", - "example": 15 - }, - "cpu": { - "type": "integer", - "description": "CPU allocated in millicores.", - "format": "int32", - "example": 2000 - }, - "memory": { - "type": "integer", - "description": "Memory allocated in MB.", - "format": "int32", - "example": 4096 - }, - "storage": { - "type": "integer", - "description": "Storage allocated in GB.", - "format": "int32", - "example": 100 - }, - "storageStatus": { - "type": "string", - "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", - "example": "resizing" - }, - "storageTargetGb": { - "type": "integer", - "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", - "format": "int32", - "example": 120 - }, - "storageResizeStartedAt": { - "type": "string", - "description": "Time the in-flight storage resize started, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "storageClass": { - "type": "string", - "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", - "example": "ssd" - }, - "storageMaxGb": { - "type": "integer", - "description": "Maximum storage allowed in GB. 0 means use system default.", - "format": "int32", - "example": 100 - }, - "nodePool": { - "type": "string", - "description": "Kubernetes node pool where the database is scheduled.", - "example": "db-pool-4vcpu-8gb" - }, - "replicas": { - "type": "integer", - "description": "Number of high availability replicas. High availability is enabled when greater than 0.", - "format": "int32", - "example": 2 - }, - "syncMode": { - "type": "string", - "description": "Replication sync mode: async, sync, or quorum.", - "example": "async" - }, - "networkMaxConnections": { - "type": "integer", - "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", - "format": "int32", - "example": 500 - }, - "networkIdleTimeoutSeconds": { - "type": "integer", - "description": "Connection idle timeout in seconds.", - "format": "int32", - "example": 900 - }, - "networkIPAllowlist": { - "type": "array", - "description": "IP addresses\/CIDR ranges allowed to connect.", - "items": { - "type": "string" - }, - "example": [ - "10.0.0.0\/8", - "192.168.1.0\/24" - ] - }, - "backupEnabled": { - "type": "boolean", - "description": "Whether automatic backups are enabled.", - "example": true - }, - "pitr": { - "type": "boolean", - "description": "Whether point-in-time recovery is enabled.", - "example": true - }, - "pitrRetentionDays": { - "type": "integer", - "description": "Number of days to retain PITR data.", - "format": "int32", - "example": 14 - }, - "storageAutoscaling": { - "type": "boolean", - "description": "Whether automatic storage expansion is enabled.", - "example": true - }, - "storageAutoscalingThresholdPercent": { - "type": "integer", - "description": "Storage usage percentage that triggers automatic expansion.", - "format": "int32", - "example": 85 - }, - "storageAutoscalingMaxGb": { - "type": "integer", - "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", - "format": "int32", - "example": 30 - }, - "maintenanceWindowDay": { - "type": "string", - "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", - "example": "sun" - }, - "maintenanceWindowHourUtc": { - "type": "integer", - "description": "Hour in UTC (0-23) when the maintenance window starts.", - "format": "int32", - "example": 3 - }, - "metricsEnabled": { - "type": "boolean", - "description": "Whether metrics collection is enabled.", - "example": false - }, - "sqlApiEnabled": { - "type": "boolean", - "description": "Whether the SQL API sidecar is enabled for this database.", - "example": true - }, - "sqlApiAllowedStatements": { - "type": "array", - "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", - "items": { - "type": "string" - }, - "example": [ - "SELECT" - ] - }, - "sqlApiMaxRows": { - "type": "integer", - "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", - "format": "int32", - "example": 10000 - }, - "sqlApiMaxBytes": { - "type": "integer", - "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", - "format": "int32", - "example": 10485760 - }, - "sqlApiTimeoutSeconds": { - "type": "integer", - "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", - "format": "int32", - "example": 30 - }, - "error": { - "type": "string", - "description": "Error message if status is failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "projectId", - "name", - "api", - "engine", - "version", - "specification", - "backend", - "hostname", - "connectionPort", - "connectionUser", - "connectionPassword", - "credentialGeneration", - "connectionString", - "ssl", - "status", - "containerStatus", - "lifecycleState", - "idleTimeoutMinutes", - "cpu", - "memory", - "storage", - "storageStatus", - "storageTargetGb", - "storageClass", - "storageMaxGb", - "nodePool", - "replicas", - "syncMode", - "networkMaxConnections", - "networkIdleTimeoutSeconds", - "networkIPAllowlist", - "backupEnabled", - "pitr", - "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", - "api": "postgresql", - "engine": "postgresql", - "version": "16", - "specification": "s-2vcpu-2gb", - "backend": "edge", - "hostname": "db-myproject-mydb.fra.appwrite.center", - "connectionPort": 5432, - "connectionUser": "appwrite_user", - "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", - "credentialGeneration": 1, - "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", - "ssl": true, - "status": "ready", - "containerStatus": "active", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", - "idleUntil": "2020-10-15T06:38:00.000+00:00", - "lifecycleState": "active", - "idleTimeoutMinutes": 15, - "cpu": 2000, - "memory": 4096, - "storage": 100, - "storageStatus": "resizing", - "storageTargetGb": 120, - "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", - "storageClass": "ssd", - "storageMaxGb": 100, - "nodePool": "db-pool-4vcpu-8gb", - "replicas": 2, - "syncMode": "async", - "networkMaxConnections": 500, - "networkIdleTimeoutSeconds": 900, - "networkIPAllowlist": [ - "10.0.0.0\/8", - "192.168.1.0\/24" - ], - "backupEnabled": true, - "pitr": true, - "pitrRetentionDays": 14, - "storageAutoscaling": true, - "storageAutoscalingThresholdPercent": 85, - "storageAutoscalingMaxGb": 30, - "maintenanceWindowDay": "sun", - "maintenanceWindowHourUtc": 3, - "metricsEnabled": false, - "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": { - "type": "object" - }, - "example": [ - { - "id": 1, - "name": "example" - } - ] - }, - "rowCount": { - "type": "integer", - "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", - "format": "int32", - "example": 1 - }, - "columns": { - "type": "array", - "description": "Column metadata in result-set order.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" - }, - "example": [] - }, - "durationMs": { - "type": "integer", - "description": "Server-side execution time in milliseconds.", - "format": "int32", - "example": 12 - }, - "truncated": { - "type": "boolean", - "description": "True when the configured row or byte cap was hit and the result was truncated.", - "example": false - }, - "bytes": { - "type": "integer", - "description": "Serialised payload size in bytes.", - "format": "int32", - "example": 1024 - } - }, - "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.", - "example": "id" - }, - "type": { - "type": "string", - "description": "Engine-specific column type (e.g. int4, text, timestamptz).", - "example": "int4" - } - }, - "required": [ - "name", - "type" - ], - "example": { - "name": "id", - "type": "int4" - } - }, - "dedicatedDatabaseRestoration": { - "description": "Restoration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Restoration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID being restored into.", - "example": "5e5ea5c16897e" - }, - "sourceDatabaseId": { - "type": "string", - "description": "Source database ID when restoring a backup into another database.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "backupId": { - "type": "string", - "description": "Backup ID used for restoration (null for PITR).", - "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).", - "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).", - "example": "completed" - }, - "targetTime": { - "type": "string", - "description": "Target time for PITR restoration in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "startedAt": { - "type": "string", - "description": "Restoration start time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "completedAt": { - "type": "string", - "description": "Restoration completion time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "error": { - "type": "string", - "description": "Error message if restoration failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "sourceDatabaseId", - "projectId", - "backupId", - "type", - "status", - "targetTime", - "startedAt", - "completedAt", - "error" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "sourceDatabaseId": "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": "" - } - }, - "databaseStatus": { - "description": "Status", - "type": "object", - "properties": { - "health": { - "type": "string", - "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", - "example": "healthy" - }, - "ready": { - "type": "boolean", - "description": "Whether the database is ready to accept connections.", - "example": true - }, - "engine": { - "type": "string", - "description": "Database engine: postgresql, mysql, or mongodb.", - "example": "postgresql" - }, - "version": { - "type": "string", - "description": "Database engine version.", - "example": "17" - }, - "uptime": { - "type": "integer", - "description": "Database uptime in seconds.", - "format": "int32", - "example": 86400 - }, - "connections": { - "type": "object", - "description": "Connection statistics. Null when the database has not been probed.", - "example": { - "current": 12, - "max": 100 - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/databaseStatusConnections" - } - ], - "nullable": true - }, - "syncMode": { - "type": "string", - "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", - "example": "async" - }, - "effectiveSyncMode": { - "type": "string", - "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", - "example": "async", - "nullable": true - }, - "syncDegraded": { - "type": "boolean", - "description": "Whether the enforced replication is weaker than the requested syncMode.", - "example": false - }, - "syncAcknowledgements": { - "type": "integer", - "description": "Number of standby acknowledgements the primary waits for before a write is committed.", - "format": "int32", - "example": 1 - }, - "syncStandbyCount": { - "type": "integer", - "description": "Number of standbys registered with the primary for synchronous replication.", - "format": "int32", - "example": 2 - }, - "syncStateConfirmed": { - "type": "boolean", - "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", - "example": true, - "nullable": true - }, - "replicas": { - "type": "array", - "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", - "items": { - "$ref": "#\/components\/schemas\/databaseStatusReplica" - }, - "example": [ - { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": null, - "lagSeconds": null - }, - { - "index": 1, - "role": "replica", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - ] - }, - "volumes": { - "type": "array", - "description": "Storage volume information.", - "items": { - "$ref": "#\/components\/schemas\/databaseStatusVolume" - }, - "example": [ - { - "data": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - } - ] - } - }, - "required": [ - "health", - "ready", - "engine", - "version", - "uptime", - "syncMode", - "syncDegraded", - "syncAcknowledgements", - "syncStandbyCount", - "replicas", - "volumes" - ], - "example": { - "health": "healthy", - "ready": true, - "engine": "postgresql", - "version": "17", - "uptime": 86400, - "connections": { - "current": 12, - "max": 100 - }, - "syncMode": "async", - "effectiveSyncMode": "async", - "syncDegraded": false, - "syncAcknowledgements": 1, - "syncStandbyCount": 2, - "syncStateConfirmed": true, - "replicas": [ - { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": null, - "lagSeconds": null - }, - { - "index": 1, - "role": "replica", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - ], - "volumes": { - "data": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - } - } - }, - "dnsRecord": { - "description": "DNSRecord", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "DNS Record ID.", - "example": "5f40a6e10c65e" - }, - "$createdAt": { - "type": "string", - "description": "DNS Record creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "DNS Record update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "type": { - "type": "string", - "description": "DNS record type (e.g. A, CNAME, MX).", - "example": "A" - }, - "name": { - "type": "string", - "description": "Record name or subdomain.", - "example": "mail" - }, - "value": { - "type": "string", - "description": "Value of the record (IP address, domain, etc.).", - "example": "192.0.2.1" - }, - "ttl": { - "type": "integer", - "description": "Time to live (in seconds).", - "format": "int32", - "example": 86400 - }, - "priority": { - "type": "integer", - "description": "Record priority (commonly used for MX).", - "format": "int32", - "example": 10 - }, - "lock": { - "type": "boolean", - "description": "Whether this record is locked (read-only).", - "example": false - }, - "weight": { - "type": "integer", - "description": "Record weight (used for SRV records).", - "format": "int32", - "example": 10 - }, - "port": { - "type": "integer", - "description": "Target port (used for SRV records).", - "format": "int32", - "example": 443 - }, - "comment": { - "type": "string", - "description": "Comment for the DNS record.", - "example": "Mail server record" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "name", - "value", - "ttl", - "priority", - "lock", - "weight", - "port", - "comment" - ], - "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" - } - }, - "domain": { - "description": "Domain", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Domain ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Domain creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Domain update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "domain": { - "type": "string", - "description": "Domain name.", - "example": "example.com" - }, - "registrar": { - "type": "string", - "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", - "example": "appwrite" - }, - "nameservers": { - "type": "string", - "description": "Nameservers setting. \"Appwrite\" or empty string.", - "example": "Appwrite" - }, - "expire": { - "type": "string", - "description": "Domain expiry date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "renewal": { - "type": "string", - "description": "Domain renewal date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "autoRenewal": { - "type": "boolean", - "description": "If set to true, the domain will automatically renew.", - "example": true - }, - "renewalPrice": { - "type": "integer", - "description": "Renewal price (in cents).", - "format": "int32", - "example": 2599 - }, - "transferStatus": { - "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", - "example": "pending_registry", - "title": "DomainTransferStatusEnum", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "transferrable" - ], - "title": "transferrable" - }, - { - "type": "string", - "enum": [ - "not_transferrable" - ], - "title": "not_transferrable" - }, - { - "type": "string", - "enum": [ - "pending_owner" - ], - "title": "pending_owner" - }, - { - "type": "string", - "enum": [ - "pending_admin" - ], - "title": "pending_admin" - }, - { - "type": "string", - "enum": [ - "pending_registry" - ], - "title": "pending_registry" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "cancelled" - ], - "title": "cancelled" - }, - { - "type": "string", - "enum": [ - "service_unavailable" - ], - "title": "service_unavailable" - } - ], - "nullable": true - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "dnsRecords": { - "type": "array", - "description": "Dns records", - "items": { - "$ref": "#\/components\/schemas\/dnsRecord" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "domain", - "registrar", - "nameservers", - "expire", - "renewal", - "autoRenewal", - "renewalPrice", - "teamId", - "dnsRecords" - ], - "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": [] - } - }, - "domainPrice": { - "description": "DomainPrice", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "example": "example.com" - }, - "tld": { - "type": "string", - "description": "Top-level domain for the requested domain.", - "example": "com" - }, - "available": { - "type": "boolean", - "description": "Whether the domain is currently available for registration.", - "example": true - }, - "price": { - "type": "number", - "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", - "format": "double", - "example": 25.99, - "nullable": true - }, - "periodYears": { - "type": "integer", - "description": "Price period in years.", - "format": "int32", - "example": 1 - }, - "premium": { - "type": "boolean", - "description": "Whether the domain is a premium domain.", - "example": false - }, - "renewalPrice": { - "type": "number", - "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", - "format": "double", - "example": 27.99, - "nullable": true - }, - "renewalPeriodYears": { - "type": "integer", - "description": "Renewal price period in years.", - "format": "int32", - "example": 1 - } - }, - "required": [ - "domain", - "tld", - "available", - "periodYears", - "premium", - "renewalPeriodYears" - ], - "example": { - "domain": "example.com", - "tld": "com", - "available": true, - "price": 25.99, - "periodYears": 1, - "premium": false, - "renewalPrice": 27.99, - "renewalPeriodYears": 1 - } - }, - "domainTransferStatus": { - "description": "domainTransferStatus", - "type": "object", - "properties": { - "status": { - "description": "Transfer status.", - "example": "pending_registry", - "title": "DomainTransferStatusEnum", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "transferrable" - ], - "title": "transferrable" - }, - { - "type": "string", - "enum": [ - "not_transferrable" - ], - "title": "not_transferrable" - }, - { - "type": "string", - "enum": [ - "pending_owner" - ], - "title": "pending_owner" - }, - { - "type": "string", - "enum": [ - "pending_admin" - ], - "title": "pending_admin" - }, - { - "type": "string", - "enum": [ - "pending_registry" - ], - "title": "pending_registry" - }, - { - "type": "string", - "enum": [ - "completed" - ], - "title": "completed" - }, - { - "type": "string", - "enum": [ - "cancelled" - ], - "title": "cancelled" - }, - { - "type": "string", - "enum": [ - "service_unavailable" - ], - "title": "service_unavailable" - } - ] - }, - "reason": { - "type": "string", - "description": "Additional transfer status information.", - "example": "Transfer in progress" - }, - "timestamp": { - "type": "string", - "description": "Transfer status timestamp in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "status", - "reason", - "timestamp" - ], - "example": { - "status": "pending_registry", - "reason": "Transfer in progress", - "timestamp": "2020-10-15T06:38:00.000+00:00" - } - }, - "dedicatedDatabaseExtensions": { - "description": "Extensions", - "type": "object", - "properties": { - "installed": { - "type": "array", - "description": "List of installed extensions.", - "items": { - "type": "string" - }, - "example": [ - "pgvector", - "uuid-ossp" - ] - }, - "available": { - "type": "array", - "description": "List of available extensions that can be installed.", - "items": { - "type": "string" - }, - "example": [ - "postgis", - "pg_trgm" - ] - }, - "metadata": { - "type": "array", - "description": "Curated metadata (display name, description, category) for each available extension.", - "items": { - "$ref": "#\/components\/schemas\/postgresExtension" - }, - "example": [] - } - }, - "required": [ - "installed", - "available", - "metadata" - ], - "example": { - "installed": [ - "pgvector", - "uuid-ossp" - ], - "available": [ - "postgis", - "pg_trgm" - ], - "metadata": [] - } - }, - "dedicatedDatabaseMember": { - "description": "Member", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Member identifier.", - "example": "1" - }, - "role": { - "type": "string", - "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", - "example": "replica" - }, - "status": { - "type": "string", - "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", - "example": "active" - }, - "replicating": { - "type": "boolean", - "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", - "example": true, - "nullable": true - }, - "lagSeconds": { - "type": "number", - "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", - "format": "double", - "example": 0.5, - "nullable": true - } - }, - "required": [ - "$id", - "role", - "status" - ], - "example": { - "$id": "1", - "role": "replica", - "status": "active", - "replicating": true, - "lagSeconds": 0.5 - } - }, - "dedicatedDatabaseOperation": { - "description": "Operation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Operation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Operation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "databaseId": { - "type": "string", - "description": "Database ID the operation ran against.", - "example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", - "example": "update" - }, - "status": { - "type": "string", - "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", - "example": "completed" - }, - "attempts": { - "type": "integer", - "description": "Number of times this operation has been attempted.", - "format": "int32", - "example": 1 - }, - "requestedAt": { - "type": "string", - "description": "Time the operation was requested, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "startedAt": { - "type": "string", - "description": "Time the operation started, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "completedAt": { - "type": "string", - "description": "Time the operation reached a terminal state, in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "errorCode": { - "type": "string", - "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", - "example": "Interrupted" - }, - "errorMessage": { - "type": "string", - "description": "Failure message if the operation failed.", - "example": "" - } - }, - "required": [ - "$id", - "$createdAt", - "databaseId", - "type", - "status", - "attempts", - "errorCode", - "errorMessage" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "databaseId": "5e5ea5c16897e", - "type": "update", - "status": "completed", - "attempts": 1, - "requestedAt": "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", - "errorCode": "Interrupted", - "errorMessage": "" - } - }, - "dedicatedDatabaseOperationList": { - "description": "OperationList", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of operations.", - "format": "int32", - "example": 5 - }, - "operations": { - "type": "array", - "description": "List of operations.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" - }, - "example": [] - } - }, - "required": [ - "total", - "operations" - ], - "example": { - "total": 5, - "operations": "" - } - }, - "dedicatedDatabaseReplicas": { - "description": "Replicas", - "type": "object", - "properties": { - "replicas": { - "type": "integer", - "description": "Number of configured replicas. Zero means high availability is disabled.", - "format": "int32", - "example": 2 - }, - "syncMode": { - "type": "string", - "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", - "example": "async" - }, - "effectiveSyncMode": { - "type": "string", - "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", - "example": "async", - "nullable": true - }, - "syncDegraded": { - "type": "boolean", - "description": "Whether the enforced replication is weaker than the requested syncMode.", - "example": false - }, - "syncAcknowledgements": { - "type": "integer", - "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", - "format": "int32", - "example": 1 - }, - "syncStandbyCount": { - "type": "integer", - "description": "Number of standbys registered with the primary for synchronous replication.", - "format": "int32", - "example": 2 - }, - "syncStateConfirmed": { - "type": "boolean", - "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", - "example": true, - "nullable": true - }, - "members": { - "type": "array", - "description": "Per-pod statuses for the primary and every replica.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" - }, - "example": [] - } - }, - "required": [ - "replicas", - "syncMode", - "syncDegraded", - "syncAcknowledgements", - "syncStandbyCount", - "members" - ], - "example": { - "replicas": 2, - "syncMode": "async", - "effectiveSyncMode": "async", - "syncDegraded": false, - "syncAcknowledgements": 1, - "syncStandbyCount": 2, - "syncStateConfirmed": true, - "members": [] - } - }, - "proxyInvalidation": { - "description": "Invalidation", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "example": "appwrite.company.com" - }, - "type": { - "type": "string", - "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", - "example": "tag" - }, - "reference": { - "type": "string", - "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", - "example": "products" - }, - "status": { - "type": "string", - "description": "Invalidation status.", - "example": "success" - } - }, - "required": [ - "domain", - "type", - "reference", - "status" - ], - "example": { - "domain": "appwrite.company.com", - "type": "tag", - "reference": "products", - "status": "success" - } - }, - "organization": { - "description": "Organization", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Team creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Team update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Team name.", - "example": "VIP" - }, - "total": { - "type": "integer", - "description": "Total number of team members.", - "format": "int32", - "example": 7 - }, - "prefs": { - "type": "object", - "description": "Team preferences as a key-value object", - "example": { - "theme": "pink", - "timezone": "UTC" - }, - "allOf": [ - { - "$ref": "#\/components\/schemas\/preferences" - } - ] - }, - "billingBudget": { - "type": "integer", - "description": "Project budget limit. Null when no budget is set.", - "format": "int32", - "example": 50, - "nullable": true - }, - "budgetAlerts": { - "type": "array", - "description": "Project budget limit", - "items": { - "type": "integer", - "format": "int32" - }, - "example": [ - 50, - 75 - ] - }, - "billingPlan": { - "type": "string", - "description": "Organization's billing plan ID.", - "example": "tier-1" - }, - "billingPlanId": { - "type": "string", - "description": "Organization's billing plan ID.", - "example": "tier-1" - }, - "billingPlanDetails": { - "type": "object", - "description": "Organization's billing plan.", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingPlan" - } - ] - }, - "billingEmail": { - "type": "string", - "description": "Billing email set for the organization.", - "example": "billing@org.example" - }, - "billingStartDate": { - "type": "string", - "description": "Billing cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingCurrentInvoiceDate": { - "type": "string", - "description": "Current invoice cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingNextInvoiceDate": { - "type": "string", - "description": "Next invoice cycle start date.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "billingTrialStartDate": { - "type": "string", - "description": "Start date of trial.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "billingTrialDays": { - "type": "integer", - "description": "Number of trial days.", - "format": "int32", - "example": 14 - }, - "billingAggregationId": { - "type": "string", - "description": "Current active aggregation id.", - "example": "adbc3de4rddfsd" - }, - "billingInvoiceId": { - "type": "string", - "description": "Current active aggregation id.", - "example": "adbc3de4rddfsd" - }, - "paymentMethodId": { - "type": "string", - "description": "Default payment method.", - "example": "adbc3de4rddfsd" - }, - "billingAddressId": { - "type": "string", - "description": "Default payment method.", - "example": "adbc3de4rddfsd", - "nullable": true - }, - "backupPaymentMethodId": { - "type": "string", - "description": "Backup payment method.", - "example": "adbc3de4rddfsd", - "nullable": true - }, - "status": { - "type": "string", - "description": "Team status.", - "example": "active" - }, - "remarks": { - "type": "string", - "description": "Remarks on team status.", - "example": "Pending initial payment", - "nullable": true - }, - "agreementBAA": { - "type": "string", - "description": "Organization agreements", - "example": "", - "nullable": true - }, - "programManagerName": { - "type": "string", - "description": "Program manager's name.", - "example": "", - "nullable": true - }, - "programManagerCalendar": { - "type": "string", - "description": "Program manager's calendar link.", - "example": "", - "nullable": true - }, - "programDiscordChannelName": { - "type": "string", - "description": "Program's discord channel name.", - "example": "", - "nullable": true - }, - "programDiscordChannelUrl": { - "type": "string", - "description": "Program's discord channel URL.", - "example": "", - "nullable": true - }, - "billingLimits": { - "type": "object", - "description": "Billing limits reached", - "allOf": [ - { - "$ref": "#\/components\/schemas\/billingLimits" - } - ], - "nullable": true - }, - "billingPlanDowngrade": { - "type": "string", - "description": "Billing plan selected for downgrade.", - "example": "tier-1", - "nullable": true - }, - "billingTaxId": { - "type": "string", - "description": "Tax Id", - "example": "", - "nullable": true - }, - "markedForDeletion": { - "type": "boolean", - "description": "Marked for deletion" - }, - "platform": { - "type": "string", - "description": "Product with which the organization is associated (appwrite or imagine)", - "example": "imagine" - }, - "projects": { - "type": "array", - "description": "Selected projects", - "items": { - "type": "string" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "total", - "prefs", - "budgetAlerts", - "billingPlan", - "billingPlanId", - "billingPlanDetails", - "billingEmail", - "billingStartDate", - "billingCurrentInvoiceDate", - "billingNextInvoiceDate", - "billingTrialDays", - "billingAggregationId", - "billingInvoiceId", - "paymentMethodId", - "status", - "markedForDeletion", - "platform", - "projects" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "VIP", - "total": 7, - "prefs": { - "theme": "pink", - "timezone": "UTC" - }, - "billingBudget": 50, - "budgetAlerts": [ - 50, - 75 - ], - "billingPlan": "tier-1", - "billingPlanId": "tier-1", - "billingPlanDetails": null, - "billingEmail": "billing@org.example", - "billingStartDate": "2020-10-15T06:38:00.000+00:00", - "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", - "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", - "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", - "billingTrialDays": 14, - "billingAggregationId": "adbc3de4rddfsd", - "billingInvoiceId": "adbc3de4rddfsd", - "paymentMethodId": "adbc3de4rddfsd", - "billingAddressId": "adbc3de4rddfsd", - "backupPaymentMethodId": "adbc3de4rddfsd", - "status": "active", - "remarks": "Pending initial payment", - "agreementBAA": "", - "programManagerName": "", - "programManagerCalendar": "", - "programDiscordChannelName": "", - "programDiscordChannelUrl": "", - "billingLimits": "", - "billingPlanDowngrade": "tier-1", - "billingTaxId": "", - "markedForDeletion": "", - "platform": "imagine", - "projects": "" - } - }, - "dedicatedDatabasePITRWindows": { - "description": "PITRWindows", - "type": "object", - "properties": { - "earliest": { - "type": "string", - "description": "Earliest available recovery point.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "latest": { - "type": "string", - "description": "Latest available recovery point.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "earliest", - "latest" - ], - "example": { - "earliest": "2020-10-15T06:38:00.000+00:00", - "latest": "2020-10-15T06:38:00.000+00:00" - } - }, - "backupPolicy": { - "description": "backup", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Backup policy ID.", - "example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Backup policy name.", - "example": "Hourly backups" - }, - "$createdAt": { - "type": "string", - "description": "Policy creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Policy update date in ISO 8601 format.", - "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" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this policy should backup a single resource.", - "example": "DB1", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this policy should backup a single resource.", - "example": "database", - "nullable": true - }, - "retention": { - "type": "integer", - "description": "How many days to keep the backup before it will be automatically deleted.", - "format": "int32", - "example": 7 - }, - "schedule": { - "type": "string", - "description": "Policy backup schedule in CRON format.", - "example": "0 * * * *" - }, - "type": { - "type": "string", - "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", - "example": "full" - }, - "enabled": { - "type": "boolean", - "description": "Is this policy enabled.", - "example": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "services", - "resources", - "retention", - "schedule", - "type", - "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 * * * *", - "type": "full", - "enabled": true - } - }, - "dedicatedDatabasePooler": { - "description": "PoolerConfig", - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether connection pooling is enabled.", - "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).", - "example": "transaction" - }, - "maxConnections": { - "type": "integer", - "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", - "format": "int32", - "example": 200 - }, - "defaultPoolSize": { - "type": "integer", - "description": "Default pool size per user.", - "format": "int32", - "example": 25 - }, - "port": { - "type": "integer", - "description": "Pooler listening port.", - "format": "int32", - "example": 6432 - }, - "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.", - "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.", - "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.", - "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.", - "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.", - "example": "128Mi" - } - }, - "required": [ - "enabled", - "mode", - "maxConnections", - "defaultPoolSize", - "port", - "readWriteSplitting", - "poolerCpuRequest", - "poolerCpuLimit", - "poolerMemoryRequest", - "poolerMemoryLimit" - ], - "example": { - "enabled": true, - "mode": "transaction", - "maxConnections": 200, - "defaultPoolSize": 25, - "port": 6432, - "readWriteSplitting": true, - "poolerCpuRequest": "100m", - "poolerCpuLimit": "200m", - "poolerMemoryRequest": "64Mi", - "poolerMemoryLimit": "128Mi" - } - }, - "postgresExtension": { - "description": "Postgres extension", - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Extension key used with CREATE EXTENSION.", - "example": "vector" - }, - "name": { - "type": "string", - "description": "Human-readable extension name.", - "example": "pgvector" - }, - "description": { - "type": "string", - "description": "Short description of what the extension provides.", - "example": "Vector data type and similarity search for embeddings." - }, - "category": { - "type": "string", - "description": "Category the extension belongs to.", - "example": "search" - } - }, - "required": [ - "key", - "name", - "description", - "category" - ], - "example": { - "key": "vector", - "name": "pgvector", - "description": "Vector data type and similarity search for embeddings.", - "category": "search" - } - }, - "program": { - "description": "Program", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Program ID", - "example": "" - }, - "title": { - "type": "string", - "description": "Program title", - "example": "" - }, - "description": { - "type": "string", - "description": "Program description", - "example": "" - }, - "tag": { - "type": "string", - "description": "Program tag for highlighting on console" - }, - "icon": { - "type": "string", - "description": "Program icon for highlighting on console" - }, - "url": { - "type": "string", - "description": "URL for more information on this program", - "example": "" - }, - "active": { - "type": "boolean", - "description": "Whether this program is active", - "example": false - }, - "external": { - "type": "boolean", - "description": "Whether this program is external", - "example": false - }, - "billingPlanId": { - "type": "string", - "description": "Billing plan ID that this is program is associated with.", - "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": "" - } - }, - "backupRestoration": { - "description": "Restoration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Restoration ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Restoration update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "archiveId": { - "type": "string", - "description": "Backup archive ID.", - "example": "did8jx6ws45jana098ab7" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID.", - "example": "did8jx6ws45jana098ab7" - }, - "status": { - "type": "string", - "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", - "example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The restoration start time. Null until the restoration starts.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'storage']" - ] - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "example": [ - "['databases', 'collections', 'attributes', 'indexes']" - ] - }, - "options": { - "type": "object", - "additionalProperties": true, - "description": "Restoration options as a key-value object.", - "example": { - "databases": { - "database": [ - { - "oldId": "old", - "newId": "new", - "newName": "Restored" - } - ] - } - } - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "archiveId", - "policyId", - "status", - "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": "old", - "newId": "new", - "newName": "Restored" - } - ] - } - } - } - }, - "dedicatedDatabaseRestorationList": { - "description": "Dedicated database restorations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of restorations that matched your query.", - "format": "int32", - "example": 5 - }, - "restorations": { - "type": "array", - "description": "List of restorations.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" - }, - "example": [] - } - }, - "required": [ - "total", - "restorations" - ], - "example": { - "total": 5, - "restorations": "" - } - }, - "dedicatedDatabaseSpecification": { - "description": "Specification", - "type": "object", - "properties": { - "slug": { - "type": "string", - "description": "Specification slug. Use this value when creating a dedicated database.", - "example": "s-2vcpu-2gb" - }, - "name": { - "type": "string", - "description": "Human readable specification name.", - "example": "Standard" - }, - "price": { - "type": "number", - "description": "Monthly price of the specification in USD.", - "format": "double", - "example": 20 - }, - "storageOverageRate": { - "type": "number", - "description": "Price per GB of storage above the included amount, per month, in USD.", - "format": "double", - "example": 0.125 - }, - "bandwidthOverageRate": { - "type": "number", - "description": "Price per GB of bandwidth above the included amount, per month, in USD.", - "format": "double", - "example": 0.08 - }, - "replicaRate": { - "type": "number", - "description": "High availability replica price as a fraction of the specification price.", - "format": "double", - "example": 1 - }, - "pitrRate": { - "type": "number", - "description": "Point-in-time recovery price as a fraction of the specification price.", - "format": "double", - "example": 0.2 - }, - "cpu": { - "type": "integer", - "description": "Allocated CPU in millicores.", - "format": "int32", - "example": 2000 - }, - "memory": { - "type": "integer", - "description": "Allocated memory in MB.", - "format": "int32", - "example": 2048 - }, - "maxConnections": { - "type": "integer", - "description": "Maximum number of concurrent connections.", - "format": "int32", - "example": 200 - }, - "includedStorage": { - "type": "integer", - "description": "Included storage in GB before overage charges apply.", - "format": "int32", - "example": 25 - }, - "includedBandwidth": { - "type": "integer", - "description": "Included bandwidth in GB before overage charges apply.", - "format": "int32", - "example": 200 - }, - "enabled": { - "type": "boolean", - "description": "Whether the specification is available on the current plan.", - "example": true - } - }, - "required": [ - "slug", - "name", - "price", - "storageOverageRate", - "bandwidthOverageRate", - "replicaRate", - "pitrRate", - "cpu", - "memory", - "maxConnections", - "includedStorage", - "includedBandwidth", - "enabled" - ], - "example": { - "slug": "s-2vcpu-2gb", - "name": "Standard", - "price": 20, - "storageOverageRate": 0.125, - "bandwidthOverageRate": 0.08, - "replicaRate": 1, - "pitrRate": 0.2, - "cpu": 2000, - "memory": 2048, - "maxConnections": 200, - "includedStorage": 25, - "includedBandwidth": 200, - "enabled": true - } - }, - "dedicatedDatabaseSpecificationList": { - "description": "SpecificationList", - "type": "object", - "properties": { - "specifications": { - "type": "array", - "description": "List of dedicated database specifications.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" - }, - "example": [] - }, - "total": { - "type": "integer", - "description": "Total number of specifications.", - "format": "int32", - "example": 9 - } - }, - "required": [ - "specifications", - "total" - ], - "example": { - "specifications": [], - "total": 9 - } - }, - "databaseStatusConnections": { - "description": "Connections", - "type": "object", - "properties": { - "current": { - "type": "integer", - "description": "Current number of active connections.", - "format": "int32", - "example": 12 - }, - "max": { - "type": "integer", - "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", - "format": "int32", - "example": 100 - } - }, - "required": [ - "current", - "max" - ], - "example": { - "current": 12, - "max": 100 - } - }, - "databaseStatusReplica": { - "description": "Replica", - "type": "object", - "properties": { - "index": { - "type": "integer", - "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", - "format": "int32", - "example": 0 - }, - "role": { - "type": "string", - "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", - "example": "primary" - }, - "healthy": { - "type": "boolean", - "description": "Whether the replica is healthy.", - "example": true - }, - "replicating": { - "type": "boolean", - "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", - "example": true, - "nullable": true - }, - "lagSeconds": { - "type": "number", - "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", - "format": "double", - "example": 0.2, - "nullable": true - } - }, - "required": [ - "index", - "role", - "healthy" - ], - "example": { - "index": 0, - "role": "primary", - "healthy": true, - "replicating": true, - "lagSeconds": 0.2 - } - }, - "databaseStatusVolume": { - "description": "Volume", - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Mount path of the volume.", - "example": "\/var\/lib\/postgresql\/data" - }, - "usedPercent": { - "type": "string", - "description": "Percentage of storage used.", - "example": "45%" - }, - "available": { - "type": "string", - "description": "Available storage space.", - "example": "55GB" - }, - "mounted": { - "type": "boolean", - "description": "Whether the volume is mounted.", - "example": true - } - }, - "required": [ - "path", - "usedPercent", - "available", - "mounted" - ], - "example": { - "path": "\/var\/lib\/postgresql\/data", - "usedPercent": "45%", - "available": "55GB", - "mounted": true - } - }, - "usageBillingPlan": { - "description": "usageBillingPlan", - "type": "object", - "properties": { - "bandwidth": { - "type": "object", - "description": "Bandwidth additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "executions": { - "type": "object", - "description": "Executions additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "member": { - "type": "object", - "description": "Member additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - }, - "realtime": { - "type": "object", - "description": "Realtime additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeMessages": { - "type": "object", - "description": "Realtime messages additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "realtimeBandwidth": { - "type": "object", - "description": "Realtime bandwidth additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - }, - "storage": { - "type": "object", - "description": "Storage additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "users": { - "type": "object", - "description": "User additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "GBHours": { - "type": "object", - "description": "GBHour additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "imageTransformations": { - "type": "object", - "description": "Image transformation additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ] - }, - "credits": { - "type": "object", - "description": "Credits additional resources", - "allOf": [ - { - "$ref": "#\/components\/schemas\/additionalResource" - } - ], - "nullable": true - } - }, - "required": [ - "bandwidth", - "executions", - "realtime", - "realtimeMessages", - "storage", - "users", - "GBHours", - "imageTransformations" - ], - "example": { - "bandwidth": null, - "executions": null, - "member": null, - "realtime": null, - "realtimeMessages": null, - "realtimeBandwidth": null, - "storage": null, - "users": null, - "GBHours": null, - "imageTransformations": null, - "credits": null - } - }, - "app": { - "description": "App", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Application name.", - "example": "My Application" - }, - "description": { - "type": "string", - "description": "Application description shown to users during OAuth2 consent.", - "example": "Connect your workspace to My Application." - }, - "clientUri": { - "type": "string", - "description": "Application homepage URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com" - }, - "logoUri": { - "type": "string", - "description": "Application logo URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/logo.png" - }, - "privacyPolicyUrl": { - "type": "string", - "description": "Application privacy policy URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/privacy" - }, - "termsUrl": { - "type": "string", - "description": "Application terms of service URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/terms" - }, - "contacts": { - "type": "array", - "description": "Application support or security contact emails.", - "items": { - "type": "string" - }, - "example": [ - "support@example.com" - ] - }, - "tagline": { - "type": "string", - "description": "Application tagline shown to users during OAuth2 consent.", - "example": "Automate your workspace." - }, - "tags": { - "type": "array", - "description": "Application tags shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "productivity", - "automation" - ] - }, - "labels": { - "type": "array", - "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", - "items": { - "type": "string" - }, - "example": [ - "featured" - ] - }, - "images": { - "type": "array", - "description": "Application image URLs shown to users during OAuth2 consent.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/screenshot.png" - ] - }, - "supportUrl": { - "type": "string", - "description": "Application support URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/support" - }, - "dataDeletionUrl": { - "type": "string", - "description": "Application data deletion URL shown to users during OAuth2 consent.", - "example": "https:\/\/example.com\/data-deletion" - }, - "redirectUris": { - "type": "array", - "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/callback" - ] - }, - "postLogoutRedirectUris": { - "type": "array", - "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/example.com\/logged-out" - ] - }, - "enabled": { - "type": "boolean", - "description": "Whether the app is enabled or not.", - "example": true - }, - "type": { - "type": "string", - "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", - "example": "confidential" - }, - "deviceFlow": { - "type": "boolean", - "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", - "example": false - }, - "teamId": { - "type": "string", - "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", - "example": "5e5ea5c16897e" - }, - "installationScopes": { - "type": "array", - "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "installationRedirectUrl": { - "type": "string", - "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", - "example": "https:\/\/example.com\/setup" - }, - "secrets": { - "type": "array", - "description": "List of application secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "clientUri", - "logoUri", - "privacyPolicyUrl", - "termsUrl", - "contacts", - "tagline", - "tags", - "labels", - "images", - "supportUrl", - "dataDeletionUrl", - "redirectUris", - "postLogoutRedirectUris", - "enabled", - "type", - "deviceFlow", - "teamId", - "userId", - "installationScopes", - "installationRedirectUrl", - "secrets" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "My Application", - "description": "Connect your workspace to My Application.", - "clientUri": "https:\/\/example.com", - "logoUri": "https:\/\/example.com\/logo.png", - "privacyPolicyUrl": "https:\/\/example.com\/privacy", - "termsUrl": "https:\/\/example.com\/terms", - "contacts": [ - "support@example.com" - ], - "tagline": "Automate your workspace.", - "tags": [ - "productivity", - "automation" - ], - "labels": [ - "featured" - ], - "images": [ - "https:\/\/example.com\/screenshot.png" - ], - "supportUrl": "https:\/\/example.com\/support", - "dataDeletionUrl": "https:\/\/example.com\/data-deletion", - "redirectUris": [ - "https:\/\/example.com\/callback" - ], - "postLogoutRedirectUris": [ - "https:\/\/example.com\/logged-out" - ], - "enabled": true, - "type": "confidential", - "deviceFlow": false, - "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "installationScopes": [ - "organization:organization.read" - ], - "installationRedirectUrl": "https:\/\/example.com\/setup", - "secrets": [] - } - }, - "appSecret": { - "description": "AppSecret", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", - "example": "" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appSecretPlaintext": { - "description": "AppSecretPlaintext", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Secret ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Secret creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Secret update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this secret belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the client secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the secret.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the secret.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appScope": { - "description": "AppScope", - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Scope value as requested by apps.", - "example": "organization:organization.read" - }, - "description": { - "type": "string", - "description": "Human-readable description of what the scope grants.", - "example": "Access to read the organization" - }, - "type": { - "type": "string", - "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", - "example": "organization" - }, - "category": { - "type": "string", - "description": "Scope category, used to group scopes on consent and installation screens.", - "example": "Organization" - }, - "deprecated": { - "type": "boolean", - "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", - "example": false - } - }, - "required": [ - "value", - "description", - "type", - "category", - "deprecated" - ], - "example": { - "value": "organization:organization.read", - "description": "Access to read the organization", - "type": "organization", - "category": "Organization", - "deprecated": false - } - }, - "appInstallation": { - "description": "AppInstallation", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Installation ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Installation creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Installation update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the installed application.", - "example": "5e5ea5c16897e" - }, - "teamId": { - "type": "string", - "description": "ID of the team the application is installed on.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", - "items": { - "type": "string" - }, - "example": [ - "organization:organization.read" - ] - }, - "authorizationDetails": { - "type": "array", - "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", - "items": { - "type": "object" - }, - "example": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ] - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the installation.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the installation.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "teamId", - "scopes", - "authorizationDetails", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "teamId": "5e5ea5c16897e", - "scopes": [ - "organization:organization.read" - ], - "authorizationDetails": [ - { - "type": "project", - "identifiers": [ - "*" - ] - } - ], - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "appKey": { - "description": "AppKey", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "App key ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "App key creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "App key update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "Application ID this app key belongs to.", - "example": "5e5ea5c16897e" - }, - "secret": { - "type": "string", - "description": "App key secret.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "hint": { - "type": "string", - "description": "Last few characters of the app key secret, used to help identify it.", - "example": "f5c6c7" - }, - "createdById": { - "type": "string", - "description": "ID of the user who created the app key.", - "example": "5e5ea5c16897e" - }, - "createdByName": { - "type": "string", - "description": "Name of the user who created the app key.", - "example": "Walter White" - }, - "lastAccessedAt": { - "type": "string", - "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", - "example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "secret", - "hint", - "createdById", - "createdByName" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "hint": "f5c6c7", - "createdById": "5e5ea5c16897e", - "createdByName": "Walter White", - "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2Authorize": { - "description": "OAuth2 Authorize", - "type": "object", - "properties": { - "grantId": { - "type": "string", - "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", - "example": "5e5ea5c16897e" - }, - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "grantId", - "redirectUrl" - ], - "example": { - "grantId": "5e5ea5c16897e", - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Approve": { - "description": "OAuth2 Approve", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", - "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" - } - }, - "oauth2Reject": { - "description": "OAuth2 Reject", - "type": "object", - "properties": { - "redirectUrl": { - "type": "string", - "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", - "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "required": [ - "redirectUrl" - ], - "example": { - "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" - } - }, - "oauth2Grant": { - "description": "OAuth2 Grant", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Grant ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Grant creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Grant update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the grant belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the OAuth2 client (app) the grant was requested for.", - "example": "5e5ea5c16897e" - }, - "scopes": { - "type": "array", - "description": "Requested OAuth2 scopes the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "prompt": { - "type": "string", - "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", - "example": "login" - }, - "redirectUri": { - "type": "string", - "description": "Redirect URI the user will be sent to after the flow completes.", - "example": "https:\/\/example.com\/callback" - }, - "authTime": { - "type": "integer", - "description": "Unix timestamp of when the user last authenticated.", - "format": "int32", - "example": 1592981250 - }, - "expire": { - "type": "string", - "description": "Grant expiration time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "scopes", - "resources", - "authorizationDetails", - "prompt", - "redirectUri", - "authTime", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "prompt": "login", - "redirectUri": "https:\/\/example.com\/callback", - "authTime": 1592981250, - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2DeviceAuthorization": { - "description": "OAuth2 Device Authorization", - "type": "object", - "properties": { - "device_code": { - "type": "string", - "description": "Device verification code used by the client to poll the token endpoint.", - "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" - }, - "user_code": { - "type": "string", - "description": "Short code the end user enters on the verification page.", - "example": "ABCD-EFGH" - }, - "verification_uri": { - "type": "string", - "description": "URL where the end user enters the user code.", - "example": "https:\/\/appwrite.io\/oauth2\/device" - }, - "verification_uri_complete": { - "type": "string", - "description": "Verification URL with the user code prefilled as a query parameter.", - "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the device code and user code in seconds.", - "format": "int32", - "example": 900 - }, - "interval": { - "type": "integer", - "description": "Minimum polling interval for the token endpoint in seconds.", - "format": "int32", - "example": 5 - } - }, - "required": [ - "device_code", - "user_code", - "verification_uri", - "verification_uri_complete", - "expires_in", - "interval" - ], - "example": { - "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", - "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", - "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", - "expires_in": 900, - "interval": 5 - } - }, - "oauth2PAR": { - "description": "OAuth2 PAR", - "type": "object", - "properties": { - "request_uri": { - "type": "string", - "description": "Authorization request handle to pass to the authorize endpoint.", - "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" - }, - "expires_in": { - "type": "integer", - "description": "Lifetime of the authorization request handle in seconds.", - "format": "int32", - "example": 600 - } - }, - "required": [ - "request_uri", - "expires_in" - ], - "example": { - "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", - "expires_in": 600 - } - }, - "oauth2Token": { - "description": "OAuth2 Token", - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "OAuth2 access token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "example": "Bearer" - }, - "expires_in": { - "type": "integer", - "description": "Access token lifetime in seconds.", - "format": "int32", - "example": 3600 - }, - "refresh_token": { - "type": "string", - "description": "OAuth2 refresh token.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the access token.", - "example": "openid email profile" - }, - "authorization_details": { - "type": "string", - "description": "Granted RFC 9396 authorization details as a JSON string.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "nullable": true - }, - "id_token": { - "type": "string", - "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", - "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "nullable": true - } - }, - "required": [ - "access_token", - "token_type", - "expires_in", - "refresh_token", - "scope" - ], - "example": { - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", - "token_type": "Bearer", - "expires_in": 3600, - "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", - "scope": "openid email profile", - "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", - "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." - } - }, - "oauth2Introspection": { - "description": "OAuth2 Introspection", - "type": "object", - "properties": { - "active": { - "type": "boolean", - "description": "Whether the token is currently active. An inactive token carries no other claims (RFC 7662).", - "example": true - }, - "token_use": { - "type": "string", - "description": "Kind of token that was introspected. Can be one of: `access_token` or `refresh_token`.", - "example": "access_token", - "nullable": true - }, - "token_type": { - "type": "string", - "description": "OAuth2 token type.", - "example": "Bearer", - "nullable": true - }, - "scope": { - "type": "string", - "description": "Space-separated scopes granted to the token.", - "example": "openid email profile", - "nullable": true - }, - "client_id": { - "type": "string", - "description": "OAuth2 client ID the token was issued to.", - "example": "5e5ea5c16897e", - "nullable": true - }, - "sub": { - "type": "string", - "description": "ID of the user who authorized the token.", - "example": "5e5ea5c16897e", - "nullable": true - }, - "aud": { - "type": "array", - "description": "Audiences the token is intended for. The first entry is the project API base URL; any further entries are the resource indicators requested at authorization time (RFC 8707).", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" - ], - "nullable": true - }, - "iss": { - "type": "string", - "description": "Issuer URL of the token.", - "example": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", - "nullable": true - }, - "exp": { - "type": "integer", - "description": "Expiration time as a Unix timestamp in seconds.", - "format": "int32", - "example": 1735689600, - "nullable": true - }, - "iat": { - "type": "integer", - "description": "Issued-at time as a Unix timestamp in seconds.", - "format": "int32", - "example": 1735686000, - "nullable": true - }, - "jti": { - "type": "string", - "description": "Unique identifier of the token.", - "example": "5e5ea5c16897e", - "nullable": true - }, - "authorization_details": { - "type": "array", - "description": "Granted RFC 9396 authorization details, restricted to what the user can currently access.", - "items": { - "type": "object" - }, - "example": [ - { - "type": "project", - "identifiers": [ - "5e5ea5c16897e" - ] - } - ], - "nullable": true - } - }, - "required": [ - "active" - ], - "example": { - "active": true, - "token_use": "access_token", - "token_type": "Bearer", - "scope": "openid email profile", - "client_id": "5e5ea5c16897e", - "sub": "5e5ea5c16897e", - "aud": [ - "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" - ], - "iss": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", - "exp": 1735689600, - "iat": 1735686000, - "jti": "5e5ea5c16897e", - "authorization_details": [ - { - "type": "project", - "identifiers": [ - "5e5ea5c16897e" - ] - } - ] - } - }, - "oauth2Consent": { - "description": "OAuth2 Consent", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Consent ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Consent creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Consent update date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "userId": { - "type": "string", - "description": "ID of the user the consent belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators the user consented to.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "oauth2ConsentToken": { - "description": "OAuth2 Consent Token", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Token family ID.", - "example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Token creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "consentId": { - "type": "string", - "description": "ID of the consent the token family was issued under.", - "example": "5e5ea5c16897e" - }, - "userId": { - "type": "string", - "description": "ID of the user the token family belongs to.", - "example": "5e5ea5c16897e" - }, - "appId": { - "type": "string", - "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", - "example": "5e5ea5c16897e" - }, - "cimdUrl": { - "type": "string", - "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", - "example": "https:\/\/example.com\/.well-known\/client-metadata.json" - }, - "scopes": { - "type": "array", - "description": "OAuth2 scopes granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "openid", - "email", - "profile" - ] - }, - "resources": { - "type": "array", - "description": "RFC 8707 resource indicators granted on the token family.", - "items": { - "type": "string" - }, - "example": [ - "https:\/\/api.example.com\/" - ] - }, - "authorizationDetails": { - "type": "string", - "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", - "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" - }, - "expire": { - "type": "string", - "description": "Expiration time of the current access token of this family in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "consentId", - "userId", - "appId", - "cimdUrl", - "scopes", - "resources", - "authorizationDetails", - "expire" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "consentId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "appId": "5e5ea5c16897e", - "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", - "scopes": [ - "openid", - "email", - "profile" - ], - "resources": [ - "https:\/\/api.example.com\/" - ], - "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "wafRule": { - "description": "WafRule", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleBypass": { - "description": "WafRuleBypass", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleDeny": { - "description": "WafRuleDeny", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, - "wafRuleChallenge": { - "description": "WafRuleChallenge", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "challengeType": { - "type": "string", - "description": "Challenge type enforced when the rule matches.", - "example": "compute" - }, - "difficulty": { - "type": "integer", - "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", - "format": "int32", - "example": 3 - }, - "ttl": { - "type": "integer", - "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", - "format": "int32", - "example": 1800 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "challengeType", - "difficulty", - "ttl" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "challengeType": "compute", - "difficulty": 3, - "ttl": 1800 - } - }, - "wafRuleRateLimit": { - "description": "WafRuleRateLimit", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "limit": { - "type": "integer", - "description": "Maximum number of matching requests allowed for the given interval.", - "format": "int32", - "example": 1000 - }, - "interval": { - "type": "integer", - "description": "Interval in seconds for the rate limit window.", - "format": "int32", - "example": 60 - }, - "key": { - "type": "string", - "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", - "example": "userId" - }, - "strategy": { - "type": "string", - "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", - "example": "slidingWindow" - }, - "maxBucketSize": { - "type": "integer", - "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", - "format": "int32", - "example": 200 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "limit", - "interval", - "key", - "strategy", - "maxBucketSize" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "limit": 1000, - "interval": 60, - "key": "userId", - "strategy": "slidingWindow", - "maxBucketSize": 200 - } - }, - "wafRuleRedirect": { - "description": "WafRuleRedirect", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - }, - "location": { - "type": "string", - "description": "Target location for the redirect.", - "example": "\/maintenance" - }, - "statusCode": { - "type": "integer", - "description": "HTTP status code used for the redirect.", - "format": "int32", - "example": 301 - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config", - "location", - "statusCode" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {}, - "location": "\/maintenance", - "statusCode": 301 - } - }, - "wafRuleList": { - "description": "WAF rule list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rules that matched your query.", - "format": "int32", - "example": 5 - }, - "rules": { - "type": "array", - "description": "List of rules.", - "items": { - "$ref": "#\/components\/schemas\/wafRule" - }, - "example": [] - } - }, - "required": [ - "total", - "rules" - ], - "example": { - "total": 5, - "rules": "" - } - }, - "oauth2Project": { - "description": "OAuth2 Project", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID.", - "example": "5e5ea5c16897e" - }, - "region": { - "type": "string", - "description": "Region ID the project is deployed in.", - "example": "fra" - }, - "endpoint": { - "type": "string", - "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", - "example": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "required": [ - "$id", - "region", - "endpoint" - ], - "example": { - "$id": "5e5ea5c16897e", - "region": "fra", - "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" - } - }, - "oauth2Organization": { - "description": "OAuth2 Organization", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Organization ID.", - "example": "5e5ea5c16897e" - } - }, - "required": [ - "$id" - ], - "example": { - "$id": "5e5ea5c16897e" - } - }, - "oauth2ProjectList": { - "description": "OAuth2 accessible projects list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of projects that matched your query.", - "format": "int32", - "example": 5 - }, - "projects": { - "type": "array", - "description": "List of projects.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Project" - }, - "example": [] - } - }, - "required": [ - "total", - "projects" - ], - "example": { - "total": 5, - "projects": "" - } - }, - "oauth2OrganizationList": { - "description": "OAuth2 accessible organizations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of organizations that matched your query.", - "format": "int32", - "example": 5 - }, - "organizations": { - "type": "array", - "description": "List of organizations.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Organization" - }, - "example": [] - } - }, - "required": [ - "total", - "organizations" - ], - "example": { - "total": 5, - "organizations": "" - } - }, - "oauth2ConsentList": { - "description": "OAuth2 consents list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of consents that matched your query.", - "format": "int32", - "example": 5 - }, - "consents": { - "type": "array", - "description": "List of consents.", - "items": { - "$ref": "#\/components\/schemas\/oauth2Consent" - }, - "example": [] - } - }, - "required": [ - "total", - "consents" - ], - "example": { - "total": 5, - "consents": "" - } - }, - "oauth2ConsentTokenList": { - "description": "OAuth2 consent tokens list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tokens that matched your query.", - "format": "int32", - "example": 5 - }, - "tokens": { - "type": "array", - "description": "List of tokens.", - "items": { - "$ref": "#\/components\/schemas\/oauth2ConsentToken" - }, - "example": [] - } - }, - "required": [ - "total", - "tokens" - ], - "example": { - "total": 5, - "tokens": "" - } - }, - "activityEventList": { - "description": "Activity event list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of events that matched your query.", - "format": "int32", - "example": 5 - }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "$ref": "#\/components\/schemas\/activityEvent" - }, - "example": [] - } - }, - "required": [ - "total", - "events" - ], - "example": { - "total": 5, - "events": "" - } - }, - "analyticsPropertyList": { - "description": "Analytics properties list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of properties that matched your query.", - "format": "int32", - "example": 5 - }, - "properties": { - "type": "array", - "description": "List of properties.", - "items": { - "$ref": "#\/components\/schemas\/analyticsProperty" - }, - "example": [] - } - }, - "required": [ - "total", - "properties" - ], - "example": { - "total": 5, - "properties": "" - } - }, - "backupArchiveList": { - "description": "Backup archive list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of archives that matched your query.", - "format": "int32", - "example": 5 - }, - "archives": { - "type": "array", - "description": "List of archives.", - "items": { - "$ref": "#\/components\/schemas\/backupArchive" - }, - "example": [] - } - }, - "required": [ - "total", - "archives" - ], - "example": { - "total": 5, - "archives": "" - } - }, - "backupPolicyList": { - "description": "Backup policy list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of policies that matched your query.", - "format": "int32", - "example": 5 - }, - "policies": { - "type": "array", - "description": "List of policies.", - "items": { - "$ref": "#\/components\/schemas\/backupPolicy" - }, - "example": [] - } - }, - "required": [ - "total", - "policies" - ], - "example": { - "total": 5, - "policies": "" - } - }, - "backupRestorationList": { - "description": "Backup restoration list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of restorations that matched your query.", - "format": "int32", - "example": 5 - }, - "restorations": { - "type": "array", - "description": "List of restorations.", - "items": { - "$ref": "#\/components\/schemas\/backupRestoration" - }, - "example": [] - } - }, - "required": [ - "total", - "restorations" - ], - "example": { - "total": 5, - "restorations": "" - } - }, - "databaseMigrationList": { - "description": "Database Migrations List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of migrations that matched your query.", - "format": "int32", - "example": 5 - }, - "migrations": { - "type": "array", - "description": "List of migrations.", - "items": { - "$ref": "#\/components\/schemas\/databaseMigration" - }, - "example": [] - } - }, - "required": [ - "total", - "migrations" - ], - "example": { - "total": 5, - "migrations": "" - } - }, - "dedicatedDatabaseList": { - "description": "Dedicated databases list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of databases that matched your query.", - "format": "int32", - "example": 5 - }, - "databases": { - "type": "array", - "description": "List of databases.", - "items": { - "$ref": "#\/components\/schemas\/dedicatedDatabase" - }, - "example": [] - } - }, - "required": [ - "total", - "databases" - ], - "example": { - "total": 5, - "databases": "" - } - }, - "dnsRecordsList": { - "description": "DNS records list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of dnsRecords that matched your query.", - "format": "int32", - "example": 5 - }, - "dnsRecords": { - "type": "array", - "description": "List of dnsRecords.", - "items": { - "$ref": "#\/components\/schemas\/dnsRecord" - }, - "example": [] - } - }, - "required": [ - "total", - "dnsRecords" - ], - "example": { - "total": 5, - "dnsRecords": "" - } - }, - "domainPricesList": { - "description": "Domain prices list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of prices that matched your query.", - "format": "int32", - "example": 5 - }, - "prices": { - "type": "array", - "description": "List of prices.", - "items": { - "$ref": "#\/components\/schemas\/domainPrice" - }, - "example": [] - } - }, - "required": [ - "total", - "prices" - ], - "example": { - "total": 5, - "prices": "" - } - }, - "domainsList": { - "description": "Domains list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of domains that matched your query.", - "format": "int32", - "example": 5 - }, - "domains": { - "type": "array", - "description": "List of domains.", - "items": { - "$ref": "#\/components\/schemas\/domain" - }, - "example": [] - } - }, - "required": [ - "total", - "domains" - ], - "example": { - "total": 5, - "domains": "" - } - }, - "appsList": { - "description": "Apps list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of apps that matched your query.", - "format": "int32", - "example": 5 - }, - "apps": { - "type": "array", - "description": "List of apps.", - "items": { - "$ref": "#\/components\/schemas\/app" - }, - "example": [] - } - }, - "required": [ - "total", - "apps" - ], - "example": { - "total": 5, - "apps": "" - } - }, - "appSecretList": { - "description": "App secrets list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of secrets that matched your query.", - "format": "int32", - "example": 5 - }, - "secrets": { - "type": "array", - "description": "List of secrets.", - "items": { - "$ref": "#\/components\/schemas\/appSecret" - }, - "example": [] - } - }, - "required": [ - "total", - "secrets" - ], - "example": { - "total": 5, - "secrets": "" - } - }, - "appScopeList": { - "description": "App scopes list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of scopes that matched your query.", - "format": "int32", - "example": 5 - }, - "scopes": { - "type": "array", - "description": "List of scopes.", - "items": { - "$ref": "#\/components\/schemas\/appScope" - }, - "example": [] - } - }, - "required": [ - "total", - "scopes" - ], - "example": { - "total": 5, - "scopes": "" - } - }, - "appInstallationList": { - "description": "App installations list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of installations that matched your query.", - "format": "int32", - "example": 5 - }, - "installations": { - "type": "array", - "description": "List of installations.", - "items": { - "$ref": "#\/components\/schemas\/appInstallation" - }, - "example": [] - } - }, - "required": [ - "total", - "installations" - ], - "example": { - "total": 5, - "installations": "" - } - }, - "appKeyList": { - "description": "App keys list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of keys that matched your query.", - "format": "int32", - "example": 5 - }, - "keys": { - "type": "array", - "description": "List of keys.", - "items": { - "$ref": "#\/components\/schemas\/appKey" - }, - "example": [] - } - }, - "required": [ - "total", - "keys" - ], - "example": { - "total": 5, - "keys": "" - } - } - }, - "securitySchemes": { - "Project": { - "type": "apiKey", - "name": "X-Appwrite-Project", - "description": "Your project ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ], - "demo": "<YOUR_PROJECT_ID>" - } - }, - "Key": { - "type": "apiKey", - "name": "X-Appwrite-Key", - "description": "Your secret API key", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ], - "demo": "<YOUR_API_KEY>" - } - }, - "Organization": { - "type": "apiKey", - "name": "X-Appwrite-Organization", - "description": "Your organization ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ], - "demo": "<YOUR_ORGANIZATION_ID>" - } - }, - "JWT": { - "type": "apiKey", - "name": "X-Appwrite-JWT", - "description": "Your secret JSON Web Token", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ], - "demo": "<YOUR_JWT>" - } - }, - "Bearer": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "The OAuth access token to authenticate with", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "Locale": { - "type": "apiKey", - "name": "X-Appwrite-Locale", - "description": "", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ], - "demo": "en" - } - }, - "Session": { - "type": "apiKey", - "name": "X-Appwrite-Session", - "description": "The user session to authenticate with", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "ForwardedUserAgent": { - "type": "apiKey", - "name": "X-Forwarded-User-Agent", - "description": "The user agent string of the client that made the request", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "Cookie": { - "type": "apiKey", - "name": "Cookie", - "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "ImpersonateUserId": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Id", - "description": "Impersonate a user by ID", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "ImpersonateUserEmail": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Email", - "description": "Impersonate a user by email", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - }, - "ImpersonateUserPhone": { - "type": "apiKey", - "name": "X-Appwrite-Impersonate-User-Phone", - "description": "Impersonate a user by phone", - "in": "header", - "x-appwrite": { - "platforms": [ - "server" - ] - } - } - } - }, - "externalDocs": { - "description": "Full API docs, specs and tutorials", - "url": "https:\/\/appwrite.io\/docs" - } -} \ No newline at end of file